Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Основные конструкции языка
Паскаль - язык структурного программирования. Это означает, что программист должен выражать свои мысли очень дисциплинированно, с использованием малого числа четко оговоренных конструкций, используя как чередование их, так и вложения друг в друга. Не рекомендуется (хотя и возможно) использовать оператор перехода goto. Реализация последовательности действий (т.е. структуры следования) выполняется с помощью составного оператора: begin <последовательность операторов> end Раздел операторов в программе всегда является составным оператором. Служебные слова begin и end часто называют операторными скобками. Для реализации развилки в Паскале предусмотрены два оператора: условный оператор и оператор варианта (выбора). Они предназначены для выделенияизсоставляющих их операторов одного, который и выполняется. Структура и действие условного оператора таковы: If <логическое выраженне> then <оператор 1> else <оператор 2> Условный оператор может быть неполным,т.е. не содержать часть «else <оператор 2>». В этом случае, если значение логического выражения равно false, условный оператор не вызывает никаких действий. Пример: составим программу, которая определяет длину общей части двух отрезков числовой оси, заданных координатами своих концов соответственно а, b и с, d (а < b, с < d). Если отрезки имеют общую часть, то левая координата общей части отрезков m равнамаксимальному из чисел а и с, а правая n - минимальному из чисел b и d. Программа 3
program cross; var a,b,c,d,m,n,l:real; begin writeln('введите координаты концов отрезков'); read(a,b,с,d); writeln; if a<c then m:=c else m:=a; if b<d then n:=b else n:=d; if m<n then l:=n-m else 1:=0; writeln("длина общей части отрезков=',1:6:2) end. Оператор варианта имеет следующую форму: case <выражение> of <список констант 1>: <оператор 1>; <список констант 2>: <оператор 2>; ………………………… <список констант N>: <оператор N> end.
Выражение, стоящее между служебными словами case и of, должно иметь значение ординального типа. Любой список констант может состоять из одной константы. Оператор варианта вычисляет значение выражения, записанного после case. Если его значение совпадает с одной из констант в некотором списке, то выполняется оператор, стоящий после этого списка. Если значение выражения не совпало ни с одной константой во всех вариантах, то оператор варианта ничего не делает. В качестве примера приведем программу, которая в зависимости от номера месяца выдает сообщение о времени года. Программа 4 program seasons; var k:integers begin writeln('введите номер месяца'); readin(k); case k of 1,2,12:writeln('зима'); 3, 4,5:writeln('весна'); 6, 7,8:writeln('лето'); 9,10,11:writeln('осень') end end.
Для реализации циклов в Паскале имеются три оператора Если число повторений известно заранее, то удобно воспользоваться оператором цикла с параметром. В других случаях следует использовать операторы цикла с предусловием (цикл «пока») или с постусловием (цикл «до»). Цикл с предусловием является наиболее мощным в Паскале. Другие операторы цикла можно выразить через него. Его форма такова:
while - <логическое выражение> do <оператор>
Действие: вычисляется значение логического выражения. Если оно равно true, то выполняется оператор, после чего снова вычисляется значение логического выражения, в противном случае действие заканчивается. В качестве примера использования такого цикла решим следующую задачу. На склад привозят однородный груз на машинах различной грузоподъемности. На компьютер, управляющий работой склада, поступает информация о весе груза очередной машины. Составить программу подсчета количества машин,прибывшихна склад до его заполнения, если вместимость склада не более 100 тонн. Введем обозначения: sum - сумма веса груза, хранящегося в этот момент на складе; num - число разгруженных машин; w - масса груза очередной машины. Вначале величины sum и num равны нулю. Цикл разгрузки продолжается, пока выполняется неравенство sum < 100.
Программа 5 program store; var sum,w:real; num:integer; begin num:=0;sum:=0; while sum<100do begin writeln('введите вес груза машины'); readln(w); sum:=sum+w; if sum<=100 then num:=num+l else writeln('груз уже не поместится') end; writeln('число разгруженных машин =',num;3) end.
Оператор цикла с постусловием имеет форму: repeat <последовательность операторов> until <логическое выражение> Действие: выполняется последовательность операторов. Далее вычисляется значение логического выражения. Если оно равно true, то действие заканчивается, в противном случае снова выполняется последовательность операторов и т.д. Решим предыдущую задачу, применяя цикл с постусловием. Цикл разгрузки заканчивается, если выполняется условие: sum > 100. Программа 6 program store2; var sum,w:real; man:integer; begin num: =0; sum: =0; repeat writeln('введите вес груза машины'); readln(w); sum:=sum+w; if sum<=100 then num:=num+l. else writeln('груз ухе не поместится') until sum>=100; writeln('количество разгруженных машин =',num:3) end. Оператор цикла с параметром предусматривает повторное выполнение некоторого оператора с одновременным изменением по правилу арифметической прогрессии значения управляющей переменной (параметра) этого цикла. Оператор цикла с параметром имеет две формы. Форма1: for <параметр>:= <выражение1> to <выражение 2> do <оператор> Параметр, выражение 1, выражение 2 должны быть одного ординального типа; Параметр в этом цикле возрастает. Действие эквивалентно действию следующего составного оператора: begin <параметр>:=<выражение 1>; while <параметр> <= <выражение 2> do begin <оператор>; <параметр>:=suсс(<параметр>) end end. Если в этом описании отношение <= заменить на >=, а функцию succ на pred, то параметр в цикле будет убывать, в этом случае цикл с параметром принимает форму 2. Форма 2: for <параметр>:=<выражение 1> downto <выражение 2> do <оператор> Пример: составим программу, по которой будет напечатана таблица перевода километров в мили (1 миля = 1,603 км). Параметром цикла можно считать целую величину k - количество километров. Пусть эта величина изменяется от 1 до 10 (с шагом 1, разумеется). Программа 7 program mili; const a=1.603;b='км'; с='мили'; var k:integer; m:real; begin writeln(b:5,c:7); writeln; for k:=l to 10 do begin m:=k/a; writeln(k:5,m:6:3) end end. Запишем в этой программе цикл с параметром в форме 2: for k:=10 downto 1 do begin m:=k/a; writeln(k:5,m:6:3) end.
Тогда значения k в таблице будут убывать от 10 до 1 с шагом 1. Контрольные вопросы
1. Как в Паскале реализуется развилка? 2. В чем различие в назначениях условногооператора и оператора варианта? Как реализуется оператор варианта? 3. Какого типа циклы реализуются в языке Паскаль? каким образом? Date: 2015-11-13; view: 377; Нарушение авторских прав |