Turbo Pascal для начинающих

Интересное здесь: https://novostid.ru/


Решения (Часть 2)

Задача 51

Вычисление площади параллелограмма } var
l,w: real; ( длина и ширина параллелограмма}
s: real; { площадь параллелограмма} begin
writeln('Вычисление площади параллелограмма');
writeln('Введите исходные даные:');
write('Длина (см.) -> ');
readln(1) ;
write('Ширина (см.) ->');
readln(w);
s:=l*w;
writeln('Площадь параллелограмма:',s:6:2, ' кв.см. ') ;
readln; end.

Задача 53

{ Вычисление площади поверхности параллелепипеда } var
l,w,h : real; { длина, ширина и высота параллелепипеда}
s: real; { площадь поверхности параллелепипеда} begin
writeln('Вычисление площади поверхности параллелепипеда');
writeln('Введите исходные даные:');
write('Длина (см) —> ');
readln(1) ;
write('Ширина (см) ->');
readln(w);
write('Высота (см) — >') ;
readln(w);
s:=(l*w + l*h + w*h)*2;
' writeln('Площадь поверхности параллелепипеда:',s:б:2,
' кв.см. '); readln; end.

Задача 55

{ Вычисление объема цилиндра } var
r,h,v: real; { радиус основания, высота и объем цилиндра } begin
writeln('Вычисление объема цилиндра');
writeln('Введите исходные данные:');
write('радиус основания (см) —> ');
readln(г) ;
write("высота цилиндра (см) —> ');
readln(h);
v := 2*3.1415926*r*r*h;
writeln('Объем цилиндра ',v:6:2,' см.куб.');
writeln('Для завершения работы программы нажмите <Enter>');
readln;
end.

Задача 56

{ Вычисление стоимости покупки } var
kar,tetr: real; { цена карандаша и тетради }
nk,nt: integer; { количество тетрадей и карандашей }
summ: real; { стоимость покупки } begin
writeln("Вычисление стоимости покупки.');
writeln('Введите исходные данные:');
write('Цена тетради (руб.) —>');
readln(tetr);
write('Количество тетрадей —>') ;
readln(nt);
write('Цена карандаша (руб.) — >');
readln(kar);
write('Количество карандашей —>');
readln(nk);
surnm:=tetr*nt + kar*nk; writeln;
writeln('Стоимость покупки:',summ:6:2,' руб.'); readln; end".

Задача 60

{ Вычисление площади треугольника по двум сторонам и углу между ними } var
a,b: real; { длины сторон }
f: real; { величина угла, выраженная в градусах } s: real; { площадь треугольника } begin
writeln('Вычисление площади треугольника.'); writeln('Введите в одной строке длины сторон треугольника'); write ('->'); readln(a,b); writeln('Введите величину угла между сторонами ',
'треугольника'); ' write('->'); readln(f); ( s=a*h/2
h (высота треугольника) может быть вычислена
по формуле: h=b*sin(f).
Однако, в Turbo Pascal аргумент функции Sin должен быть выражен в радианах (1 рад. = 180/3.1415925, где 3.1415926 - число "ПИ").)
s:=a*b*sin(f*3.1415926/180)/2; writeln;
writeln('Площадь треугольника:',s:6:2,' кв.см.1); readln; end.

Задача 61

{ Вычисление сопротивления электрической цепи,
состоящей из двух параллельно соединенных элементов. }
var
rl,r2: real; { сопротивление элементов цепи } г: real; { суммарное сопротивление цепи }
begin
writeln('Вычисление сопротивления электрической цепи1); writeln('при параллельном соединении элементов.'); writeln('Введите исходные данные:'); write('Величина первого сопротивления (Ом) —>'); readln(rl) ;
write('Величина второго сопротивления (Ом) —>'); readln(r2) ; r:=rl*r2/(rl+r2) ; writeln;
writeln('Сопротивление цепи:',г:6:2, ' Ом'); readln; end.

Задача 65

{ Вычисление стоимости поездки на дачу и обратно } var
rast: real; { расстояние до дачи }
rash: real; { расход бензина на 100 км пути }
cena: real; { цена одного литра бензина }
summ: real; { стоимость поездки на дачу и обратно } begin
writeln('Вычисление стоимости поездки на дачу и обратно.');
write('Расстояние до дачи (км) ->');
readln(rast);
write('Расход бензина (литров на 100 км) ->');
readln(rash);
write('Цена литра бензина (руб.) —>');
readln(cena);
summ:=2*rast/100*rash*cena;
writeln;
writeln('Поездка на дачу и обратно обойдется в',
surran: 6:2, ' руб. ') ; readln; end.

Задача 67

{ Вычисление площади поверхности цилиндра } var
г: real; { радиус основания цилиндра }
80
Turbo Pascal в задачах и-примерах
h: real; ( высота цилиндра } s: real; { площадь поверхности цилиндра } begin
writeln('Вычисление площади поверхности цилиндра');
writeln('Введите исходные данные:');
write('радиус основания цилиндра (см) —>');
readln(r);
write('высота цилиндра (см) ->');
readln(h);
{
pi - именованная константа, ее значение равно числу "ПИ" Sqr - функция Turbo Pascal, ее значение равно квадрату аргумента, т. е. Sqr(x) = х*х
}
s:=2*pi*sqr(r)+2*pi*r*h; writeln;
writeln('Площадь поверхности цилиндра ',s:6:2,'кв.см.'); readln; end.

Задача 69

{ Пересчет расстояния из верст в километры } var
v: real; { расстояние в верстах }
k: real; { расстояние в километрах } begin
writeln('Пересчет расстояния из верст в километры');
writeln('Введите расстояние в верстах и нажмите <Enter>');
write('->');
readln(v);
k:=v*1.0668;
writeln(v:6:2,' верст(а/ы) — это ',k:6:2,' км');
writeln('Для завершения работы программы нажмите ',
'<Enter>');
readln; end.

Задача 71

( Вычисление дохода по вкладу } var
sum: real; { сумма вклада }
srokrreal; { срок вклада } stavka:real; f процентная ставка } dohodrreal; { доход по вкладу } begin
writeln('Вычисление дохода по вкладу.');
writeln('Введите исходные данные:');
write('Величина вклада (руб.) —>');
readln(sum) ;
write('Срок вклада (дней) —>');
readln(srok);
write('Процентная ставка —>');
readln(stavka);
dohod:=(sum*stavka/100)/365*srok; { 365 - кол-
в году } sum:=sum+dohod; writeln;
writelnt'---------------------------------') ;
writeln('Доход:',dohod:9:2,' руб.');
writeln('Сумма по окончании срока вклада:',sum:9:2,
'руб.'); readln; end.

Задача 72

( Преобразование величины, выраженной в минутах, в соответсвующее ей значение, выраженное в часах и минутах ) var
min: integer; { интервал в минутах }
h: integer; ( количество часов }
пк integer; { количество минут } begin
writeln('Введите величину временного интервала (в минутах)');
write('->');
readln(min);
h:= min div 60;
m:= min mod 60;
writeln;
writeln(min,' мин. -это ',h,' час.',т,' мин.');
readln; end.

Задача 73

{ Преобразование числа в денежный формат } var
n:- real; { дробное число }
г: integer; { целая часть числа (рубли) }
к: integer; { дробная часть числа (копейки) ) begin
writeln('Преобразование числа в денежный формат.');
write('Введите дробное число —>');
readln(n);
r:= Round(n*100) div 100;
k:= Round(n*100) mod 100;
writeln;
writeln(n:6:2,' руб. -это ',r,' руб.',к,' коп.');
readln; end.

Задача 76

{ Вычисление частного } var
a,b,c: real; { делимое, делитель и частное } begin
writeln('Вычисление частного');
writeln('Введите в одной строке делимое и делитель,');
writeln('затем нажмите <Enter>');
write('->');
readln(a,b);
if b<> 0 then begin c:=a/b;
writeln('частное от деления ',а:6:3,' на ',Ь:6:3, 'равно ',с:6:3);
end else
writeln('Ошибка! Делитель не должен быть ',
1равен нулю!'); readln; end.

Задача 77

{ Вычисление площади кольца } var
rl,r2 : real; { радиус кольца и отверстия } s : real; { площадь кольца } begin
writeln('Введите исходные данные:'); write('радиус кольца (см) —> '); readln(rl);
write('радиус отверстия (см) —> '); readln(r2); if rl > r2 then begin
s:=2*3.14*(rl-r2);
writeln('Площадь кольца ',s:6:2,' кв.см'); end
else writeln('Ошибка! Радиус отверстия не может быть ',
'больше радиуса кольца. ') ;
writeln('Для завершения работы программы нажмите <Enter>'); readln; end.

Задача 78

{ Вычисление сопротивления электрической цепи } var
rl,r2: real; { величины сопротивлений цепи }
г: real; { суммарное сопротивление }
t: integer; { тип соединения элементов:
1 — последовательное;
2 — параллельное } begin
writeln('Вычисление сопротивления электрической цепи1);
writeln('Введите исходные данные: ') ;
write('Величина первого сопротивления (Ом) —>');
readln(rl);
write('Величина второго сопротивления (Ом) ->');
readln(r2);
write('Тип соединения элементов (1-последовательное, ',
'2-параллельное) —>'); readln(t);

Задача 79

{ Решение квадратного уравнения }
program sqroot;
var
a,b,с:real;{ коэффициенты уравнения } xl,x2:real;{ корни уравнения } d:real; { дискриминант } begin
writeln('* Решение квадратного уравнения *'); write('Введите в одной строке значения коэффициентов'); writeln(' и нажмите <Enter>'); write('->');
readln(a,b,с); { ввод коэффициентов } d:=b*b-4*a*c; { вычисление дискриминанта } if d >= О then begin
xl:=-b+sqrt(d)/(2*a); x2:=-b-sqrt(d)/(2*a); writeln{'Корни уравнения:'); writeln('xl=',xl:9:3); writeln('x2=',x2:9:3); end else
writeln('Корней нет'); end.

Задача 81

Вычисление стоимости покупки с учетом скидки } var
summ: real; { сумма покупки }

begin
writeln('Вычисление стоимости покупки с учетом скидки.'); writeln('Введите стоимость покупки и нажмите <Enter>.'); write('->'); readln (summ) ; if summ > 500
then { предоставляется скидка } begin
if suiran > 1000 then
begin
writeln('Вам предоставляется скидка 5%'); summ:=0.95*summ; end else
begin
writeln('Вам предоставляется скидка 3%'); summ:=0.97*summ; end;
writeln('Сумма покупки с учетом скидки: ', summ: б:2,' руб.');
end else
writeln('Скидка не предоставляется.'); readln; end.

Задача 82

{ Проверка знания истории } var
year: integer; { ответ испытуемого } begin '
writeln('В каком году был основан Санкт-Петербург?');
writeln('Введите число и нажмите <Enter>');
write('->');
readln(year);
if year = 1703
then writeln('Правильно.') else

begin
write('Вы ошиблись, ');
writeln('Санкт-Петербург был основан в 1703 году.1) end; readln; end.

Задача 84

{ Проверка знания истории архитектуры } var
otv: integer; { номер ответа, выбранного испытуемым } begin
writeln('Архитектор Исаакиевского собора:');
writeln('1. Доменико Трезини');
writeln('2. Огюст Монферран');
writeln('3. Карл Росси');
writeln;
writeln('Введите номер правильного ответа и нажмите
<Enter>'); write('->'); readln(otv); if otv = 2
then writeln("Правильно.') else
begin
writeln('Вы ошиблись. ') ;
writeln('Архитектор Исаакиевского собора ', 'Огюст Монферран.');
end;
readln; end.

Задача 86

{ Сравнение двух целых чисел } var
a,b: integer; ( сравниваемые числа } begin
write('Введите в одной строке два целых ');
writeln('числа и нажмите <Enter>');
write('->');
Часть II. Решения
87
readln(a,b); if a = b
then writeln('числа равны') else if a < b
then writeln(а,1 меньше ',b) else writeln(а,' больше ',b); readln;
end.

Задача 87

{ Проверка умения умножать числа } var
ml,m2,p: integer; { сомножители и произведение }
otv: integer; { ответ испытуемого } begin
Randomize; { инициализация генератора случайных
чисел } ml:=Random(9)+1; { значение функции Random(а) — число }
{ в диапазоне от 0 до а-1 m2:=Random(9)+l; р:=ml*m2;
writeln('Сколько будет ' ,ml,'x',m2,' ?'); writeln('Введите ответ и нажмите <Enter>'); write('-> '); readln(otv); if p = otv
then writeln('Правильно.')
else writeln('Вы ошиблись. ',ml,'x',m2,'=',p); readln; end.

Задача 89

{ Проверяет на четность введенное с клавиатуры число } var
n: integer; { введенное пользователем число } begin
writeln('Введите целое число и нажмите <Enter>');
write('->');
readln(n);
write ('Число \n, ' - ');
if n mod 2=0
then writeln('четное.') else writeln('нечетное.');
readln; { чтобы результат не исчез с экрана }
end.

Задача 91

{ Вычисление стоимости телефонного разговора с учетом
скидки, предоставляемой по субботам и воскресеньям } var
Time:integer; { длительность разговора )
Day:integer; { день недели }
Summa:real; { стоимость разговора }
begin
writeln('Вычисление стоимости разговора по телефону.');
writeln('Введите исходные данные:');
write('Длительность разговора');
write(' (целое кол-во минут) —>');
readln(Time);
write('День недели');
write(' (1-понедельник,..,7-воскресенье)-> ');
readln(Day);
Summa:= 2.3 * Time; { цена минуты 2.3 руб.) if (Day = 6) or (Day = 7) then begin
writeln('Предоставляется скидка 20%); Summa:=Summa * 0.8; end;
writeln('Стоимость разговора:',Summa:8:2,' руб.'); readln;
end.

Задача 92

{ Контроль веса var w:real; h:real; } { вес ) { рост }
opt:real; { оптимальный вес } d:real; ( отклонение от оптимального веса } begin
writeln('Введите в одной строке через пробел'); writeln ('рост (см) и вес (кг), затем нажмите <Enter>'); write('->'); readln(h,w); opt:=h-100; if w=opt then
writeln('Ваш вес оптимален!') else
if w<opt
then begin
d:=opt-w;
writeln('Вам надо поправиться на ',
d:5:2,' кг.'); end else begin
d:=w-opt;
writeln('Вам надо похудеть на1,
d:5:2,' кг'); end; readln; end.

Задача 93

Определение времени года по номеру месяца } var
month: integer; { номер месяца } begin
writeln('Введите номер месяца (число от 1 до 12)
и нажмите <Enter>'); write('->'); readln(month); case month of
1,2,12: writeln(•Зима');
3..5: writeln('Весна');
6..8: writeln('Лето');
9.. 11: writeln('Осень');
i 90
else
end;
readln
end.

Задача 95

writeln('Число должно быть от 1 до 12');
( Определение стоимости междугороднего
телефонного разговора } var
kod: integer; { код города } cena: real; { цена минуты ) dlit: integer; { длительность разговора J summ: real; { стоимость разговора } begin
writeln('Вычисление стоимости разговора по телефону.'); writeln('Введите исходные данные:'); write('Код города —>'); readln(kod);
write('Длительность разговора (целое кол-во минут) —>'); readln(dlit); write('Город: '); case kod of 432: begin
writeln('Владивосток'); cena:=2.2; end; 095: begin
writeln('Москва'); cena:=1; end; 815: begin
writeln('Мурманск'); cena:=1.2; end; 846: begin
writeln('Самара'); cena:=1.4; end; end;
suran := cena * dlit; writeln('Цена минуты:',cena:6:2,' руб.');
writeln('Стоимость разговора:',summ:6:2, ' руб.'); readln; end.

Задача 96

{ Дописывает после числа слово "рубль" в правильной форме } var
n: integer; { число }
m: integer; ( остаток от деления п на 100 (последние две цифры) }
г: integer; { остаток от деления п на 10 (последняя цифра) } begin
writeln('Введите целое число (от 1 до 999)', ' и нажмите <Enter>');
write('-> ');
readln(n);
write(n,' ');
{ окончание определяется двумя последними цифрами | if n>100
then m := n mod 100;
if (m >= 11) and (m <= 14) then
writeln('рублей') else begin
r:=n mod 10; case r of
0, 5 .. 9: writeln('рублей'); 1: writeln ('рубль'); 2..4: writeln ('рубля'); end; end; readln; end.

Задача 98

{ Вычисление даты следующего дня } var
day:integer;
month:integer;;
year:integer;:
last .-boolean; { TRUE, если текущий день последний день
месяца } .r:integer; { если год високосный, то остаток от }
{ деления year на 4 равен нулю } begin
write('Введите цифрами сегодняшнюю дату');
write('(число месяц год) —> ');
readln(day,month,year);
last:=FALSE;
case month of
L,3,5,7,8,10,12:if day=31
then last:=TRUE;
4,6,9,11: if day=30
then last:=TRUE;
2: if day = 28 then
begin
r:=year mod 4; if r <> 0
then last:=TRUE; end; end; { case }
if last
then begin
writeln('Последний день месяца!');
day:=l;
if month=12
then begin
month:=1; year:=year + 1;
writeln('C наступающим Новым годом!'); end
else month:=month + 1; end
else day:=day + 1; writelnf'Завтра ',day,'.',month,'.' ,year );
readln;
end.

Назад Начало Вперед



Книжный магазин