АЛГОРИТМЫ. ОСНОВНЫЕ ВОЗМОЖНОСТИ ЯЗЫКА ПРОГРАММИРОВАНИЯ ПАСКАЛЬ

ЛАБОРАТОРНАЯ РАБОТА №3.

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

Краткие теоритические сведения.

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

1.2 Свойства алгоритма:

· Понятность;

· Конечность;

· Определенность;

· Результативность;

· Массовость;

· Эффективность.

1.3Основные виды функциональных блоков

Название символа Обозначение и пример заполнения Пояснение
Процесс
х=(а-b)/sin(1)

Вычислительное действие или последовательность действий
Решение да нет
       
   

 

Проверка условий
Модификация
       
 
   
 

 

 

Начало цикла
Предопределенный процесс Вычисление по программе, стандартной подпрограмме
Ввод-вывод     Ввод-вывод в общем виде  
Пуск-останов Начало, конец алгоритма, вход и выход в подпрограмму
Документ     Вывод результатов на печать

Соотношение сторон функциональных блоков должно быть как b=2*a, где a=10,15,20.

 

1.4 Язык программирования - это формальная знаковая система, предназначенная для описания алгоритмов в форме, которая удобна для исполнителя.

Синтаксис языка программирования – набор правил построения конструкции языка.

Семантика языка программирования – совокупность значений (смысл) всех конструкций языка.

1.5Языки программирования :

1. Машинно - ориентированные (языки низкою уровня). В них типы и структуры данных, операции над данными и порядок выполнения операторов определяются организацией и функционированием ЭВМ.

Характеризует:

a) высокое качество создаваемых программ (компактность и скорость выполнения);

b) возможность использования конкретных аппаратных ресурсов;

c) предсказуемость объектного кода и заказов памяти;

d) для составления эффективных программ необходимо

e) знать систему команд и особенности функционирования данной ЭВМ;

f) трудоемкость процесса составления программ плохо защищенного от появления ошибок;

g) низкая скорость программирования;

h) невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов.

 

2. Машинно - независимые языки (языки высокого уровня). Они базируются на концепции абстрактных типов данных и абстрактных операциях, что обеспечивает независимость языка от организации и функционирования ЭВМ и даёт возможность разработчикам программного обеспечения объявлять новые типы данных в разрабатываемых программах.

Подразделяются на:

a) проблемено-ориентрированные языки;

b) универсальные языки;

c) диалоговые языки;

d) непроцедурные языки.

1.6 Транслятор – программа – переводчик, которая преобразует программу написанную на одном из языков высокого уровня, программу состоящую из машинных команд. Трансляторы реализуются в виде компиляторов или интерпретаторов, которые различаются по принципу работы.

Компилятор – читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется.

Интерпретатор – переводит и выполняет программу построчно.

1.7 Схема процесса разработки программ в Турбо Паскаль.

 

 


Компилятор
Сообщения об ошибках
Запуск компиляции

         
     
 
 

 

 


Прогон программы

Сообщения об ошибках
Файл исходных данных
Исполняемый файл типа .exe

 

 
 
Файл результатов

 


1.8Структура программы на языке Паскаль имеет следующий вид:

Program Test;

{раздел описаний}

begin

{раздел исполняемых функций}

end.

1. Зарезервированное слово Program означает, что данная программная единица является программой (еще бывают модули, процедуры, функции). Test это название программы и может быть любым.

2. В разделе описаний должны содержаться описания всех идентификаторов. используемых и разделе исполняемых операторов, объявляются идентификаторы типов, объектов, констант, переменных, а также метки, процедуры и функции.

3. Описание типов и объектов должно начинаться зарезервированным словом type, описание констант - const, переменным – var.

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

1. Целые числа записываются со знаком или без него и могут иметь значение от -2147483648 до +2147483647.

2. Вещественные числа записываются со знаком или без него с использованием десятичной точки или экспоненциальной части.

3. Шестнадцатеричное число состоит из шестнадцатеричных цифр, которым предшествует знак $. Диапазон от $00000000 до $FFFFFFFF.

4. Логическая константа - это либо слово false (ложь), либо слово true (истина).

5. Символьная константа - любой символ заключенный в апострофы (‘а’).

6. Строковом константа - любая последовательность символом заключенная в апострофы.(‘Добрый день’).

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

Операции языка Паскаль:

· унарные операции: not @;

· мультипликативные операции: * / div mod and shl shr;

· аддитивные операции: + - or xоr;

· операции отношения: = < > < > <=> = in.

В Паскале определены следующие логические операции:

· not - логическое НЕ;

· and - логическое И;

· or - логическое ИЛИ;

· хоr - исключающее ИЛИ.

 

1.10 Типы данных.

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

Существует несколько основных типов данных:

1. простые:

a) вещественные (real);

b) порядковые;

c) целые (integer);

d) логические;

e) символьные;

f) перечисления;

g) тип-диапозон;

2. объекты;

3. процедурные;

4. строки;

5. указатели;

6. структурированные:

a) массивы;

b) множества;

c) записи;

d) файлы;

 

1.11 Оператор присваивания – один из наиболее часто используемых операторов обработки данных. Выглядит следующим образом переменная:=выражение. И переменная и выражение должны быть одного и того же типа.

Составной оператор – это группа операторов ограниченная зарезервированным словами begin (в начале группы) и end (в конце). В данном случае эти зарезервированные слова называются операторными скобками.

 

1.12 Для вывода информации на экран используется процедура Write и модификация Writeln. Например:

Writeln (‘сообщение’,имя переменной 1,’сообщение 2’,выражение 1);

WriteLn отличается от Write тем, что после вывода на экран всех своих аргументов переводит курсор на следующую строку, и следующий вывод на экран будет осуществлён с начала следующей строки.

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

Примеры:

WriteLn(’Дискриминант квадратного уравнения равен’,b*b-4*a*c);

Write(‘x1=’,x1,’x2=’,x2);

Допускается использование WriteLn без аргументов. Тогда вывода на экран не происходит, а курсор переводится на следующую строку.

Для ввода информации в программу с клавиатуры используется процедура Read либо его модификация Readln. Например:

Read(переменная);

Отличие этих 2-х процедур проявляются при работе с файлами, при вводе с клавиатуры всегда используется Readln.

Пример:

Readln (a, b, c, d);

1.13 Формат числа – определяет в каком виде будет выводится число на экран. Форма записи следующая:

(а:7:3) где, 7-это количество позиций отводимое под число, 3 –количество позиций для дробной части. Одну позицию всегда занимает запятая.

Пример:

Writeln(‘i= ’,i:4:2);

Это свидетельствуем о том, что какое бы число я не ввела, например, 809,123445, на экран будет выводиться число 809, т.к под число отведено 4 позиции.

Лабораторные задания.

2.1Задание 1. Укажите, какие из перечисленных идентификаторов содержат ошибки и поясните их.

 

1. а – ошибок нет.

2. 1Program –ошибок нет.

3. ALPHA- ошибок нет.

4. block#1 – ошибка есть, т.к содержит спец символ.

5. MyProgramIsBestProgram –ошибок нет.

6. Date_27_step_39 - ошибок нет.

7. My Prog – ошибка есть, т.к содержит пробел.

8. beta – ошибок нет.

9. mod – ошибка есть, т.к является зарезервированным словом.

 

2.2 Задание 2. Укажите, какие из перечисленных операторов ввода-вывода содержат ошибки и поясните их.

1. read m,x,n – ошибка есть, т.к неверный формат оператора;

2. read (5,6) t,h,m – ошибка есть, т.к неверный формат оператора;

3. read (a:3:5) – ошибка есть, т.к количество позиций, отведенных под дробную часть, превышает общее число позиций отведенных под все число.

4. read(6,5) b,c – ошибка есть, т.к неверный формат оператора;

5. write(6,5) b,c - ошибка есть, т.к неверный формат оператора;

6. write(6,25) – ошибок нет;

7. write(b:7:2) – ошибок нет;

8. write 45, f8, 4 – ошибка есть, т.к отсутствуют скобки.

 

2.3 Задание 3 – при помощи программы на языке Паскаль, организовать вывод значений функции Y=( ) в следующем виде

X| -3| -2| -1| 0| 1| 2| 3|

Y| | | | | | | |

Решение:

Program bugaga;

var a:integer;

begin

writeln('X','-3','-2','-1',' 0',' 1',' 2',' 3');

writeln('Y ',Sqr(-3),' ',sqr(-2),' ',sqr(-1),' ',sqr(0),' ',sqr(1),' ',sqr(2),' ',sqr(3));

readln;

end.

Результатом данной программы является вывод на экран сообщения

X| -3| -2| -1| 0| 1| 2| 3|

Y| 9| 4 | 1| 0 | 1 | 4| 9|

 

Задание 4 – Написать диалоговую программу на языке Паскаль, которая рассчитает значение функции Y=a* +b. Диалог должен иметь следующий вид

Начало расчета функции Y=a* +b

Введите значение а-_

Введите значение b-_

Введите значение х-_

Для значений а=… b=… x=…

Расчет закончен.

Решение:

Program bugaga_1;

Var a,b,x,y:integer;

begin

Writeln('Calculation begins Y=a*x^2+b');

Write('Input a=');

Readln(a);

Write('Input b=');

readln(b);

Write('Input x=');

Readln(x);

Writeln('a=',a,' ','b=',b,' ','x=',x,' ','Value y=',a*x*x+b);

Readln;

end.

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

 

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