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

WinRAR ZIP archi / 2011_Лабораторные по инф_паскаль_Ч1

.pdf
Скачиваний:
43
Добавлен:
14.02.2015
Размер:
330.12 Кб
Скачать

Присваивание значений переменным

Оператор присваивания имеет вид: переменная := выражение

В качестве переменной может быть простая переменная, переменная с индексами или компонент переменной типа запись. Символ := называется значком присваивания.

Оператор присваивания заменяет текущее значение переменной значением выражения.

Например:

i := i + 1; // увеличивает значение переменной i на 1

В PascalABC.NET определены также операторы присваивания со значками +=, -=, *=, /=, которые трактуются как значки операций. Данные операции не возвращают значений, но изменяют переменную - левый операнд. Они используются в операторах присваивания и имеют следующий смысл: a #= b означает a := a # b, где # - знак операции +, -, *, /.

Например:

a += 3; // увеличить a на 3

b *= 2; // увеличить b в 2 раза

Операция /= неприменима, если левый операнд - целый.

11

write(a, ' end.
begin cls;
a := 2.9; k := 1;
a := k;

Выражение должно быть совместимо по присваиванию с переменной. Например:

program N_13_0;

var

a: real;

k: integer;

{ Ошибки не происходит, произошло приведение типов }

k := a + 1;{Ошибка!! Попытка присвоить переменнойтипа integer значение выражения ти-

па real} ', k);

Выражения

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

Примеры

a+b; a2-a3; -x/y; (-x);

sqrt(x)*(x+y).

Вычисление арифметических выражений производится по обычным алгебраическим правилам. Символы звездочка (*), дробная черта (/), плюс (+) и минус (-) представляют операции, умножения, деления, сложения и вычитания соответственно. Если скобки не меняют порядка вычислений, то операции умножения выполняются первыми, затем выполняются операции деления, и, наконец, операции сложения и вычитания. При отсутствии скобок операции одного старшинства выполняются слева направо.

A-B-C интерпретируются как (А-В) - С; A/B/C как (A/B)/C.

12

Ввод и вывод

Для вывода в окно вывода используются стандартные процедуры write и writeln. Они могут вызываться как без параметров, так и со списком параметров. Параметры в списке перечисляются через запятую. Процедура writeln после вывода своих параметров осуществляет переход на следующую строку.

В процедурах вывода write и writeln после каждого выводимого значения типа может указываться формат вывода, представляющий собой двоеточие, после которого следует целое число или выражение. Это число или выражение задает ширину поля вывода, то есть количество позиций, отводимых под выводимое значение. Если длина выводимого значения меньше ширины поля вывода, то выводимый текст дополняется слева пробелами до нужной ширины; в результате выводимое значение выравнивается по правому краю. Если длина выводимого значения больше ширины поля вывода, то формат вывода игнорируется.

Например, если a, b - целые переменные, то при выполнении операторов:

a:=-2437; b:=13555; writeln(a:1,' Привет!':1); writeln(b:15);

в окно вывода будет выведен следующий текст:

-2437 Привет! 13555

Для вещественных значений можно также использовать формат :m:n, где m и n - целые значения. Значение m задает ширину поля вывода, а значение n количество знаков после десятичной точки.

Например:

writeln(-14.859:10:3); // ___-14.859 writeln(-14.859:10:5); // _-14.85900 writeln(-14.859:10:2); // ____-14.86 writeln(-14.859:10:0); // _______-15 writeln(-14.859:10:7); // -14.8590000 (здесь символом _ изображены пробелы).

13

Комментарии в программах

Программы на языке высокого уровня типа PascalABC.NET предназначаются не только для выполнения компьютером, но и для чтения, hредактирования пользователями. Поэтому программы должны быть понятны не только интерпретатору компьютера, но и людям. Чтобы разъяснить смысл программы, ее снабжают комментариями. Комментарий – это любой текст, заключенный в фигурные скобки. Также допустимо отделять текст комментария от текста программы на одной строке двумя косыми чертами (действует только в пределах одной строки). Текст комментария никак не влияет на выполнение программы, он важен для человека, читающего программу.

Рассмотрим теперь на простейшем примере составление и выполнение на PascalABC.NET чисто вычислительной задачи.

Составим программу для вычисления значения выражения и вывода на экран результата вычисления.

f=x+2x+6,7 при x=3.

program N_13_1;

{вычисление значения выражения и вывод его на экран}

var

//описание переменных

x, f: real;

begin

x := 3; {присваивание значения переменной}

f := x + 2 * x + 6.7;{вычисление значения выражения и

присваивание его переменной

f}

writeln('f=', f:4:1);{вывод на экран значения f} end.

Задание 1: составить 2 программы для решения приведенных примеров. Ввести программы в ПК и выполнить их.

Вычислить:

1.f=(x+1)2+3(x+1) при x=3

2.f=6x2+3(x2+1)2 при x=3

Ввод данных с клавиатуры

Для ввода с клавиатуры используются стандартные процедуры read и readln. Они могут вызываться как без параметров, так и со списком параметров. Параметры в списке перечисляются через запятую и долж-

14

ны быть переменными простого типа, либо типа string. Процедура readln после ввода пропускает данные до конца текущей строки ввода.

Процедуры write, writeln, read, readln - единственные, для которых можно указывать список параметров произвольной длины.

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

write('Задайте начальное значение Х='); readln(X);

Контрольные вопросы

1.Каковы назначение и возможности системы PascalABC.NET?

2.Что такое переменная в PascalABC.NET?

3.Правила образования имен в PascalABC.NET?

4.Как записываются числа в PascalABC.NET?

5.Какие элементы могут использоваться в списке вывода?

6.Что такое форматы выводв и как их использовать?

Задачи

1.Присвойте переменной А значение 0,0023, а переменной В значение 17567. Выведите на дисплей произведение этих переменных.

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

ЧИСЛО?5 5 В КУБЕ РАВНО 125

Проведите тестирование программы, используя числа 5 и -7.

3. Предложите пользователю ввести три числа и запомните их в пере-

менных А, В и С. Вычислите и выведите на экран значение выражения

2 - 4AC).

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

Введите два числа: 13.2 7.5 Сумма равна 20.7 Разность равна 5.7

15

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

Основные этапы решения задач на ПК. Схемы алгоритмов. 2 часа.

Цель работы: получение практических навыков разработки схем алгоритмов

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

Технические средства и программное обеспечение: персональный компьютер с операционной системой Windows™, система Pascal ABC.NET

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

1.Формализация задачи.

2.Создание математической модели.

3.Детальное описание алгоритма (текстовое, псевдокод, блоксхема).

4.Реализация на языке программирования.

5.Отладка программы.

6.Тестирование программы.

7.Анализ результатов работы.

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

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

16

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

Рассмотрим следующие способы описания алгоритма: словесное описание, псевдокод, блок-схема, программа.

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

Псевдокод — компактный (зачастую неформальный) язык описания алгоритмов, использующий ключевые слова языков программирования, но опускающий несущественные подробности и специфический синтаксис. Псевдокод обычно опускает детали, несущественные для понимания алгоритма человеком. Такими несущественными деталями могут быть описания переменных, системно-зависимый код и подпрограммы. Главная цель использования псевдокода — обеспечить понимание алгоритма человеком, сделать описание более воспринимаемым, чем исходный код на языке программирования. Псевдокод широко используется в учебниках и научно-технических публикациях, а также на начальных стадиях разработки компьютерных программ.

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

17

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

Рисунок 14.1 - Металлический силос для хранения зерна Формализация задачи. Сводим задачу к определению массы зер-

на через объем V цилиндра силоса, умноженный на насыпную массу и массы М листа металла, из которого изготовлен силос.

Создание математической модели.

Представим себе силос в виде цилиндрической емкости из металлического листа заданной толщины.

Объем цилиндрического силоса (м3) рассчитывается по формуле

V = π·R2·H,

где Н - высота силоса, м; R – радиус силоса, м. Площадь боковой поверхности силоса (м2) равна

S = 2·π·R·H.

Масса зерна, (т) засыпанная в силос

MЗ = V·N,

где N – насыпная плотность зерна (натура) – 0,75 т/м3;

Масса (т) стального листа, из которого изготовлен силос

18

МЛ = S·L·P,

где L - толщина стенки силоса ( 5 мм); P – плотность стали -7,8 т/м3 .

Теперь можем сделать детальное описание алгоритма.

Вот как примерно может выглядеть словесное описание алгоритма: Начало Присвоить значения переменным, предназначенным для диаметра,

высоты и толщины стенки силоса.

Вычислить массу зерна в силосе и массу цилиндрическоно силоса. Вывести на экран вычисленные значения.

Конец программы.

На рисунке 14.2 приведена схема алгоритма, соответствующая приведенному словесному описанию. Наиболее употребительные графические символы для схем алгоритмов приведены в таблице 14.1.

Начало

'Введите диаметр силоса в метрах D: '

d

'Введите высоту силоса в метрах H: '

h

'Введите толщину стенки силоса в миллиметрах t: '

t

r := d / 2

mg := pi * r * r * h * pg

ms := 2 * pi * r * h * ps*(t/1000)

'Масса зерна в силосе - ', mg 'Масса силоса - ', ms ms/mg*100

Конец

Рисунок 14.2 – Схема алгоритма вычисления массы зерна и силоса

19

program N_14_1;

var

d, r, h, t, mg, ms: real;

const

pi = 3.142; pg = 0.750; ps = 7.8;

begin

write('Введите диаметр силоса в метрах D: '); read(d);

write('Введите высоту силоса в метрах H: '); read(h);

write('Введите толщину стенки силоса в миллиметрах t: '); read(t);

r := d / 2;

mg := pi * r * r * h * pg;

ms := 2 * pi * r * h * ps * (t / 1000); writeln('Масса зерна в силосе - ', mg); writeln('Масса силоса - ', ms);

end.

20