Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программирование на языке С++. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
61
cin>>c; if ((a<b+c)&&(b<a+c)&&(c<a+b)) { cout<<«Треугольник существует»; p=a+b+c; pp=p/2; s=sqrt(pp*(pp-a)*(pp-b)*(pp-c)); cout<<«p=«<<p; cout<<«S=«<<s; } else cout<<« Треугольник не существует»; getch(); return 0; }
Задача 5. Составить программу,которая вводит с клавиатуры три реальных числа x, y, z и сортирует их по возрастанию.
#include<iostream.h> #include<conio.h> int main() { double x,y,z,a; cout << «Введите три числа»; cin >> x>>y>>z; if(x>y){a=x;x=y;y=a;} if(x>z){a=x;x=z;z=a;} if(y>z){a=y;y=z;z=a;} cout << x << « «; cout << y << « «; cout << z << « «; getch(); return 0; }
Задача 6. Составить программу для вычисления корней уравнения ax+b=0. Коэффициенты a и b вводятся с клавиатуры.
#include<iostream> #include<conio.h> int main() { double a,b,c; cout<<«Введите коэффициенты уравнения a и b»; cin<<a<<b; if(а==0) if(b==0) cout<<«Любое x-решение»; else cout<<«нет решений»; else cout<<-b/a; getch(); return 0; }
Задачи для самостоятельного выполнения:
Задача 1. Напишите программу, запрашивающую у пользователя целое
трехзначное число n, целое число k. Определить кратна ли сумма цифр числа n числу k. Если кратно, вывести «YES» и сумму цифр данного числа,в противном случае «NO» и произведение цифр этого числа.
Решение:
#include<iostream> #include<conio.h> int main() { int x,a,b,c,k; cout << «Введите число x=«; cin >> x; cout << «Введите число k=«; cin >> k; a=x%10; b=x/100; c=x/10%10; if ((a+b+c)%k==0 ) cout<<«yes»<<a<<c<<b<<endl; else cout<<«no»<<(a+b+c)*k<<endl; getch(); return 0; }
Задача 2. Составить программу, которая вводит с клавиатуры трехзначное
число и проверяет, является ли сумма цифр данного числа двухзначным числом.
Если сумма цифр — двухзначное число, то вывести «Yes» и сумму цифр, в про­тивном случае «No» и произведение цифр числа.
Решение:
#include<iostream> #include<conio.h> int main() { int x,a,b,c; cout<<«Введите число x=«; cin >> x; a=x/100; b=x/10%10; c=x%10; if (a+b+c>=10) cout<<«yes»<<a+b+c; else cout<<«No»<<a*b*c; getch(); return 0; }
62
63
Задача 3. Составить программу, которая вводит с клавиаруты три действи- тельных числа a, b, c. Определить, существует ли треугольник со сторонами a, b, c,
и если существует, то является ли он равносторонним, равнобедренным или раз-
носторонним.
Решение:
#include<iostream> #include<conio.h> #include<math.h> int main() { double a,b,c; cout<<«Введите значения сторон треугольника»; cin >> a; cin >> b; cin >> c; if(a>=b+c||(b>=c+a)||c>=a+b) cout<<« Треугольник с такими данными не существует»; else { if (a==b&&b==c) cout<<«Треугольник-равносторонний»; else if (a==b||a==c||b==c) cout<<«Треугольник-равнобедренный»; else cout<<«Треугольник-разносторонний»; getch(); } return 0;
}
Задача 4. Опеределить, в каком квадранте лежит точка с координатами (xa,ya).
Решение:
#include<iostream.h> #include<conio.h> int main() { double xa,ya; cout<<«Введите координату x»; cin>>xa; cout<<«Введите координату y»; cin>>ya; if (xa>0) if (ya>0) cout <<«Квадрант I»; else cout<<«Квадрант IV»; else if (ya>0) cout<<«Квадрант II»; else cout<<«Квадрант III»; getch(); return 0;
}
64
Задача 5. Составить программу нахождения корней квадратного уравнения.
Решение:
#include<iostream.h> #include<math.h> #include<conio.h> int main() { double a,b,c,x1,x2,d; cout << «введите коэффициенты уравнения»; cin >>a >> b>> c; if (a==0) { if(b==0) if(c==0) cout << «Любое x-решение»; else cout << «Решений нет»; else cout << «« << -c/b; } else { d=b*b-4*a*c;
if(d>=0) { x1=(-b+sqrt(d))/(2*a); x2=(-b-sqrt(d))/(2*a); cout << «x1=« << x1 << ««; cout << «x2=« << x2 << ««; } else cout <<« нет действительных корней»; } getch(); return 0;
}
Задача 6. Напишите программу, запрашивающую у пользователя целое
трехзначное число n. Определить явялются ли цифры разными. Если цифры раз-
ные, вывести «yes» и найти произведение первой и третьей цифры, в противном случае вывести «no» и записать число в обратном порядке.
Решение:
#include<iostream.h> #include<conio.h> int main() { int n,a,b,c,s,p; cout<<«Введите число n=«; cin>>n; a=n/100; b=n/10%10; c=n%10; p=a*b*c; if (a!=b&&b!=c&&a!=c) {
65
cout << «Yes» << « «; cout << a*c; } else { cout << «No»<< « «; cout << c << b << a;
} getch(); return 0; }
Задача 7. Составить программу, которая вводит с клавиатуры три целых
числа, различных от нуля. Найти разность максимального четного числа и мини­мального нечетного. Если все числа нечетные вывести минимальное из них. Если
все числа четные вывести максимальное из них.
Решение:
#include<iostream.h> #include<conio.h> int main() { long int a,b,c, min=2147483647, max=-2147483647; cout<< «Введите три целых числа, отличных от нуля»; cin >> a; cin >> b; cin >> c; if(a%2!=0&&minh>a) min=a; if(b%2!=0&&minh>b) min=b; if(c%2!=0&&minh>c) min=c; if(a%2==0&&max<a) max=a; if(b%2==0&&max<b) max=b; if(c%2==0&&max<c) max=c; if(a%2!=0&&b%2!=0&&b%2!=0) cout << min; else if(a%2==0&&b%2==0&&c%2==0) cout << max; else cout << max-min; getch(); return 0;
}
8.3. ЦИКЛИЧЕСКИЕ АЛГОРИТМЫ
Задача 1. Напишите программу, запрашивающую у пользователя целое чис- ло k и выводящую на экран все трехзначные числа сумма цифр, которых равна k.
#include<iostream.h> #include<conio.h> int main() { int n,k,s; cout << «ведите число k=«;
66
cin >> k; for (int i=100;i<1000;i++) { s=i%10; s+=i/10%10; s+=i/100;
if(s==k) cout << i << « «; } getch(); return 0; }
Задача 2. Найти все трехзначные числа (не имеющие в записи цифры 0), кратные каждой своей цифре.
#include<iostream.h> #include<conio.h> int main() { for (int i=100;i<1000;i++) if ((i%10)!=0&&i%(i%10)==0) if ((i/10%10)!=0&&i%(i/10%10)==0) if ((i/100)!=0&&i%(i/100)==0) cout<< i <<« «; getch(); return 0; }
Задача 3. Найти все четырехзначные числа сумма цифр, которых двухзнач- ное четное число.
#include<iostream.h> #include<conio.h> int main() { int a,b,c,d,z; for(int i=1000;i<10000;i++) { z=z+i/1000; z=z+(i%10); z=z+(i/100%10); z=z+(i/10%10); if(z>9&&z%2==0)cout<< i << « «; } getch(); return 0; }
Задачи для самостоятельного выполнения:
Задача 1. Вычислить аn(n>0).
Решение:
#include<iostream.h> #include<conio.h> int main()
67
{ int n; float a,x; cout << «введите степень числа n=«; cin >> n; cout << «введите основание a=«; cin >> a; x=1; for(int i=1;i<=n;i++) x=a*x; cout << «а^n=« << x << endl; getch(); return 0;
}
Задача 2. На диапазоне от n до m вывести все числа кратные 5.
Решение:
#include<iostream.h> #include<conio.h> int main() { int n,m; cout << «ведите число n=«; cin >> n; cout << «ведите число m=«; cin >> m; for (int i=n;i<m;i++) { if (i%5==0) cout << i << « «; } getch(); return 0; }
Задача 3. Вводится последовательность символов. Подсчитать количество малых латинских букв.
Решение:
#include<iostream.h> #include<conio.h> int main() { unsigned int n,br=0; char c; cout << «введите натуральное число n= «; cin >>n ; for (int i=0;i<n;i++) { cout << «введите символы»; cin >> c; if(c>='a'&&c<='z') br++; } cout << br << endl; getch(); return 0;
}
68
Задача 4. Вводится последовательность целых положительных чи- сел.Определить содержит ли последовательность равные числа.
Решение:
#include<iostream.h> #include<conio.h> int main() { int n,k,chislo,flag=0; cout << «введите число n=«; cin >> n; cout << «введите очередное число»; cin >> chislo; cin >> k; for (int i=1;i<=n;i++) { cin >> chislo; if(chislo==k) { flag=1; break; } k=chislo; } if(flag) cout << «yes» << endl; else cout << «No» << endl; getch(); return 0;
}
Задача 5. Напишите программу, запрашивающую у пользователя целое по­ложительное число (100<n<1000000) и выводящую на экран количество четных цифр числа.
Решение:
#include<iostream.h> #include<conio.h> int main() { long n,x,br=0; cout << «введите число»; cin >> n; while(n) { x=n%10; if(x%2==0) br++; n=n/10; } cout << «количество четных цифр числа=« << br; getch(); return 0;
}
69
Задача 6. Напишите программу, запрашивающую у пользователя целое по­ложительное число (100<n<1000000) и выводящую количество единиц двоичного кода числа.
Решение:
#include<iostream.h> #include<conio.h> int main() { long n,x,br=0; cout << «введите число»; cin >> n; while(n) { x=n%10; if(x%2!=0) br++; n=n/2; } cout << «количество единиц двоичного числа=« << br; getch(); return 0; }
Задача 7. Напишите программу, запрашивающую у пользователя целое по­ложительное число (100<n<1000000) и выводящую на экран:
• сумму цифр числа;
• максимальную цифру числа.
Решение:
#include<iostream.h> #include<conio.h> int main() { long n,x; cout << «введите число»; cin >> n; long sum=0; long max=0; while(n) { x=n%10; sum+=x; if(x>max) max=x; n/=10; } cout << «сумма цифр числа=« << sum << endl; cout << «максимальная цифра числа=« << max; getch(); return 0; }
8.4. ОДНОМЕРНЫЕ МАССИВЫ
Задача 1. Напишите программу, запрашивающую у пользователя N целых чисел (2<=N<=30) и выводящую на экран:
• произведение максимального и минимального элементов;
• разность максимального и минимального элементов.
#include<iostream.h> #include<conio.h>
int main() { int n; double a[29],max,min; cout<<«введите количество элементов массива»; cin>>n; cout<<«введите элементы массива»; for(int i=0;i<n;i++) cin>>a[i]; max=a[0];min=a[0]; for (int j=0;j<n;j++) { if (a[j]>max) max=a[j]; if (a[j]<min) min=a[j]; } cout<<«pr=«<<max*min<<endl; cout<<«paznost=«<<max-min<<endl; getch(); return 0; }
Задача 2. Напишите программу, запрашивающую у пользователя N целых чисел (2<=N<=30) и выводящую на экран количество четных чисел.
#include<iostream.h> #include<conio.h> int main() { int n,a[29],k=0; cout<<«введите количество элементов массива»; cin>>n; cout<<«введите элементы массива»; for(int i=0;i<n;i++) cin>>a[i]; for (int j=0;j<n;j++) if(a[j]%2==0) k++; cout<<«количество четных элементов массива»<<k; getch(); return 0; }
Задачи для самостоятельного выполнения:
Задача 1. Вводится последовательность целых чисел, 0 — ее конец. Найти
сумму четных и количество нечетных чисел.
70
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]