Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

LABORATORNAYa_RABOTA3

.docx
Скачиваний:
33
Добавлен:
31.05.2015
Размер:
76.4 Кб
Скачать

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

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

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

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

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

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

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

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

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

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

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

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

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

Название символа

Обозначение и пример заполнения

Пояснение

Процесс

х=(а-b)/sin(1)

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

Решение

да нет

a<b

Проверка условий

Модификация

i=1,50,2

Начало цикла

Предопределенный процесс

Расчет параметров

Вычисление по программе, стандартной подпрограмме

Ввод-вывод

Ввод a,b,c

Ввод-вывод в общем виде

Пуск-останов

Начало

Начало, конец алгоритма, вход и выход в подпрограмму

Документ

Печать a,c

Вывод результатов на печать

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  2. универсальные языки;

  3. диалоговые языки;

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

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

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

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

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

Текстовый редактор Turbo Pascal

Файл типа .pas

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

Запуск компиляции

Сообщения об ошибках

Компилятор

Компоновщик

Исполняемый файл типа .exe

Отладчик

Библиотека стандартных программ

Сообщения об ошибках

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

Сообщения об ошибках

Файл исходных данных

Исполняемый файл типа .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. простые:

  1. вещественные (real);

  2. порядковые;

  3. целые (integer);

  4. логические;

  5. символьные;

  6. перечисления;

  7. тип-диапозон;

  1. объекты;

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

  3. строки;

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

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

  1. массивы;

  2. множества;

  3. записи;

  4. файлы;

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.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]