docx Решение задач на C++, Pascal + блок

Задача 1
Цены на два вида товаров возросли на Р процентов. Вывести старые и новые цены.
Код на C++
#include <iostream>
using namespace std;
int main()
{
double first, second, percent;
cout << "Input frist price - ";
cin >> first;
cout << "Input second price - ";
cin >> second;
cout << "Input percent - ";
cin >> percent;
cout << "Old price: " << first << " and " << second << endl;
first += first/100*percent;
second += second/100*percent;
cout << "New price: " << first << " and " << second << endl;
system ("pause");
return 0;
}
Код на Pascal
program price;
var first, second, percent: double;
begin
write('Input frist price - ');
readln(first);
write('Input second price - ');
readln(second);
write('Input percent - ');
readln(percent);
writeln('Old price: ', first, ' and ', second);
first:=first+first/100*percent;
second:=second+second/100*percent;
writeln('New price: ', first, ' and ', second);
end.
Блок-схема
Задача 2
На фабрике «Мойдодыр» при стирке 4 кг белья расходуется 250 г стирального порошка. Определить,
сколько пачек стирального порошка будет израсходовано на K простыней (вес одной простыни – 500 г), P
пододеяльников (вес одного пододеяльника – 650 г) и S скатертей (вес одной скатерти – 600 г). Вес одной
пачки стирального порошка составляет 750 г.
Код на C++
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int k, p, s; double pack;
cout << "Input number of sheets - ";
cin >> k;
cout << "Input number of duvet covers - ";
cin >> p;
cout << "Input number of cloths - ";
cin >> s;
pack=(k*0.5+p*0.65+s*0.6)/12;
cout << "Number of packs: " << ceil(pack) << endl;
system ("pause");
return 0;
}
Код на Pascal
program powder;
var
k, p, s: integer;
pack: double;
begin
write('Input number of sheets - ');
readln(k);
write('Input number of duvet covers - ');
readln(p);
write('Input number of cloths - ');
readln(s);
pack:=(k*0.5+p*0.65+s*0.6)/12;
writeln('Number of packs: ', Ceil(pack));
end.
Блок-схема
Задача 3
Составьте блок-схему и программу для решения следующей задачи. Введите с клавиатуры три числа: A, B, C. Если они
не раны, то замените все числа наибольшим из них и выведите результаты на экран. Иначе, найдите и выведите сумму
квадратов этих чисел.
Код на C++
#include <iostream>
using namespace std;
int main()
{
int A, B, C, max, s;
cout << "Input A, B, C - ";
cin >> A >> B >> C;
if(A>B) max=A; else max=B;
if(C>max) max=C;
if((A!=B)&&(A!=C)&&(B!=C))
{
A=max; B=max; C=max;
cout << "A = " << A << ", B = " << B << ", C = " << C << endl;
}
else
{
s=A*A+B*B+C*C;
cout << "Summ = " << s << endl;
}
system ("pause");
return 0;
}
Код на Pascal
program ABC;
var
A, B, C, max, s: integer;
begin
write('Input A, B, C - ');
read(A, B, C);
if A>B then max:=A
else max:=B;
if C>max then max:=C;
if(A<>B) and (A<>C) and (B<>C) then
begin
A:=max; B:=max; C:=max;
writeln('A = ', A, ', B = ', B, ', C = ', C);
end
else begin
s:=A*A+B*B+C*C;
writeln('Summ = ', s);
end;
end.
Блок-схема
Задача 4
Введите три числа. Если они могут быть длинами сторон разностороннего тупоугольного треугольника.
Выведите их в порядке возрастания и вычислите площадь полученного треугольника.
Код на C++
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
double A, B, C, max, min, sr, S, p;
cout << "Input A, B, C - ";
cin >> A >> B >> C;
if((A+B<=C)||(A+C<=B)||(B+C<=A))
cout << "This is not a triangle." << endl;
else
{
if(A>B)
{
max=A; min=B;
}
else
{
max=B; min=A;
}
if(C>max) max=C;
if(C<min) min=C;
sr=A+B+C-max-min;
if(max*max>min*min+sr*sr)
{
p=(A+B+C)/2;
S=sqrt(p*(p-A)*(p-B)*(p-C));
cout << "Side - " << min << ", " << sr << ", " << max << ". Area = " << S <<"." << endl;
}
else cout << "This triangle is acute-angled or rectangular." << endl;
}
system ("pause");
return 0;
}
Код на Pascal
program triangle;
var
A, B, C, max, min, sr, S, p: double;
begin
write('Input A, B, C - ');
read(A, B, C);
if ((A+B)<=C) or ((A+C)<=B) or ((B+C)<=A) then
writeln('This is not a triangle.')
else begin
if(A>B) then
begin
max:=A; min:=B;
end
else begin
max:=B; min:=A
end;
if(C>max) then max:=C;
if(C<min) then min:=C;
sr:=A+B+C-max-min;
if max*max>(min*min+sr*sr) then
begin
p:=(A+B+C)/2;
S:=sqrt(p*(p-A)*(p-B)*(p-C));
writeln('Side - ', min, ', ', sr, ', ', max, '. Area = ', s, '.');
end
else writeln ('This triangle is acute-angled or rectangular.');
end
end.
Блок-схема