ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Примеры решения типовых задач. Задача 2.1. Программа позволяет угадать возраст Вашего дедушки, который может находиться в интервале от 45 до 109 лет.Задача 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; }
Не нашли, что искали? Воспользуйтесь поиском:
|