Среда языка программирования Pascal ABC

Автор работы: Пользователь скрыл имя, 11 Октября 2013 в 07:27, контрольная работа

Описание работы

Первая версия языка Паскаль была разработана в 1968 году. Ее разработчиком является швейцарский ученый Никлаус Вирт. Свое название язык получил в честь создателя первой механической вычислительной машины француза Блеза Паскаля. На основе языка Паскаль в 1985 г. фирма Borland выпустила версию Turbo Pascal версии 3.0. С этого времени язык Паскаль используется во всем мире в учебных заведениях в качестве первого изучаемого языка программирования.
Система Pascal ABC основана на языке Delphi Pascal и призвана осуществить постепенный переход от простейших программ к объектно-ориентированному программированию.

Файлы: 1 файл

Язык программирования Pascal ABC.doc

— 401.50 Кб (Скачать файл)

Порядок действий при вычислении значения выражения:

1) вычисляются значения в скобках;

2) вычисляются значения функций;

3) выполняется операции смена знака, возведение в степень;

4) выполняются операции умножения и деления (в том числе целочисленного деления и нахождения остатка от деления);

5) выполняются операции сложения и вычитания.

Пример. Программа с использованием стандартных арифметических функций.

Program fun;

Var a, c :integer; {раздел описания переменных целого типа}

b,:real;  {раздел  описания переменных вещественного типа}

Begin      {начало тела программы}

    a:=16;       {исходные данные}

    b:= sqrt (a);  {функция sqrt извлекает квадратный корень из числа a и присваивает его значение переменной b - тип результата вещественный}

writeln('b=’,b);{вывод на экран значения переменной b}

   c:=sqr (а);  {функция sqr возводит в квадрат значение переменной а и присваивает его переменной c - тип результата целый}

 writeln(‘c=’,c); {вывод на экран монитора значения переменной c}

Еnd.

! Аргументы функции всегда пишутся в скобках, операцию умножения опускать нельзя.

! Нельзя писать выражения в виде обыкновенных дробей.

Примеры записи математических выражений:

Математическая  запись

Запись на Pascal

1. x2 - 7,2x + 6

Sqr(x) - 7.2 * x + 6

2.

 (Abs(x) - Abs(y)) / (1 + Abs(x * y))


 

 

 

4. Организация ввода и вывода  данных

 

Обмен информацией  с компьютером предполагает использование  определенных средств ввода-вывода. Основным средством ввода является клавиатура, вывода - дисплея. Процедура, которая в режиме диалога с  клавиатуры присваивает значение для переменной величины, называется процедурой ввода. В языке Pascal эта команда выглядит следующим образом:

Read(список переменных);

ReadLn(список переменных);

Разница между  работой процедур Read и Readln состоит  в следующем: после выполнения Read значение следующего данного считывается с этой же строчки, а после выполнения Readln - с новой строки.

Выполнение операторов ввода  происходит так: ход программы приостанавливается, на экран выводится курсор, компьютер  ожидает от пользователя набора данных для переменных, имена которых указаны в списке ввода. Пользователь с клавиатуры вводит необходимые значения в том порядке, в котором они требуются списком ввода, нажимает Enter. После этого набранные данные попадают в соответствующие им переменные и выполнение программы продолжается.

Пример.

Var A : real; B : integer; C : char;

Begin

  Read(A, B, C)

End.

Процедура, которая  выводит содержимое переменных на экран, называется процедурой вывода на экран. В Pascal эта команда выглядит следующим образом:

Write (список констант и/или переменных, разделенных запятой)

WriteLn(список констант и/или переменных, разделенных запятой)

Различие между двумя  операторами вывода: после выполнения оператора Writeln происходит переход  на новую строчку, а после выполнения инструкции Write, переход на новую строчку не происходит. При вызове оператора Writeln без параметров просто происходит переход на новую строчку.

Пример. Write(A, B, C);

WriteLn('Корнем уравнения является ', X);

Для управления размещением  выводимых значений процедуры Write и WriteLn используются форматный вывода. Под форматом данных понимается расположение и порядок отдельных полей данных.

Процедура вывода с форматом для целого типа имеет  вид:

WriteLn(A:N); где N - выражение целого типа, задающие длину поля вывода значений.

При выводе вещественных значений без указания формата - выводится  вещественное число длиной 18 символов в форме с плавающей запятой. Для десятичного представления  значения применяется оператор с  форматами вида:

WriteLn(R:N:M); где N - выражение целого типа, задающие длину поля вывода значений, М- количество знаков в дробной части.

Пример:

A:=25; Write (A);  результат    25

A:=25.367; Write (A:6:3); результат   25.367

                    Write (A:6:2); результат   25.37

A:=-7.4385  Write (A); результат    -7.438500E+00

S:=7; Write (S,’=’,5+2); - результат 7=7

Write (‘S=5+2’); - вывод текста S=5+2, заключенного в апострофы.

 

 

 

 

 

 

 

5. Реализация линейных алгоритмов

 

! Алгоритм, в котором команды выполняются последовательно друг за другом, называется линейным.

Пример: Ввод трех целых чисел, вычисление и вывод их среднего арифметического и среднего геометрического значения.

Program Z;

Var a1,a2,a3:integer;

   sa,sg:real;

Begin

 Writeln('Введи 3 целых числа:'); {Печать на экране просьбы о вводе}

   Read(a1,a2,a3);{Ввод данных}

   sa:=(a1 + a2 + a3) / 3;  {Вычисление среднего арифметического}

   sg:=sqrt(abs(a1*a2*a3)); {Вычисление среднего геометрического}

   Writeln ('Cр.арифм.=',sa:8:2);

   Writeln ('Cр.геом.=',sg:8:2) {Вывод данных}

End.

Пример: Вычисления площади круга. Программа запрашивает у пользователя значение радиуса круга, обеспечивает возможность ввести его значение, рассчитывает и выводит на экран величину площади круга с введенным радиусом. Таким образом, появляется возможность, не внося изменений в программу, вводить различные значения радиуса и получать, соответствующие им значения площади круга. Для этого достаточно несколько раз запустить программу.

Program Inteface;

  Var R,S: Real;

 Begin

   Write('Введите радиус круга '); {Печать на экране просьбы о вводе}

   Readln(R); {Ввод значения R}

   S:=Pi*SQR(R); {Вычисление площади руга}

   Writeln('Площадь круга радиусом ',R:5:2,' равна ',S:8:4)

End.

Пример. Скорость первого автомобиля v1 км/ч, второго - v2 км/ч, расстояние между ними s км. Какое расстояние будет между ними через t ч, если автомобили движутся в разные стороны?

Согласно условию  задачи искомое расстояние s1=s+(v1+v2)t (если автомобили изначально двигались в противоположные стороны) или s2=|(v1+v2)t-s| (если автомобили первоначально двигались навстречу друг другу).

Program Car;

Var V1, V2, T, S, S1, S2 : Real;

Begin

  Write('Введите скорости автомобилей, расстояние между ними и время движения:');

   ReadLn(V1, V2, S, T);

   S1 := S + (V1 + V2) * T;

   S2 := Abs((V1 + V2) * T - S);

  WriteLn('Расстояние будет равно ', S1:7:4, ' км или ', S2:7:4, ' км')

End.

Пример. Найти сумму цифр двухзначного натурального числа.

Program Did;

Var A,S1,S2:integer;

Begin

Write ('введите двухзначное число: ');

  ReadLn (А);      {ввод с клавиатуры числа}

  S1:=a div 10;    {нахождение первой цифры числа}

  S2:=a mod 10;    {нахождение последней цифры числа}

  WriteLn ('сумма цифр числа ',а, '=', S1+ S2) {вывод результата}

End.

Пример.Дано: c, m, S - часы, минуты, секунды. Найти общее количество секунд с начала суток.

Формула: Sec=c*3600+m*60+s

Program Second;

   Var c, m, s : Byte ; Sec: LongInt ;      

Begin

   Write ('Сколько часов прошло от начала суток? '); Readln (c);

   Write ('Сколько минут? '); Readln (m);

   Write ('Сколько секунд? '); Readln (s);

   Sec :=c*3600+m*60+s;

   Writeln ('С начала суток прошло секунд: ', Sec)

End.

Пример. Дано: координаты точки (Х,У). Получить сообщение TRUE, если точка принадлежит первой четверти окружности с радиусом 1, или сообщение FALSE, если точка не принадлежит области.

Формула: точка  с координатами (Х,У) принадлежит  первой четверти окружности с радиусом 1 если одновременно выполняются условия: Х>0, Y>0, X2+Y2<=1

Program FH;

   Var X,Y : Real;

Begin

Writeln (‘введи координаты точки: X, Y:’); Readln (X,Y);

Writeln ((X1>=0) AND (Y1>=0) AND (SQR(X)+SQR(Y)<=1));

End.

 

Задания для практической работы по теме линейные алгоритмы.

Составить программы на языке Pascal.

1. Даны два числа. Найти сумму и произведение этих чисел.

2. Даны два числа. Найти среднее арифметическое их квадратов и среднее арифметическое их модулей.

3. Вычислить значение выражения  , где х и y - целые числа.

4. Периметр прямоугольника равен р, одна из сторон равна а. Найти его площадь.

5. Гипотенуза прямоугольного треугольника равна с, острый угол а градусов.

6. Найдите площадь квадрата, если две его противоположные вершины заданы координатами (х1,у2) ,(х2,у2).

7. Определить сколько времени (t) затрачено на путь (s ) со скоростью (v).

8. Вершины треугольника заданы точками (х1,у2) ,(х2,у2), (х3,у3). Используя формулу Герона, найдите его площадь.(АВ=Sqrt((х1-х2)2+(у1-у2)2).

9. Сумма вклада S руб., ее вкладывают в банк под C % годовых на N лет. Какая прибыль будет на вкладе.

10. Подсчитать стоимость поездки на S км. : расход бензина на 100 км.-L литров, стоимость 1 литра бензина K руб.

11. Вычислить стоимость покупки со скидкой : покупка А руб., скидка С %.

12. Даны координаты трех вершин треугольника (x1, y1), (x2, y2), (x3, y3). Найти его периметр и площадь.

13. Скорость лодки в стоячей воде V км/ч, скорость течения реки U км/ч (U < V). Время движения лодки по озеру T1 ч, а по реке (против течения) - T2 ч. Определить путь S, пройденный лодкой.

14. Найти периметр и площадь прямоугольного треугольника, если даны длины его катетов a и b.

15. Дано целое четырехзначное число. Используя операции div и mod, найти сумму его цифр.

16. Дано целое четырехзначное число. Используя операции div и mod, найти произведение его цифр.

17. Длительность некоторого физического эксперимента измеряется в секундах; определить количество часов(полных), минут и секунд.

18. С начала месяца прошло m часов. Определить какое сейчас число.

19.  С начала  суток прошло k минут. Определить  который сейчас час. (В часах  и минутах).

20. Дано: координаты точки (Х,У). Получить сообщение TRUE, если точка принадлежит 2,3,4 четверти окружности с радиусом R, или сообщение FALSE, если точка не принадлежит области.

 

 

6. Алгоритмическая конструкция  ветвление

 

На практике решение большинства задач не удается описать с помощью программ линейной структуры. При этом после проверки некоторого условия выполняется та или иная последовательность операторов, однако происходит нарушение естественного порядка выполнения операторов. Условный оператор для реализации разветвлений в программе имеет следующую структуру:

If <логическое выражение> Then серия1 Else серия2;

Если логическое выражение, выступающее в качестве условия, принимает значение True (истинно), то выполняются операторы следующие  за then (серия1), если False (ложь), то выполняются операторы расположенные после else (серия2).

Поскольку развилка может  быть неполной, то возможна и неполная форма записи условного оператора:

If <логическое выражение> Then серия;

Когда выполняется  последовательность команд (серия), необходимо использовать так называемые операторные скобки:

Begin

<Оператор 1>;

<Оператор 2>;

         ...

<Оператор N>

End;

! Точка с запятой после Begin не ставиться.

Вариант условного оператора  в этом случае:

If <условие> Then Begin <группа операторов 1> End;

  Else Begin < группа операторов 2> End;

! Знак "точка с запятой" не ставится перед служебным словом Else, но операторы в группах отделяются друг от друга этим знаком.

На языке Паскаль условия  представляют собой выражения, значением  которых является величина логического типа (True - истина или False - ложь). Это может быть как просто переменная указанного типа, так и сложная последовательность высказываний, связанных логическими операциями.

В простых условиях могут  применяться знаки операций сравнения: >(больше), <(меньше), =(равно), <>(не равно), >=(больше или равно), <=(меньше или равно).

Пример. (C+D3)>=(D1*(45-2))

В сложных условиях логические выражения строятся с помощью логических операций: and (и), or (или), not (не).

Примеры: (a>b) and (a>c); (Х<=1) or (Y>5) and (a>2); (4*Х-1>0) and (Х+2<3); not (a=b).

! Операции сравнения имеют низший приоритет по сравнению с другими операциями, поэтому отношения в логических выражениях заключают в скобки.

Пример. Из двух чисел необходимо выбрать наибольшее.

Program Example;

Var A,B,C : Real; {A,B - для хранения чисел, C - результат}

Begin

Writeln('Введите два числа');

Readln(A,B);  {Ввод чисел с клавиатуры}

If A>B Then C:=A Else C:=B; {Если A>B, то результат A сохраняем в С, иначе результат - B}

Writeln(‘Наибольшее число =’,C);  {Выводим результат на экран}

Информация о работе Среда языка программирования Pascal ABC