Программирование на языке Delphi/Практическая работа 1

Материал из Викиверситета

Программа 1. Перевод градусов из шкалы Цельсия в Кельвины[править]

Цель задачи: Разработать программу, которая позволяет пользователю неограниченное число раз переводить градусы Цельсия в Кельвины.

  • Программа должна сообщать пользователю что он ввел некорректную температуру: температура не может быть ниже абсолютного нуля (0 Кельвинов).
  • Пользователь может перевести температуру неограниченное число раз.
  • После каждого перевода программа должна спрашивать пользователя хочет ли он перевести еще одно значение.
{$APPTYPE CONSOLE}

var t:integer;
    c:char;
    b:boolean 
begin
b:=true;
writeln('Programma dlya perevoda gradusov Celsia v Kelviny'); 
while b do begin  
  writeln('Wedite temperaturu v Celsiah');
  readln(t); // Считываем температуру
  if t<-273 then begin  //-273 Цельсия = 0 Кельвинов
      writeln('Slishkom nizkaya temperatura');
      continue;
      end;
  writeln(t+273,' Kelvinov');//переменные выводятся без апострофов, также с ними возможны арифметические действия 
  repeat //Мы делаем цикл, потому что пользователь может ввести любую букву, а не только y или n
    writeln('Eshe raz?  n/y');
    readln(c);
    if c='n' then begin
         b:=false;
         break;
         end;     
    until c='y'; 
  end;
writeln('Konec programmy');
readln;
end.

Рассмотрим программу. Мы создаем цикл с помощью оператора while. Затем мы считываем с клавиатуры значение температуры. Надо сказать, что мы используем целые числа, поэтому 0 градусов Цельсия равно 273 Кельвина (а не 273,15). Если значение температуры ниже -273 градусов Цельсия, то выводим сообщение об ошибке. Если все в порядке, то мы переводим температуру в Кельвины и выводим ее. Затем мы должны спросить у пользователя, нужно ли ему осуществить ещё один перевод. Для этого мы начинаем новый цикл. Так как он находится в теле цикла (while), то он является внутреннем циклом. Этот цикл будет выполнятся пока пользователь не введёт "y" или "n". Если пользователь ответил утвердительно (ввёл "y"), то внутренний цикл завершается и продолжается внешний. В противном случае мы приравниваем к переменной b значение false и выходим из внутреннего цикла.

Программа 2. Поиск корней квадратного уравнения[править]

Цель задачи: разработать программу, которая решает квадратное уравнение при различных значениях вещественных коэффициентов a,b,c. Для этой программы мы будем использовать вещественный тип данных.

{$APPTYPE CONSOLE}

var a,b,c,d:real; //real - Вещественный тип данных
begin
writeln('Wedite koefficenty a,b,c');
readln(a);
readln(b);
readln(c);
d:=b*b-4*a*c;
If a<>0 then begin
  if d>0 then begin
  writeln('x1=',(-b+sqrt(d))/2*a:2:5);
  writeln('x2=',(-b-sqrt(d))/2*a:2:5);
  end else
    if d=0 then
      writeln('x=',-b/2*a)
      else
        writeln('Net weshestvennyh korney');
End;
readln;
end.

При выводе данных можно задавать формат вывода. Для этого после имени переменной ставится знак двоеточие " : ", - при выводе значения переменной вещественного типа отводится 5 позиций (включая отрицательный знак и точку), из них 2 позиции отводится для вывода цифр в дробной части. Если формат вывода не задавать, то вещественные числа будут выведены в экспоненциальной форме с количеством цифр, соответствующих типу переменной. Например:

d:=3.14;
writeln(d:3:5);

Домашняя работа[править]

  1. Составьте программу, проверяющую, верно ли утверждение, что введенное вами целое число является четным.
  2. Составьте программу для вычисления числа дней в месяце, если даны: номер месяца N — целое число от 1 до 12, целое число А, равное 1 для високосного года и 0 в противном случае.