Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Программирование на языке С++. Учебное пособие
.pdf
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
