Напишите программу в pascal. программа запрашивает имена, вес и рост трёх ваших друзей, находит их суммарный вес и рост и выводит результат в виде: имя1+имя2+имя3=кг имя1+имя2+имя3=см заранее большое
Var s1,s2,s3:string; v1,v2,v3,r1,r2,r3:integer; begin write('1 имя : '); readln(s1); write('вес и рост : '); readln(v1,r1); write('2 имя : '); readln(s2); write('вес и рост : '); readln(v2,r2); write('3 имя : '); readln(s3); write('вес и рост : '); readln(v3,r3); writeln(s1,'+',s2,'+',s3,' = ',v1+v2+v3,' кг'); writeln(s1,'+',s2,'+',s3,' = ',r1+r2+r3,' см');end.
Пример: 1 имя : Петя вес и рост : 55 160 2 имя : Вася вес и рост : 40 150 3 имя : Коля вес и рост : 48 155 Петя+Вася+Коля = 143 кг Петя+Вася+Коля = 465 см
В Бейсике есть встроенная функция ATN - арктангенс, поэтому угол можно в градусах посчитать.
DIM a, b, c, cs, cst, ang, PI INPUT " a = ", a INPUT " b = ", b INPUT " c = ", c PRINT PI = 3.141593 cs = (b * b + c * c - a * a) / (2 * b * c) cst = cs IF cs < 0 THEN cst = SQR(1 - cs * cs) ang = ATN(SQR(1 - cst * cst) / cst) * 360 / (2 * PI) IF cs < 0 THEN ang = ang + 90 PRINT "угол A = ", PRINT USING "###.##"; ang cs = (a * a + c * c - b * b) / (2 * a * c) cst = cs IF cs < 0 THEN cst = SQR(1 - cs * cs) ang = ATN(SQR(1 - cst * cst) / cst) * 360 / (2 * PI) IF cs < 0 THEN ang = ang + 90 PRINT "угол B = ", PRINT USING "###.##"; ang cs = (a * a + b * b - c * c) / (2 * a * b) cst = cs IF cs < 0 THEN cst = SQR(1 - cs * cs) ang = ATN(SQR(1 - cst * cst) / cst) * 360 / (2 * PI) IF cs < 0 THEN ang = ang + 90 PRINT "угол C = ", PRINT USING "###.##"; ang PRINT "Выход - любая клавиша ... " DO LOOP WHILE INKEY$ = ""
Немного теории. Для того, чтобы избежать переполнения разрядной сетки, значение квадрата натурального числа не должно превышать максимального числа, представимого выбранным типом данных. В языке Паскаль числа типа longint записываются в четырех байтах в дополнительном коде, т.е. максимальное значение числа не может превышать 2³¹-1. Тогда максимальное натуральное число, квадрат которого мы можем вычислить, равно целой части от величины:
//PascalABC.Net 3.0, сборка 1066 var s:string; i,n,lim,l:longint; begin lim:=Trunc(exp(15.5*ln(2))); Write('Введите номер позиции: '); Read(n); i:=0; l:=0; while (l<n) and (i<=lim) do begin Inc(i); Str(i*i,s); l:=l+Length(s); end; if i<=lim then Writeln('Искомая цифра- ',s[Length(s)-l+n]) else Writeln('Решения в типе данных longint невозможно') end.
Тестовое решение: Введите номер позиции: 4 Искомая цифра- 1
v1,v2,v3,r1,r2,r3:integer;
begin
write('1 имя : '); readln(s1);
write('вес и рост : '); readln(v1,r1);
write('2 имя : '); readln(s2);
write('вес и рост : '); readln(v2,r2);
write('3 имя : '); readln(s3);
write('вес и рост : '); readln(v3,r3);
writeln(s1,'+',s2,'+',s3,' = ',v1+v2+v3,' кг');
writeln(s1,'+',s2,'+',s3,' = ',r1+r2+r3,' см');end.
Пример:
1 имя : Петя
вес и рост : 55 160
2 имя : Вася
вес и рост : 40 150
3 имя : Коля
вес и рост : 48 155
Петя+Вася+Коля = 143 кг
Петя+Вася+Коля = 465 см