Задачи Begin31-40, которые мы сегодня решаем, являются заключительными в блоке Begin. На данном этапе обучения, вы должны щелкать все эти задачи, как орешки. Если же у вас возникили какие-либо проблемы, оставьте комментарий с вопросом под этой статьей или напишите нам письмо.
Begin31. Дано значение температуры T в градусах Фаренгейта. Определить значение этой же температуры в градусах Цельсия. Температура по Цельсию TC и температура по Фаренгейту TF связаны следующим соотношением: TC = (TF – 32)·5/9.

program Begin31; var TC, TF: real; begin write('Введите значение температуры в градусах Фаренгейта: '); read(TF); TC := (TF - 32) * 5 / 9; writeln('Эта температура в градусах Цельсия: ', TC:5:1); end.
Begin32. Дано значение температуры T в градусах Цельсия. Определить значение этой же температуры в градусах Фаренгейта. Температура по Цельсию TC и температура по Фаренгейту TF связаны следующим соотношением: TC = (TF – 32)·5/9.
program Begin32; var TC, TF: real; begin write('Введите значение температуры в градусах Цельсия: '); read(TC); TF := TC * 9 / 5 + 32; writeln('Эта температура в градусах Фаренгейта: ', TF:5:1); end.
Begin33. Известно, что X кг конфет стоит A рублей. Определить, сколько стоит 1 кг и Y кг этих же конфет.

program Begin33; var X_kilo, Price_x_kilo, Y_kilo, Price_y_kilo, Price_one_kilo: real; begin write('Введите количество килограмм: '); read(X_kilo); write('Введите стоимость конфет: '); read(Price_x_kilo); Price_one_kilo := Price_x_kilo / X_kilo; writeln('Стоимость 1 кг. конфет -- ', Price_one_kilo:5:1); write('Введите количество кг.: '); read(Y_kilo); Price_y_kilo := Y_kilo * Price_one_kilo; writeln('Цена конфет за ', Y_kilo, ' кг. конфет равна -- ', Price_y_kilo:5:1); end.
Begin34. Известно, что X кг шоколадных конфет стоит A рублей, а Y кг ирисок стоит B рублей. Определить, сколько стоит 1 кг шоколадных конфет, 1 кг ирисок, а также во сколько раз шоколадные конфеты дороже ирисок.
program Begin34; var sweet_kilo, price_sweet_kilo, Price_one_sweet_kilo: real; iris_kilo, Price_iris_kilo, Price_one_iris_kilo: real; Ratio: real; begin write('Введите количество килограмм шоколадных конфет: '); read(sweet_kilo); write('Введите стоимость конфет: '); read(Price_sweet_kilo); Price_one_sweet_kilo := Price_sweet_kilo / sweet_kilo; writeln('Стоимость 1 кг. конфет -- ', Price_one_sweet_kilo:5:1); write('Введите количество килограмм ирисок: '); read(iris_kilo); write('Введите стоимость конфет: '); read(Price_iris_kilo); Price_one_iris_kilo := Price_iris_kilo / iris_kilo; writeln('Стоимость 1 кг. конфет -- ', Price_one_iris_kilo:5:1); Ratio := Price_one_sweet_kilo / Price_one_iris_kilo; writeln('Один килограмм конфет дороже ирисок в ', Ratio:5:1, ' раз.'); end.
В этой задаче я использовал очень длинные переменные и объемные диалоги с пользователем. В результате надобность в комментариях отпадает.
Еще один момент. Если вы хотите, чтобы ваши программы выводились в отдельном окне, то следует использовать встроенный в Паскаль, стандартный модуль — crt. Чтобы подключить какой — либо модуль следует использовать специальную команду — uses.

После этого откроется отдельное окошко.

Begin35. Скорость лодки в стоячей воде V км/ч, скорость течения реки U км/ч (U < V). Время движения лодки по озеру T1 ч, а по реке (против течения) — T2 ч. Определить путь S, пройденный лодкой (путь = время · скорость). Учесть, что при движении против течения скорость лодки уменьшается на величину скорости течения.
program Begin35; var S, V, U, T1, T2: real; begin write('Введите скорость лодки: '); read(V); write('Введите скорость течения реки: '); read(U); write('Введите время движения по озеру: '); read(T1); write('Введите время движения по реке: '); read(T2); S := T2 * (V - U) + T1 * V; writeln('Путь, пройденный лодкой равен ', S:5:2); end.
Begin36. Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили удаляются друг от друга. Данное расстояние равно сумме начального расстояния и общего пути, проделанного автомобилями; общий путь = время · суммарная скорость.
program Begin36; var V1, V2, S, T, S1: real; begin write('Введите скорость первого автомобиля: '); readln(V1); write('Введите скорость второго автомобиля: '); readln(V2); write('Введите время: '); readln(T); write('Введите расстояние между автомобилями: '); readln(S); S1 := (V1 + V2) * T + S; writeln('Через ', T, 'ч. расстояние ', S1, ' км.'); end.
Begin37. Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили первоначально движутся навстречу друг другу. Данное расстояние равно модулю разности начального расстояния и общего пути, проделанного автомобилями; общий путь = время · суммарная скорость.
Program Begin37; var S_obshyi, S_cherez_T, T, S, V1, V2: real; begin write('Введите скорость первого автомобиля: '); readln(V1); write('Введите скорость второго автомобиля: '); readln(V2); write('Введите первоначальное расстояние: '); readln(S); write('Введите T: '); readln(T); S_obshyi:=T*(V1+V2); S_cherez_T:=abs(S-S_obshyi); write('Расстояние между автомобилями через ', T,' ч = ', S_cherez_T); end.
Begin38. Решить линейное уравнение A·x + B = 0, заданное своими коэффициентами A и B (коэффициент A не равен 0).
program Begin38; var x, A, B: real; begin writeln('Программа для решения уравнения A * x + B = 0. '); write('Введите коэффициент А: '); readln(A); write('Введите коэффициент В: '); readln(B); x := -B / A; write('х = ', x:5:2); end.
Begin39. Найти корни квадратного уравнения A·x2 + B·x + C = 0, заданного своими коэффициентами A, B, C (коэффициент A не равен 0), если известно, что дискриминант уравнения положителен. Вывести вначале меньший, а затем больший из найденных корней. Корни квадратного уравнения находятся по формуле x1,2 = (−B ± √D ) / (2·A), где D — дискриминант, равный B2 – 4·A·C.
program Begin39; var x1, x2, A, B, C, D: real; begin writeln('Программа для решения уравнения A * x^2 + B * x + C = 0. '); write('Введите коэффициент А: '); readln(A); write('Введите коэффициент В: '); readln(B); write('Введите коэффициент C: '); readln(C); D := sqr(B) - 4 * A * C; x1 := (-B + sqrt(D)) / (2 * A); x2 := (-B - sqrt(D)) / (2 * A); writeln('х1 = ', x1:5:2); writeln('х2 = ', x2:5:2); end.
Begin40. Найти решение системы линейных уравнений вида
A1·x + B1·y = C1,
A2·x + B2·y = C2,
заданной своими коэффициентами A1, B1, C1, A2, B2, C2, если известно, что данная система имеет единственное решение. Воспользоваться формулами: x = (C1·B2 – C2·B1)/D, y = (A1·C2 – A2·C1)/D, где D = A1·B2 – A2·B1.
Program Begin40; var A1, B1, C1, A2, B2, C2, x, y, D: real; begin write ('Введите коэффициенты A1 и A2: '); readln (A1, A2); write ('Введите коэффициенты B1 и B2: '); readln (B1, B2); write ('Введите коэффициенты C1 и C2: '); readln (C1, C2); D := A1 * B2 - A2 * B1; x := (C1 * B2 - C2 * B1) / D; y := (A1 * C2 - A2 * C1) / D; writeln ('x = ', x:5:2); writeln ('y = ', y:5:2); end.
Ну, вот и все. Через несколько дней начнем решать задачи из блока Integer.
В блок схеме begin35 вывод неправильный!
Когда-нибудь я её исправлю. Но сейчас мне лень. Это так грустно.
Пусть я лучше спрошу это сейчас, чем никогда.
1. Как и когда нужно писать Write и Writeln?
2.Зачем нужна ширина поля вывода и как она выглядит на практике?
после команды write(read) курсор не переносится на новую строку т.е. начинает прямо тут же без пробелов, а writeln(readln) переносит курсор на следующую строку.
В блок схеме 33 ошибка
Должно быть не O:=X/A
а O:=A/X
в самой программе всё правильно
+
ошибка не исправлена
а я №39 усовершенствовала 🙂 (Очень хороший ВАШ сайт. Не пойму: почему не развиваете…)
program Begin39;
var
x1, x2, A, B, C, D: real;
begin
writeln (‘Программа для решения уравнения A*x^2+B*x+C=0.’);
write (‘Введите коэффициент А, причем он не равен 0: ‘);
readln (A);
write (‘Введите коэффициент В: ‘);
readln (B);
write (‘Введите коэффициент C: ‘);
readln (C);
D:=sqr(B)-4*A*C;
writeln (‘D= ‘, D);
if (D>0) or (D=0) then
begin
writeln (‘находим корни уравнения:’);
x1:=(-B+sqrt(D))/(2*A);
x2:=(-B-sqrt(D))/(2*A);
writeln (‘х1 = ‘, x1:5:2);
writeln (‘х2 = ‘, x2:5:2);
end;
if D<0 then writeln ('Уравнение не имеет корней.');
end.
Молодец! 🙂
Но тогда уже подкорректируйте и случай нулевого дискриминанта. Зачем усложнять себе жизнь, когда корни одинаковые?
program n_38;
var a,b,x1,x2,d,c:real;
begin
writeln(‘Введите а и b,c’);
readln(a);
readln(b);
readln(c);
d:=sqr(b)-4*a*c;
if d>0 then begin
x1:=(-b-sqrt(d))/(2*a);
x2:=(-b+sqrt(d))/(2*a);
if (x1<x2) then begin
writeln(x1);
writeln(x2);
end;
if
(x2<x1) then begin
writeln(x2);
writeln(x1);
end;
end;
end.
показывает больший из корней сначала, подскажите где ошибка
program n_38;
var a,b,x1,x2,d,c:real;
begin
writeln(‘Введите а и b,c’);
readln(a);
readln(b);
readln(c);
d:=sqr(b)-4*a*c;
if d>0 then begin
x1:=(-b-sqrt(d))/(2*a);
x2:=(-b+sqrt(d))/(2*a);
if (x1<x2) then begin
writeln(x1);
writeln(x2);
end;
if
(x2<x1) then begin
writeln(x2);
writeln(x1);
end;
end;
end.
где ошибка? показывает больший из корней сначала
program n_38;
var a,b,x1,x2,d,c:real;
begin writeln(‘Введите а и b,c’);
readln(a);readln(b); readln(c);
d:=sqr(b)-4*a*c;
if d>0 then begin
x1:=(-b-sqrt(d))/(2*a);
x2:=(-b+sqrt(d))/(2*a);
if (x1<x2) then begin
writeln(x1); writeln(x2);
end; if (x2<x1) then begin writeln(x2); writeln(x1); end; end; end.
как сделать чтоб выводил меньший корень вначале, укажите ошибку
где ошибка, что сделать чтоб выводил больший из корней вначале
просто поменяйте знак «».
Begin34. В задаче сказано «Определить, сколько стоит 1 кг шоколадных конфет, 1 кг ирисок», но если мы вводим 2 кг то он делит это на два. А как же посчитать 1кг из 6 например
Пожалуй, лучшие уроки по паскалю