42582

Линейные программы и условные операторы в Pascal

Лабораторная работа

Информатика, кибернетика и программирование

Регистр символов в Паскале не имеет значения.1 Для вычисления значений z1 и z2 необходимо ввести с клавиатуры значение переменной и вывести полученные значения z1 и z2 на экран. Выполняемые функции нахождение значения z по формулам и . 8 Результаты тестирования Разработанные программы были протестированы в 3х режимах: корректные значения граничные значения некорректные данные.

Русский

2013-10-30

327 KB

17 чел.

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

ФИЛИАЛ ГОСУДАРСТВЕННОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«МОСКОВСКИЙ ЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ

(ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)» в г. Смоленске

Кафедра информатики

Отчёт

по лабораторной работе №1

Тема: «Линейные программы и условные операторы в Pascal»

по курсу: «Информатика и программирование»

Студент: Сороченков М.А.
Группа: ПИЭ-11
Преподаватель: Нестеров А.П.
Вариант: 1

Смоленск, 2011


1 Теоретической введение

  1.  Переменные

Программы на Паскале начинаются с ключевого слова program и следующего за ним имени программы с точкой с запятой; за ним следует тело программы, состоящее из секций описания переменных, типов и констант, объявлений процедур и функций и следующего за ними блока операторов, являющегося точкой входа в программу. В языке Паскаль блок ограничивается ключевыми словами begin и end. Операторы разделяются точками с запятой, после тела помещается точка, служащая признаком конца программы. Регистр символов в Паскале не имеет значения.

Требования к именам переменных:

  •  Всегда начинаются с латинской буквы 
  •  В именах допускаются только латинские буквы 
  •  Длина имени переменной не более 63 символов.
  •  Не разрешается использовать в имени следующие символы:
    + - * / \ ^ = > < <> >= <=
    . , : " ' ! $ ( ) ?
    а также пробелы и русские буквы
  •  Имена переменных желательно делать осмысленными, например, Speed1 или Skorst1 (переменные обозначающие скорость у 1-го объекта)
  •  Не разрешается использование зарезервированных слов
    1.  Типы переменных

Типы могут быть простыми (элементарными) (целые, символьные (литерные), вещественные), а также сложными (ограниченные, перечисляемые, булевские, строковые…).

Элементарные типы объявляются в разделе var. Сложные же объявляются в разделе types и используются для описания переменных в разделе var.

  1.  Операторы

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

Ввод исходных данных с клавиатуры происходит по оператору read  или readln:

read(<список переменных>);

или readln(<список переменных>);

Разница в выполнении этих операторов в том, что после выполнения ввода по оператору readln экранный курсор перемещается в начало новой строки, а по оператору read этого не происходит.

Вывод результатов происходит по оператору write или writeln:

write(<список вывода>);

или writeln(<список вывода>);

Оператор присваивания на Паскале имеет следующий формат:

<числовая переменная> := <арифметическое выражение>

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

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

  1.  Линейный алгоритм

Линейный алгоритм является аналогом обычного последовательного решения какой-либо задачи, когда все действия записываются поочередно.

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

1. ввод данных;

2. вычисления с помощью операторов присваивания;

3. вывод данных.

  1.  Условный оператор IF

Условный оператор включает в себя операторы, которые выполняются или не выполняются в зависимости от записанного в операторе условия. Оператор имеет вид:

  IF  "условие"  Then  "оператор1"  Else  "оператор2";

где "условие" - выражение логического типа;

"оператор1" выполняется, если условие верно ( True ),

"оператор2" выполняется, если условие не верно ( False ).


2 Техническое задание

2.1 Задача 1

Найти значение z1 и z2:

2.2 Задача 2

Вести координаты x и y и выяснить попадёт ли точка в заштрихованную фигуру.

2.3 Задача 3

Если максимальное значение из трёх взятых чисел больше 50, то найти произведение этих чисел, иначе – уменьшить каждое число в 2 раза.

3 Анализ технического задания

3.1 Для вычисления значений z1 и z2 необходимо ввести с клавиатуры значение переменной a и вывести полученные значения z1 и z2 на экран.

 

3.2 Для того что бы выяснить, попадёт ли точка с координатами (х ; y) в заштрихованную фигуру, необходимо составить уравнения каждой из линий, образующих фигуру: x2 + y2 = 2, y = - (x - 1), y = x - 1, y = - (x + 1), y = x + 1 и x = 0; преобразовать их в неравенства, при выполнении которых, точка будет внутри образованной фигуры: x2 + y2 < 2, y < - (x - 1), y > x - 1, y > - (x + 1), y < x + 1 и x < 0. При удовлетворении этим условиям точка попадёт внутрь фигуры.

3.3 Для того что бы выяснить, есть ли среди трёх введённых чисел, число большее 50, необходимо сравнить каждое из введённых чисел  с числом 50. (a>50 или b>50 или c>50)  Если хотя бы одно число >50, то необходимо посчитать произведение этих чисел, если нет – то каждое из веденных чисел нужно разделить на 2.

4 Блок-схема

4.1 Задача 1. Блок схема алгоритма представлена на рисунке 4.1.

Рисунок 4.1 – Блок-схема алгоритма.


4.2 Задача 2. Блок схема алгоритма представлена на рисунке 4.2.

Рисунок 4.2 – Блок-схема алгоритма


4.3 Задача 3. Блок схема алгоритма представлена на рисунке 4.3.

Рисунок 4.3 – Блок-схема алгоритма


5 Модульная структура программы

Программа состоит из одного модуля – самой программы.

6 Спецификация на программные модули

6.1 Задача 1

  1.  Имя модуля p1.
    1.  Имя вызываемого модуля – нет.
    2.  Выполняемые функции -  нахождение значения z по формулам  и

    .

  1.  Входные данные  - A типа real.
    1.  Выходные данные – Z типа real.
    2.  Особенности и ограничениянет.

6.2 Задача 2

  1.  Имя модуля p2.
    1.  Имя вызываемого модуля - нет.
    2.  Выполняемые функции – выяснение попадания точки с координатами (x;y) внутрь заданной фигуры..
    3.  Входные данные  - X и Y типа real.
    4.  Выходные данные – сообщение «Popali» или «Ne popali».
    5.  Особенности и ограничениянет.

6.2 Задача 3

  1.  Имя модуля p3.
    1.  Имя вызываемого модуля – нет.
    2.  Выполняемые функции – нахождения произведения введенных чисел a, b и с если выполняется условие (a>50) or (b>50) or (c>50), и уменьшение введенных чисел a, b и с в 2 раза – если условие не выполняется.
    3.  Входные данные  - a, b и c типа real.
    4.  Выходные данные – a, b, c, d, s типа real.
    5.  Особенности и ограничениянет.

7 Текст программы

7.1 Задача 1

program p1;

uses crt;

var z,a:real;      {Описание переменных}

begin

clrscr;     

write ('Vvedite znachenie a:');

readln(a);      {Ввод данных с кл-ры}

z:=cos(a)+sin(a)+cos(a)*3+sin(a)*a; {Вычисление z}

writeln('Znachenie z1=',z:2:2);  {Вывод z}

z:=1/4-1/4*sin(5/2*pi-8*a);   {Вычисление z}

write('Znachenie z2=',z:2:2);   {Вывод z}

readln;

end.

7.2 Задача 2

program p2;

uses crt;

var a,b,c,d,e,ox:boolean;    {Условия}

   x,y:real;      {Координаты точки}

begin

clrscr;

writeln('vvedite x and y');

readln(x,y);      {Ввод данных с кл-ры}

a:=(sqr(x)+sqr(y)<1);

b:=(y<-(x-1));

c:=(y>x-1);

d:=(y>-(x+1));

e:=(y<x+1);

ox:=x<0;

if (b and c and d and e) or (a and ox)

 then write('Popali')

   else write ('Ne popali');  {Проверка выполнения

условий и вывод

результата}

readln;

end.

7.3 Задача 3

program p3;

uses crt;

var a,b,c,s:real;

begin

clrscr;

writeln('Vvedite 3 peremennih');

readln(a,b,c);      {Ввод данных с кл-ры}

if (a>50) or (b>50) or (c>50) then {Проверка условия(сравнение)}

 begin

  s:=a*b*c;        {Выч-е произведения если условие верно}

  writeln('Proizvedenie=',s:2:2);   {Вывод}

  end

else

 begin

  a:=a/2;        {Уменьшение вдвое}

  b:=b/2;

  c:=c/2;

  write('a/2=',a:2:2,' b/2=',b:2:2,' c/2=',c:2:2);

 end;

readln;

end.

8 Результаты тестирования

Разработанные программы были протестированы в 3х режимах: корректные значения, граничные значения, некорректные данные. Результаты представлены в таблицах 8.1, 8.2 и 8.3.

Таблица 8.1 Результаты тестирования программы из задачи 1

Режим тестирования

Введённое значения

Значение z1

Значение z2

Корректные значения

15.8

-5.53

0.06

Корректные значения

-40

26.39

0.02

Граничные значения

0

4

0

Некорректные данные

b

Ошибка ввода

Некорректные данные

32..4

Ошибка ввода

Вывод: программа работает некорректно в случае ввода символа вместо числового значения и ошибочной записи дроби. Во всех остальных случаях результаты соответствуют действительности.

Таблица 8.2 Результаты тестирования программы из задачи 2

Режим тестирования

X

Y

Результат

Корректные значения

-0.5

0.5

Popali

Корректные значения

1

1

Ne popali

Граничные значения

0

1

Ne popali

Граничные значения

-1

0

Ne popali

Некорректные данные

b

-

Ошибка ввода

Некорректные данные

32..4

-

Ошибка ввода

Вывод: программа работает некорректно в случае ввода символа вместо числового значения и ошибочной записи дроби. Во всех остальных случаях результаты соответствуют действительности.

Таблица 8.3 Результаты тестирования программы из задачи 3

Режим тестирования

A

B

C

S

A

B

C

Корректные значения

45

7

74

23310.00

-

-

-

Корректные значения

13

6

42

-

6.5

3

21

Граничные значения

0

0

0

-

0

0

0

Граничные значения

49

49

49

-

24.5

24.5

24.5

Некорректные данные

k

-

-

Ошибка ввода

Некорректные данные

32..4

-

-

Ошибка ввода

Вывод: программа работает некорректно в случае ввода символа вместо числового значения и ошибочной записи дроби. Во всех остальных случаях результаты соответствуют действительности.

9 Заключение

В результате выполнения лабораторной работы освоены основные операторы и принципы построения линейных алгоритмов на языке Pascal, а так же принципы работы с условным оператором «if».


 

А также другие работы, которые могут Вас заинтересовать

39331. АНАЛИЗ ЛИНЕЙНОЙ АКТИВНОЙ ЦЕПИ 251.5 KB
  На основе анализа графиков трёх выходных сигналов сделать вывод о виде цепи (пропорционально - дифференцирующая или пропорционально - интегрирующая). Выделить случай, в котором операция, выполняемая цепью, наиболее близка к идеальному варианту преобразования входного сигнала.
39332. Анализ линейной стационарной цепи 235.5 KB
  Доросинский АНАЛИЗ ЛИНЕЙНОЙ СТАЦИОНАРНОЙ ЦЕПИ: Методические указания к курсовой работе по дисциплине €œОсновы теории радиотехнических сигналов и цепей€ Т. АНАЛИЗ ЛИНЕЙНОЙ СТАЦИОНАРНОЙ ЦЕПИ Составитель Лысенко Тамара Михайловна Редактор Н. При этом особое внимание уделяется сущности процессов в цепи и фундаментальным понятиям важным для изучения любых линейных систем.
39333. АНАЛИЗ ЛИНЕЙНОЙ СТАЦИОНАРНОЙ ЦЕПИ 1.85 MB
  Найти операторный коэффициент передачи цепи по напряжению и записать его в виде отношения двух полиномов Составить таблицу значений коэффициентов полиномов для двух значений
39334. Основы теории цепей 271.88 KB
  Найти операторный коэффициент передачи цепи по напряжению и записать его в виде отношения двух полиномовСоставить таблицу значений коэффициентов полиномов для двух значений 1 и 2. Записать комплексную частотную характеристику цепи K j и соответствующие ей амплитудночастотную K и фазочастотную характеристики. По найденным аналитическим выражениям рассчитать и построить графики частотных характеристик цепи для двух значений коэффициента усиления 1 и 2 . Определить переходную ht и импульсную gt характеристики цепи.
39335. Устройство сбора данных 12.87 MB
  Москва 2006 Введение Информационноизмерительные и управляющие цифровые микропроцессорные системы к которым относится проектируемое устройство сбора данных УСД предназначены для измерения сбора обработки хранения и отображения информации с реальных объектов. Такие системы используются практически во всех отраслях народного хозяйства для контроля и управления...