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

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

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

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

Файлы: 1 файл

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

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

End.

Пример. По заданным коэффициентам решить квадратное уравнение

Program Sq1;

Var A, B, C, D, X1, X2 : Real;

  Begin

Writeln ('Введите коэффициенты квадратного уравнения');

Readln (A,B,C);

D:=B*B-4*A*C; {вычисление дискриминанта}

If D<0 Then Writeln ('Корней нет! ')

Else Begin

X1:=(-B+SQRT(D))/2/A;

X2:=(-B-SQRT(D))/2/A;

Writeln ('X1=', X1:8:3, ' X2=',X2:8:3)

End

End.

Условный оператор реализует разветвление вычислительного  процесса по двум направлениям, одно из которых осуществляется при выполнении условия, другое - в противном случае. Для реализации разветвлений более чем по двум направлениям необходимо использовать несколько условных операторов. В этом случае говорят о вложенности условных операторов. В случае вложенных ветвлений каждое новое ключевое слово Else относится к ближайшему If.

Пример. Дано действительное число a. Вычислить f(a), если

Program Usl1;

 Var х, F : Real;

 Begin

  WriteLn('Введите действительное число: ');  ReadLn(х);

   If х <= 0 Then F: = 0 Else

         If х <= 1 THEN F: = Sqr(х) - х  Else F = Sqr(х) - Sin(Pi * Sqr(х));

 WriteLn('Значение функции F(‘,x:5:2,’) = ', F:10:4);

End.

Кроме условного  оператора в качестве управляющей  структуры довольно часто используется оператор выбора CASE. Эта структура позволяет переходить на одну из ветвей в зависимости от значения заданного выражения (селектора выбора). Ее особенность состоит в том, что выбор решения здесь осуществляется не в зависимости от истинности или ложности условия, а является вычислимым. Оператор выбора позволяет заменить несколько операторов развилки (в силу этого его ещё называют оператором множественного ветвления).

В конструкции CASE вычисляется выражение K и выбирается ветвь, значение метки которой совпадает  со значением K. После выполнения выбранной ветви происходит выход из конструкции CASE. Если в последовательности нет метки со значением, равным K, то управление передается внешнему оператору, следующему за конструкцией CASE (в случае отсутствия альтернативы ELSE; если она есть, то выполняется следующий за ней оператор, а уже затем управление передается внешнему оператору).

Запись оператора  выбора

Case K OF

   A1 : серия 1;

   A2 : серия 2;

     ...

   AN : серия N

  Else  серия N + 1

  End;

Любая из указанных  серий операторов может состоять как из единственного оператора, так и нескольких (в этом случае, как обычно, операторы, относящиеся к одной метке, должны быть заключены в операторные скобки Begin…End).

Выражение K здесь может  быть любого порядкового типа (к  таким типам относятся все целые типы, Boolean, Char).

Пример. Найти наибольшее из двух действительных чисел используя, оператор выбора.

Program Maximum;

Var Max, X, Y : Real;

Begin

  Write('Введите два неравных числа:');

  ReadLn(X, Y);

  Case X > Y Of

  TRUE  : Max := X;

  FALSE : Max := Y

  End;

  WriteLn('Максимальное из двух есть ', Max : 12 : 6)

End.

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

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

1. Дано число к- целое. Определить, является ли оно четным (нечетным).

2. Выяснить, имеет ли решение уравнение вида  А*х+В=0  в зависимости от параметра А.

3. Вычислить значение функции:          х*5   ,если х<=-1

                                                                   x/5    ,если х>=-1


4. Вычислить значение функции:    х*5   ,если х<=-1

                                                                   x/5    ,если х>=-1

                                                                   x     ,если -1<x<1

5. Даны три числа А, В и С. Значение наибольшего из них удвоить.

6. Даны три числа А, В и С. Выяснить существует ли треугольник с длинами сторон А,В,С.

7. Дано число К- целое, трехзначное. Найти сумму цифр этого числа.

8. Даны три числа А , В и С . Выдать их в порядке возрастания.

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

10. Составьте алгоритм, который по номеру месяца выдает пору года.

11. Составьте алгоритм, который по кол-ву лет школьника определяет, в каком он учится классе.

 

 

 

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

 

С помощью операторов повторения (цикла) организуется многократное выполнение повторяющихся действий. Если число повторений цикла известно или может быть вычислено, то целесообразно использовать оператор цикла "с параметром"(For). Если же момент завершения цикла зависит от выполнения некоторого условия, то применяются операторы "Пока" и "До" (While, Repeat). Друг от друга циклы отличаются структурой и используются каждый для своего класса задач.

С помощью оператора For осуществляется циклическое выполнение последовательности действий, управляемой переменной цикла, которой присваиваются последовательно возрастающие или убывающие значения.

Оператор имеет  два варианта записи:

1. For <переменная цикла> := <начало > to <конец> do < оператор>

(С возрастанием  переменной цикла)

После вычисления и проверки начального и конечного значений переменной цикла (начало <= конец), выполняются операторы, образующие тело цикла. Далее значение переменной цикла увеличивается на единицу, и процесс, включающий проверку и выполнение операторов, повторяется. Если переменная цикла превышает конечное значение, то происходит выход из цикла и выполняется оператор, следующий за структурой For.

2. For <переменная цикла> := <начало > downto <конец> do < оператор>

(С убыванием переменной цикла)

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

В операторе  цикла Repeat используется условие логического типа, управляющее выходом из цикла, которое проверяется после выполнения операторов цикла.

Оператор имеет  следующий вид:

Repeat <последовательность операторов>

Until<условие>

Последовательность  операторов выполняется до тех пор, пока <условие > не выполнится. В  этом случае цикл завершается, и происходит переход на следующий оператор.

В операторе While в отличие от Repeat, используется условие, служащее индикатором выхода из цикла и проверяется до выполнения последовательности операторов, содержащихся внутри цикла.

Оператор имеет  следующий вид:

      While <условие> do <оператор>

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

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

1. For i:=1 to n do s:=s*i

Преимущество  структуры(1) тогда, когда переменная цикла целого типа и изменяется с  шагом 1.

2.  s:=1; i:=1;

Repeat

s:=s*i;

i:=i+1;

Until i>n;

3.  s:=1; i:=1;

While i<=n do

 Begin

    s:=s*i;

    i:=i+1;

End;

В конструкции (2,3) переменная цикла может быть вещественного типа. и изменятся  с любым шагом.

! Если тело цикла содержит более одного действия, то необходимо использовать операторные скобки (Begin   End).

Пример. Вывести на печать все цифры введенного целого числа.

Program Maс;

Var a,b: longint;

Begin

Read(a); {ввод целого числа}

Repeat

b:=a mod 10; {вычисление крайней правой цифры числа}

Writeln(b); {вывод цифры}

a:=a div 10; {переменная а без крайней правой цифры}

Until a=0;

     End.

Пример. Возвести число а в степень n.

  Program Work;

Var n,i: integer;

       L,a: real;

Begin

Writeln(‘Введите число - a  :’); Readln(a);

Writeln(‘Введите показатель степени - n :’); Readln(n);

L:=1; i:=1;

While i<=n do Begin

L:=a*L;

i:=i+1;

End;

  Writeln(‘Число ‘,a,’ в степени ’,n,’ равно ’,L:6:4);

End.

 

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

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

1. Вычислить сумму первых К слагаемых ряда:

а) 1+1/2+1/3+…1/к;

б) 2+4+6+….2*к;

в) 1+1/22-1/32+1/42-…1/к2;

г) 1+(1+2)+(1+2+3)+…+(1+2+…+10).

2. Найти частное и остаток от деления натурального числа А на число В, используя только операции вычитания и сравнения двух чисел.

3. Дано натуральное число К. Найти :а) сумму цифр числа; б) кол-во цифр в числе.

4. Даны два числа А и В(положительные). Составить алгоритм нахождения:

а) наименьшего  общего делителя;

б) наименьшего  общего кратного.

5. Вычислить n! =1*2*3*4*…*n (факториал числа).

6. Даны два целых положительных числа А и В. Найти наибольшее число К такое, что А+А23+…+АК <=В.

7. Дано натуральное число К (K>0). Определить, является ли число простым (натуральные числа, которые имеет два натуральных делителя 1 и самого себя - 2,3,5,7…).

8. Дано натуральное число К (K>0). Определить, является ли оно совершенным. (число совершенное, если оно равно сумме своих делителей, 6=1+2+3).

9. Найти кол-во всех трехзначных чисел, сумма цифр которых равна числу К.

10.  Сумма в S руб. положили в банк. При этом прибыль составляет k % в год от первоначальной суммы. Через какой срок сумма вклада увеличится в x раз.

 

8. Структурированный тип данных: массив

 

До сих пор  мы рассматривали переменные, которые  имели только одно значение, могли  содержать в себе только одну величину определенного типа. Для сохранения и обработки данных, содержащих десятки, сотни, тысячи величин в языке Pascal существует структурированный тип данных: массив.

Массив - это пронумерованная последовательность величин одинакового типа, обозначаемая одним именем. Элементы массива располагаются последовательно в ячейках памяти, обозначаются именем массива и индексом. Каждое из значений, составляющих массив, называется его компонентой (или элементом массива).

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

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

Если за каждым элементом массива закреплен  только один его порядковый номер, то такой массив называется линейным (одномерным). Количество индексов элементов массива определяет размерность массива. По этом признаку массивы делятся на одномерные (линейные), двумерные, трёхмерные и т.д. Проще всего представить себе массив в виде таблицы, где каждая величина находится в собственной ячейке. Положение ячейки в таблице должно однозначно определяться набором координат (индексов).

Одномерный  массив - одномерная упорядоченная совокупность элементов некоторого типа, которые адресуются с помощью индекса.

Пример. Числовая последовательность четных натуральных чисел 2, 4, 6, ..., N представляет собой линейный массив, элементы которого можно обозначить А[1]=2,А[2]=4,А[3]=6, ..., А[К]=2*(К+1), где К - номер элемента, а 2, 4, 6, ..., N - значения. Индекс (порядковый номер элемента) записывается в квадратных скобках после имени массива.

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

Пример. Таблица умножения. На пересечении строки и столбца содержится результат произведения соответствующих чисел: A[i,j]=i*j, A[2,2]=4, A[3,2]=6. Первый индекс в записи таблиц обозначает строку, второй - столбец.

Форматы определения массивов для одномерного  массива:

Var имя массива: array [начальный индекс .. конечный индекс] of тип данных;

Для двумерного массива:

Var имя массива: array [начальный индекс .. конечный индекс, начальный индекс .. конечный индекс] of тип данных;

Пример. Var massiv1: array [1..5] of real; - одномерный массив, состоящий из 5 элементов (чисел) действительного типа.

     Var massiv2: array [1..10, 1..10] of integer; -двумерный массив из 100(10*10) целых чисел.

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

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