Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Примеры решения типовых задач




Задача 2.1. Программа позволяет угадать возраст Вашего дедушки, который может находиться в интервале от 45 до 109 лет.

 

#include <iostream>

#include <stdlib.h>

#include <conio.h>

#include <time.h>

using namespace std;

 

int _tmain(int argc, _TCHAR* argv[])

{

int high,mid,low,k=1,year,found;

char ch;

setlocale (NULL, ".1251");

 

// установить базовое число для генератора случайных чисел

srand((unsigned)time(NULL));

// Функция rand() генерирует псевдосучайные числа

// от 0 до RAND_MAX (RAND_MAX=32767), которые далее

// преобразуются к требуемому диапазону

do

{

found = 0;

low = rand()%10 + 45; cout << "min="<<low<<endl;

high = rand()%30 + 80;cout << "max="<<high<<endl;

cout<<"Хотите, я угадаю, сколько лет "<<endl;

cout<<"(от "<<low<<" до "<<high<<") Вашему дедушке(y/n)"<<endl;

k=1; ch=_getch(); if(ch!= 'y' && ch!= 'Y')break;

// Для поиска применен метод дихотомии (половинного деления

// интервала)

while (low<=high &&!found)

{

mid = (low+high)/2;

cout<<"Вашему дедушке "<<mid<<" лет(y/n)?";

cin>>ch;

if (ch == 'y' || ch == 'Y')

{

cout<<"\n Ура! Я угадал за "<<k<<" попыток";

found = 1;

}

else

{

m2: cout<<"Больше(>) или меньше(<)? ";

cin>>ch;

if (ch == '>')

low = mid+1;

else if (ch=='<')

high=mid-1;

else

{

cout<<"Нажмите Shift+знак(< или >)"<<'\n';

goto m2;

}

k++;

}

}

cout<<"\n\n Еще(y/n)? ";

ch=_getch();

}

while(ch=='y' || ch=='Y');

return 0;

}

 

Задача 2.2. Есть отрезки труб длиной a метров и b метров (a < b). Сколько тех и других потребуется, чтобы проложить трубопровод заданной длины T с минимальным числом сварных швов? (Трубы разрезать нельзя!).

Замечание. Задача всегда имеет решение при a=3, b=5, если T>7.

#include "stdafx.h"

#include <iostream>

#include <conio.h>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

int t3,t5,T; int a=3, b=5;

setlocale (NULL, ".1251");

printf("длина трубопровода?"); cin>>T;

t3=0;

while(t3<=T/a)

{

t5=(T-a*t3)/b;

if(a*t3+b*t5 == T)

{cout<<a<<"-м: "<<t3<<endl;

cout<<b<<"-м: "<<t5<<endl;

break;

}

else

t3++;

}

if(t3>T/a)

cout<<"Нельзя построить";

_getch(); return 0;

}

 

 

Задача 2.3. Программа реализует правило, согласно которому покупателю с 1 гривны всегда выдаётся сдача наименьшим количеством монет. Например, если стоимость покупки 24 коп., то продавец, руководствуясь этим правилом, должен дать сдачу набором монет: 50, 25, 1.

 

#include <stdio.h>

#include <conio.h>

#include <iostream>

using namespace std;

 

int main()

{ int t, s;

setlocale (NULL, ".1251");

 

while(1)

{

printf("Сколько стоит покупка?");

scanf("%d",&s);

if(s >= 0 && s <= 100) break;

}

t = 100-s;

printf("Вот ваша сдача:");

while (t>=50)

{ t-=50; printf(" 50 "); }

while (t>=25)

{ t-=25; printf(" 25 "); }

while (t>=10)

{ t-=10; printf(" 10 "); }

while (t>=5)

{ t-=5; printf(" 5 "); }

while (t>=2)

{ t-=2; printf(" 2 "); }

while (t>=1)

{ t-=1; printf(" 1 "); }

getch(); return 0;

}

 

Задача 2.4. Заданное натуральное число М разложить на простые натуральные множители. Так, если М = 5784, то результат должен быть таким: 5784=1*2*2*2*3*241

 

#include <stdio.h>

#include <conio.h>

#include <iostream>

using namespace std;

 

int main()

{

int i,M;

setlocale (NULL, ".1251");

printf("введи М ");

scanf("%d",&M);

printf("%d =1",M);

for(; M%2==0; M/=2)

printf("*2");

for(i=3; i <= M;)

if(M%i == 0)

{ printf("*%d",i); M/=i; }

else

i+=2;

getch(); return 0;

}

 

 

Задача 2.5. Изобразить показанный ниже равнобедренный треугольник заданной высоты Н, заполненный символом ª (код 05). Вершина фигуры должна находиться в 40-й колонке экрана.

 

ª

ªªª

ªªªªª

ªªªªªªª

ªªªªªªªªª

ªªªªªªªªªªª

 

#include "stdafx.h"

#include <iostream>

#include <conio.h>

using namespace std;

int main()

{

int k, h, x, y;

setlocale (NULL, ".1251");

cout<<"Введи высоту треугольника ==> ";

cin>>h;

 

for(y=1; y<=h; y++)

{

for (x=0; x <= 40 - y; x++)

cout<<" ";

for (k=1; k<=2*y-1; k++)

cout<<'\05';

cout<<endl;

}

_getch(); return 0;

}

 





Поделиться с друзьями:


Дата добавления: 2017-02-24; Мы поможем в написании ваших работ!; просмотров: 245 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

80% успеха - это появиться в нужном месте в нужное время. © Вуди Аллен
==> читать все изречения...

2294 - | 2147 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.