Решение задач. День четвертый. Задачи Begin31-40


begin31-40

Задачи Begin31-40, которые мы сегодня решаем, являются заключительными в блоке Begin. На данном этапе обучения, вы должны щелкать все эти задачи, как орешки. Если же у вас возникили какие-либо проблемы, оставьте комментарий с вопросом под этой статьей или напишите нам письмо.

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

Задачи  Begin
Задачи Begin
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.

Untitled Diagram 1

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 кг ирисок, а также во сколько раз шоколадные конфеты дороже ирисок.

Untitled Diagram 3

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.

Заходим в Программы. Нажимаем: " Открыть без привязки к оболочке".
Заходим в Программы. Нажимаем: » Выполнить без привязки к оболочке».

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

Подробнее про crt мы поговорим в следующих уроках.
Подробнее про crt мы поговорим в следующих уроках.

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 часов, если автомобили удаляются друг от друга. Данное расстояние равно сумме начального расстояния и общего пути, проделанного автомобилями; общий путь = время · суммарная скорость.

Untitled Diagram 5

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 часов, если автомобили первоначально движутся навстречу друг другу. Данное расстояние равно модулю разности начального расстояния и общего пути, проделанного автомобилями; общий путь = время · суммарная скорость.

Untitled Diagram 6

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,

Ax + 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.

  1. Пусть я лучше спрошу это сейчас, чем никогда.

    1. Как и когда нужно писать Write и Writeln?

    2.Зачем нужна ширина поля вывода и как она выглядит на практике?

  2. после команды write(read) курсор не переносится на новую строку т.е. начинает прямо тут же без пробелов, а writeln(readln) переносит курсор на следующую строку.

  3. В блок схеме 33 ошибка
    Должно быть не O:=X/A
    а O:=A/X
    в самой программе всё правильно

  4. а я №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.

  5. Молодец! 🙂
    Но тогда уже подкорректируйте и случай нулевого дискриминанта. Зачем усложнять себе жизнь, когда корни одинаковые?

  6. 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.
    показывает больший из корней сначала, подскажите где ошибка

  7. 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.
    где ошибка? показывает больший из корней сначала

  8. 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.
    как сделать чтоб выводил меньший корень вначале, укажите ошибку

  9. где ошибка, что сделать чтоб выводил больший из корней вначале

  10. Begin34. В задаче сказано «Определить, сколько стоит 1 кг шоколадных конфет, 1 кг ирисок», но если мы вводим 2 кг то он делит это на два. А как же посчитать 1кг из 6 например

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *