Операции, которые можно с ней выполнять

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

Целочисленные типы (целые величины)
Диапазон значений Размер памяти Способ представления Название
0..255 1 байт Без учета знака Byte
0..65535 2 байта Без учета знака Word
-128..127 1 байт С учетом знака Shortint
-32768..32767 2 байта С учетом знака Integer
-231..231-1 4 байта С учетом знака Longint
Вещественные типы (целые и дробные величины)
- 6 байтов - Real
           

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

Ø Отдельная команда языка называется оператором.

Исполнительная часть заключается в операторные скобки: Begin и End.

! После каждого оператора или указания типа в разделе Var ставится “;”.

Вопросы и задания:

¨ Какова структура программы на языке Паскаль?

¨ Каково предназначение описательной части?

¨ Для чего нужен раздел Var?

¨ Что такое переменная?

¨ Как происходит описание переменной?

¨ Что такое идентификатор? Каковы правила написания идентификаторов?

¨ Что подразумевает понятие типа переменной.

¨ Из чего состоит исполнительная часть программы?

¨ Как называется отдельная команда на языке программирования?

¨ Как отделить один оператор от другого?

¨ Что такое операторные скобки?

II. 4. Этапы решения задачи на компьютере

Большинство программ создаются для решения какой-либо задачи. Процесс решения задачи на компьютере – это совместная деятельность человека и ЭВМ. Этот процесс следует разделить на этапы. Рассмотрим ход процесса на решении задачи о нахождении суммы двух целых чисел.

Первый этап – работа с условием задачи. Читая задачу, необходимо ответить на три вопроса:

1. Что дано в задаче? – исходные данные (два числа);

2. Что требуется найти? – ожидаемый результат (сумма чисел);

3. Как это сделать? – как бы вы решали эту задачу без помощи компьютера (сложить числа).

Второй этап – построение модели задачи. Модель может быть одного из двух видов: математической (для задач, связанных с вычислениями) или информационной. В нашем случае – математическая модель. Для ее построения необходимо ввести обозначения для данных (А, В) и результата (С) и подобрать необходимые формулы для вычисления (А+В).

Третий этап – алгоритмизация задачи. Строим алгоритм решения задачи в графической (блок-схема) или в текстовой форме.

Например:

1. ввести данные;

2. вычислить по формуле сумму;

3. вывести значение суммы на экран.

При составлении и записи алгоритма необходимо, чтобы он обладал рядом свойств:

1. однозначность - чтобы исполнитель мог правильно истолковать (умел сложить два числа по формуле);

2. конечность и результативность - чтобы каждое из действий и сам алгоритм завершались получением результата (чтобы сумма существовала);

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

4. правильность – способность получить правильный результат.

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

1. ввести данные для обработки;

2. указать, как их обработать;

3. задать способ вывода конечных результатов.

Поэтому, мы должны научиться:

1. как ввести данные в память (ввод);

2. как указать правильные команды для обработки данных (операторы);

3. как передать обратно данные из программы на экран (вывод).

Пятый этап – ввод программы и исходных данных в компьютер. Печать программы в текстовом редакторе системы программирования.

Шестой этап – тестирование. При запуске на выполнение к работе приступает компилятор системы программирования. Если в написании программы допущены ошибки, то он сообщит об этом.

Седьмой этап – отладка программы. Проверяем работу программы на контрольных примерах. Программа не верна, если Операции, которые можно с ней выполнять - student2.ru .

Восьмой этап – исполнение отлаженной программы и анализ результата. Исходные данные задает постановщик задачи. Пользователь вводит их и смотрит на результат. Если результат не соответствует жизненным реалиям, то следует пересмотреть процесс решения задачи. Возможно, придется вернуться к первым этапам процесса.

Вопросы и задания:

¨ Перечислите основные этапы решения задач на ЭВМ. Поясните, какие действия выполняет разработчик программы на каждом этапе.

¨ Что такое алгоритм, и каким свойствам он должен удовлетворять? Приведите пример словесного описания алгоритма и покажите, что он обладает указанными свойствами.

II. 5. Процедуры ввода и вывода данных

Решение любой задачи сводится к тому, чтобы из исходных данных получить искомые. Поэтому, прежде чем приступить к написанию программы, необходимо вычленить исходные данные, четко представить себе результат и спланировать путь его получения. Так как работу по получению результата мы поручаем компьютеру, то ему необходимо передать исходные данные. В памяти компьютера все данные сохраняются в двоичной форме в определенных ячейках размером в один или несколько байтов. Чтобы компьютер не путал данные, ячейкам надо присвоить различные имена-идентификаторы.

Ø Именованная ячейка памяти компьютера называется переменной.

Все переменные необходимо перечислить в разделе описания переменных (Var). О размерах ячеек будут свидетельствовать типы данных, о которых речь шла выше. Чтобы переменные получили свои значения необходимо ввести эти значения в память компьютера.

Ø Для ввода данных в память компьютера используется процедура ввода.

Это команда компьютеру – «читать» данные с клавиатуры и сохранять их в своей памяти под именами соответствующих переменных.

Формат: read(«список переменных»);

Механизм работы процедуры таков:

1. Ввожу одно данное;

2. Нажимаю Enter;

3. Данное помещается в ту переменную, которая была в списке первой;

4. Ввожу следующее данное;

5. Нажимаю Enter;

6. Данное помещается в следующую по списку переменную;

7. И т. д.

! Запомните: при вводе данных необходимо учитывать тип, предназначенных для них переменных.

Например:

Var a,b:integer; с,e:real;

Begin

Read(a,b,c,е);

End.

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

ü Данные можно ввести и через клавишу-пробел, но после набора всех данных необходимо нажать Enter – только тогда они будут занесены в переменные.

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

Ø Для вывода на экран используется процедура вывода

Формат: write(«список вывода»);

Или

writeln(«список вывода»);

Отличие в том, что после выполнения процедуры writeln курсор переходит в новую строку.

Вывести на экран можно:

1. текст, заключив его в апострофы;

2. числа;

3. значения переменных;

4. значения небольших арифметических выражений.

! Запомните: каждый отдельный элемент в списке вывода отделяется запятой.

Например:

Var a,b:integer; с,e:byte;

Begin

Writeln(‘введите два целых и два вещественных числа’);

Read(a,b,c,е);

Writeln(a,’и’,b,‘-целые числа’);

Writeln(5.8,’и’,-5.3,‘-вещественные числа’);

Write(c+e,’сумма вещественных чисел’);

End.

!Запомните: Чтобы написать программу нужно:

1. Внимательно прочитать задачу;

2. Определить исходные данные и дать им идентификаторы;

3. Определиться с идентификаторами результатов;

4. Определить типы переменных, в которых будут храниться данные и результаты;

5. Оформить описательную часть;

6. Оформить исполнительную часть по следующей схеме:

Begin

<ввод данных>;

<обработка данных>;

<вывод результатов>;

End.

Возможно, что какой-то из пунктов схемы будет отсутствовать.

7. Дополнить описательную часть, если появились идентификаторы промежуточных результатов.

Задача: Получить на экране следующее:

  а    
а а    
  а    
  а    
а а а О к т я б р я

а – цифра от 0 до 9.

Итак, из текста задачи следует:

Дано: а - переменная целого типа. Например: integer.

Решение:

В результате надо вывести 5 строк, для этого следует 5 раз применить процедуру writeln. Чтобы соблюсти расстояние между цифрами, будем разделять их пробелами. Пробел – это символ текста, следовательно, должен быть заключен в апострофы, равно как и текст “Октября”.

Var a:integer;

Begin

Writeln(‘Введите цифру от 0 до 9‘);

Readln(a);

Writeln(‘ ‘,a);

Writeln(a,a);

Writeln(‘ ‘,a);

Writeln(‘ ‘,a);

Writeln(a,a,a,’Октября’);

End.

Задача: Найти сумму и произведение двух целых чисел.

Дано: a,b-целые числа.

Найти: a+b , a*b-целые результаты.

Var a,b,s,p:integer;

Begin

Writeln(‘Введите два целых числа’);

Readln(a,b);

Writeln(a+b,’-сумма чисел’);

Write(a*b,’произведение чисел’);

End.

Вопросы и задания:

¨ Для чего нужна процедура ввода? Каков механизм ее работы?

¨ Что необходимо помнить при работе с процедурой ввода?

¨ Для чего нужна процедура?

¨ Что необходимо помнить при работе с процедурой вывода?

¨ О чем свидетельствует окончание ‘-ln’ после имени процедуры вывода?

¨ Каков план разработки программы к решению задачи?

· Написать программу, выводящую на экран картинку:

А А А А
А Х Х А
А Х Х А
А А А А

,где 0 – неизменная цифра, Х – переменная целого типа, а А – символ латинского алфавита (комментарий).

¨ Даны целые числа a, b, c. Найти их произведение, сумму и среднее арифметическое.

II. 6. Оператор присваивания

Ø Переменная получает свое значение не только при работе процедуры ввода, но и при выполнении оператора присваивания.

Формат:

<переменная>:=<значение>;

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

! Запомните:

ü если переменной не было присвоено значение, то она считается равной нулю;

ü тип присваиваемого значения должен быть совместим с типом переменной (так как мы работаем с числовыми переменными, то тип присваиваемого значения не должен занимать в памяти больше места, чем переменная, стоящая в левой части оператора присваивания).

Таблица совместимости типов

Тип переменной Тип присваиваемого значения
real Real, longint, integer, word, shortint, byte
longint Longint, integer, word, shortint, byte
integer integer, shortint, byte
word word, byte
shortint shortint
byte byte

Рассмотрим примеры решения задач с использованием оператора присваивания:

Задача: Даны целые числа a и b. Найти их удвоенную сумму.

Дано: a и b-целые числа(integer)

Найти: u-удвоенную сумму(сумма целых чисел s- целое число, удвоенное целое – целое число integer)

Var a,b,s,u:integer;

Begin

Writeln(’Введите два целых числа’);

Read(a,b);

S:=a+b;

U:=2*s;

Write(u,’-удвоенная сумма чисел’);

End.

Вопросы и задания:

¨ При работе, каких операторов происходит присвоение значения переменной?

¨ Каков формат оператора присваивания?

¨ Каков должен быть тип присваиваемого значения? Расскажите про таблицу совместимости типов.

¨ Даны стороны прямоугольника. Найти его периметр и площадь.

· Дана длина стороны правильного n-угольника. Найти его периметр.

§ Дан круг радиуса R. Найти длину окружности.

§ Найти площадь кольца, если известны радиусы его внешней и внутренней окружностей.

II. 7. Форматированный вывод вещественных чисел

Задача: Даны целые числа a и b. Найти половину их среднего арифметического.

Дано: a и b-целые числа(integer)

Найти: pl-половину среднего арифметического

Решение: Среднее арифметическое – это сумма чисел деленная на их количество. Сумма целых чисел - целое число(ineger). Если сумму разделить на количество, то в результате может получиться нецелое число (real). Половина вещественного числа – число вещественное(real).

Var a,b,s:integer; ar,pl:real;

Begin

Writeln(’Введите два целых числа’);

Readln(a,b);

S:=a+b;

ar:=s/2;

pl:=ar/2;

Writeln(pl,’-половина среднего арифметического чисел’);

End.

Если запустить программу на выполнение, результат будет не нагляден.

По умолчанию, вещественное число выводится на экран в формате: <мантисса>E<порядок>.

На экран выводится 18 символов:

положительные числа отрицательные числа
__#.##########E@## _-#,##########E@##

, где # - означает цифру, а @ - знак (+ или -).

ü До точки должна быть одна значащая цифра, большая 0.

Например:

__6.5000000000Е+04 означает 6.5Е+4, т.е. 6,5*104=65000.

_-5.0000000000Е-03 означает –5Е-3, т.е. –5*10-3= -0.005.

Такую форму еще называют форматом вещественного числа с плавающей точкой. Эта сложная картина связана с представлением вещественных чисел в памяти машины.

Чтобы вывод вещественного числа на экран был нагляден, его надо упорядочить, указав вначале необходимое количество символов, отводимых под все число, а, затем, необходимое количество символов отводимое под дробную часть, т.е.: Write(pl:4:2).

Вопросы и задания:

¨ Как форматировать вывод вещественного числа на экран? Для чего это нужно?

§ Представить в вещественном виде числа: –7.88*10-9; –5.667; 599. 6699.

¨ Представить в вещественном виде числа: –0.008*10-9; 5000.667; 3000.0

§ Дано представление вещественных чисел –6Е4; 4.345Е-5. Что это за числа?

¨ Дано представление вещественных чисел 9Е-5; -6.48Е3. Что это за числа?

¨ Даны числа a, b, c, d найти значение выражения (a-b)*c/d.

II. 8. Арифметические операции, функции и выражения

Оператор присваивания часто применяют для вычисления более сложных арифметических выражений.

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

В среде BorlandPascal выполнимы следующие арифметические операции:

+, -, *, /, div (деление нацело: 26 div 7=3), mod (ОСТАТОК ОТ ДЕЛЕНИЯ: 26 mod 7=5).

ü Если эти операции выполняются над целыми числами, то результатом будет целое число (! Исключение составляет операция / -результат, при выполнении этой операции- вещественное число real).

ü Операции div и mod выполнимы только с целыми числами.

В среде BorlandPascal выполнимы следующие арифметические функции:

Abs(x)-модуль числа х,

sqr(x)- квадрат числа х,

trunc(x)- целая часть числа х,

round(x)- округление числа х до целого.

Правила записи арифметических выражений:

1. Выражение записывается в строчку без пробелов и переносов.

2. Не допускается следование двух знаков подряд.

3. Выражения в скобках выполняются в первую очередь.

4. Операции выполняются в порядке приоритета:

- функция

- *, /, div, mod

- +, -.

Например: выражение Операции, которые можно с ней выполнять - student2.ru на языке Паскаль запишется так:

Sqr((a+b*b*b)/c)+c/(a*b)

Результатом вычисления такого выражения будет вещественное число, так как была использована операция /.

Задача: Написать математическую формулу, соответствующую выражению на Паскале: (p+q)/(r+s)-p*q/(r*s).

Решение: Операции, которые можно с ней выполнять - student2.ru .

Задача: Вычислить в уме значение выражения:

5*3-8 mod 3*5-6*(15 div 4 mod 2)

 
 
1 7 2 3 8 6 4 5

Решение: Расставим действия: 5*3-8 mod 3*5-6*(15 div 4 mod 2)

Выполним действия: 15-2*5-6*1= -1.

Задача: Дано целое шестизначное число. Найти произведение его цифр.

Дано: х – целое шестизначное число. Раз число шестизначное, то оно больше 32767 и 65536. Следовательно, тип переменной longint.

Найти: p – произведение цифр числа - integer.

Решение:

Чтобы найти произведение цифр, надо знать сами цифры (х1, х2, х3, х4, х5, х6 - integer). Проще всего найти последнюю цифру числа.

! Последняя цифра в любом числе является остатком от деления числа на 10.

Например: 453287 mod 10=7

Чтобы найти предпоследнюю цифру, проще сделать ее последней, разделив число на 10 нацело.

453287 div 10=45328. Теперь, с помощью операции деления с остатком, найдем предпоследнюю цифру. И так далее, пока цифры не кончатся.

Напишем программу:

Var x:longint; p, x1, x2, x3, x4, x5, х6,p:integer;

Begin

Writeln(‘введите шестизначное число’);

Read(x);

x6:=x mod 10;

x:=x div 10;

x5:=x mod 10;

x:=x div 10;

x4:=x mod 10;

x:=x div 10;

x3:=x mod 10;

x:=x div 10;

x2:=x mod 10;

x:=x div 10;

x1:=x mod 10;

p:=x1*x2*x3*x4*x5*x6;

write(p,’-произведение цифр числа’);

End.

Вопросы и задания:

Первый блок

¨ Каков формат оператора присваивания?

¨ Что такое арифметическое выражение? Каковы правила его записи?

¨ Какие арифметические операции выполнимы в среде BorlandPascal?

¨ Как зависят типы результатов операций от типов величин, над которыми операции производят?

¨ Какие арифметические функции выполнимые в среде BorlandPascal вам известны?

¨ Как зависят типы значений арифметических функций от типов их аргументов?

¨ Каковы правила записи арифметических выражений на языке Паскаль?

· Написать на языке Паскаль следующие выражения: Операции, которые можно с ней выполнять - student2.ru ; Операции, которые можно с ней выполнять - student2.ru

¨ Записать математические формулы, соответствующие следующим выражениям на Паскале:

1E3+beta/(x-gamma*delta); a/b*(c+d)-(a-b)/b/c+1E-8.

¨ Вычислить значение выражения 3*7 div 2 mod 7/3- trunc(sgrt(5))

§ Если у – вещественная переменная, а n – целая, то какие из операторов присваивания правильные:

Y:=n+1

Y:=n div 2

N:=y-1

Y:=y div 2

N:=4.0

Y:=trunc(y)

· Задание: Запишите программу, вычисляющую значение арифметического выражения:

Операции, которые можно с ней выполнять - student2.ru .

¨ Дано вещественное число х. Вычислить х(5х+6)2-10.

§ Дано вещественное число. Какова его дробная часть?

Второй блок

§ Дано 3-значное число. Найти сумму его цифр.

· Дано пятизначное число. Посчитать сумму и среднее арифметическое его цифр.

§ Дан рост человека в миллиметрах. Выразить его в метрах, сантиметрах и миллиметрах. Например: 1853 мм=1 м 85 см 3 мм

¨ С начала суток прошло х секунд. Сколько часов, минут и секунд показывают часы?

II. 9. Условный оператор

Очень часто отдельные этапы вычислений выполняются в зависимости от условий (не всегда последовательно).

Задача: Даны два числа. Найти из них максимальное число.

Чтобы найти максимальное число из двух, необходимо их сравнить, то есть проверить условие «какое из чисел больше».

Для проверки условий на Паскале существует оператор, который называется условным оператором или оператором ветвления.

Формат:

If <условие>then begin

<операторы1>

End

Else begin

<операторы2>

end;

Механизм работы оператора:

1. Выполняется проверка условия на истинность;

2. Если получено значение true (истина), то выполняется серия команд по ветке then. Если получено значение false (ложь), то выполняется серия команд по ветке else;

3. Выполняется команда, следующая после условного оператора.

Особенности написания оператора:

1. Перед else « ; » не ставится;

2. Если по веткам then или else следует один оператор, то операторные скобки (begin .. end) можно не писать:

If <условие>then <оператор1> else begin <операторы2> end;   If <условие>then begin <операторы1> end else <оператор2>;   If <условие>then <оператор1> else <оператор2>;  

Запишем решение выше предложенной задачи.

Дано: х, у – два целых числа (integer);

Найти: max – максимальное число из х и у (integer).

Решение:

Var x,y,max: integer;

Begin

Writeln(‘введите два целых числа’);

Read (x,y);

If x>y then max:=x else max:=y;

Writeln(max,'-максимальное');

End.

3. Если в случае невыполнения условия ничего делать не надо, то существует краткая форма условного оператора:

If <условие>then begin <операторы> end;  

Пример1. Дан возраст человека. Если возраст меньше 2, то вывести сообщение «В садик еще рано!».

Дано: х – возраст человека (real);

Результат: сообщение или пустой экран.

Решение:

Var x: real;

Begin

Writeln(‘введите возраст человека’);

Read (x);

If x<2 then write ('В садик еще рано!');

End.

Пример2. Найти максимальное из трех чисел.

Дано: х, у,z – три целых числа (integer);

Найти: max – максимальное из х, у и z(integer).

Решение:

Var x,y,z,max: integer;

Begin

Writeln(‘введите три целых числа’);

Read (x,y,z);

If x>y then max:=x else max:=y;

If z>max then max:=z;

Writeln(max,'-максимальное');

End.

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

Пример. Найти максимальное из трех чисел.

Дано: х, у,z – три целых числа (integer);

Найти: max – максимальное из х, у и z(integer).

Решение:

Var x,y,z,max: integer;

Begin

Writeln(‘введите три целых числа’);

Read (x,y,z);

If x>y then if x>z then max:=x else max:=z

else if y>z then max:=y else max:=z;

Writeln(max,'-максимальное');

End.

Вопросы и задания:

Первый блок

¨ Назовите назначение, формы записи и механизм выполнения условного оператора.

¨ Даны сторона квадрата и радиус окружности. Верно-ли что круг вписан в квадрат?

· Составить программу, которая просит ввести стоимость покупки и денежную сумму, вносимую покупателем, а затем печатает «Спасибо!» или предлагает взять сдачу.

¨ Лодка выдержит на плову 250 кг. Кирпич весит 1450 г. Выдержит ли лодка х кирпичей. Посчитайте максимальное количество кирпичей, выдерживаемое лодкой.

§ Даны 2 числа. Если их сумма больше 10, то вывести на экран их удвоенное произведение, а иначе большее из чисел заменить их суммой, а меньшее разностью.

· Дан автобусный билет. Определить, счастливый ли он.

¨ Даны три числа. Возвести в квадрат те из них, значения которых не отрицательны, и в четвертую степень отрицательные.

Второй блок

§ Даны четыре различных числа. Найти сумму не максимального и не минимального из них.

· Дано трехзначное число. Найти в нем максимальную цифру.

¨ Дано число a. Вывести ответ, каким будет значение выражения

(a+2)^2-24 (отрицательным, положительным, нулем).

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

v Одной банки краски хватает на покраску x см2 площади. Забор имеет форму прямоугольника: высота а м, длина b м. Сколько целых банок краски необходимо приобрести, чтобы покрасить забор?

· Операции, которые можно с ней выполнять - student2.ru Операции, которые можно с ней выполнять - student2.ru
Вычислить значение функции

· Дано трехзначное число. Расставить его цифры в порядке возрастания.

II. 10. Составные условия в условном операторе

Условие оператора if может быть составным. В составном условии используются логические операции and («и»), or («или»), not («не») и части условия берутся в алгебраические скобки.

При проверке условия операции отношения (<, >, =, <=, >=, <>) и логические операции получают результаты false или true.

При проверке составного условия на истинность, вначале проверяется истинность условий в скобках, затем действие связок not, затем and, а затем or.

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

X Y Not X X and Y X or Y
T T F T T
T F F F T
F T T F T
F F T F F

, где X и Y два умозаключения, которые могут принимать одно из двух значений False (ложь) или True (истина).

Пример. Определить результат выполнения программы:

Var a, b, c:integer;

Begin

Read(a,b,c);

If ((a mod 2=0) or (a mod 3=0)) and (not(b>c) and (a>b)) then write(a) else write(b);

End.

Введены числа: 10, 2 и 6.

В нашем примере:

a mod 2=0 true

a mod 3=0 false

b>c false

a>b true

(T or F) and ((not F)and T)=T and (T and T)=T

На экран выведется 10.

Задача.Найти максимальное из трех чисел.

Дано: х, у,z – три целых числа (integer);

Найти: max – максимальное из х, у и z(integer).

Решение:

Var x,y,z,max: integer;

Begin

Writeln(‘введите три целых числа’);

Read (x,y,z);

If (x>y) and (x>z) then max:=x;

If (y>x) and (y>z) then max:=y;

If (z>x) and (z>y) then max:=z;

Writeln(max,'-максимальное');

End.

Вопросы и задания:

Первый блок

¨ Назовите назначение, формы записи и механизм выполнения условного оператора.

§ Определить истинность выражения

((a<=b) and (a>d)) or not((a<>c) and (a=d) and (d>c)) or (b=c),

если a=6, b=4, c=-2, d=6.

¨ Найти максимальное из 4 чисел тремя способами.

· Напечатать программу, которая при введенном возрасте человека печатает его возрастную категорию: дошкольник, ученик, работник, пенсионер.

· Составить программу, которая при введенном возрасте человека правильно печатает: «Вам х лет (год, года)!».

v Даны коэффициенты k, b уравнения прямой. Составить программу, правильно печатающую уравнение прямой (y=kx+b) при любых значениях коэффициентов (оба положительны, k-отрицательный, а b-положительный, k-положительный, а b-отрицательный, оба отрицательны, коэффициент k=1 или k= -1).

Второй блок

§

 
  Операции, которые можно с ней выполнять - student2.ru

Составить программу, определяющую: «попадет ли точка в заштрихованную область?».

· Даны длины трех отрезков. Если отрезки могут быть сторонами треугольника, то посчитайте его периметр, иначе сообщите.

· Дано трехзначное число и цифра х. Входит ли эта цифра в запись числа.

· Даны три числа a, b, c. Определить, какое из них равно d. Если равных d чисел нет, то найти максимальное из d-a, d-b, d-c.

¨

       
  Операции, которые можно с ней выполнять - student2.ru   Операции, которые можно с ней выполнять - student2.ru

Дано четырехзначное число. Если в нем есть нули, то перевернуть его, иначе приписать ноль (пример: 2305 5032, 2346 23460).

II. 11. Оператор выбора

Не всегда решение задачи сводится к рассмотрению двух случаев. Как быть если вариантов много?

Например. Составить программу, печатающую по номеру месяца его название.

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

Формат:

Case <выражение> of

<возможное значение1>: begin <операторы1> end;

<возможное значение2>: begin <операторы2>end;

.

.

<возможное значение n>: begin <операторыn> end

else begin <другие операторы> end;

end;

Механизм выполнения:

1. Определяется значение выражения, стоящего после служебного слова Case;

2. Это значение выбирается среди списка возможных значений;

3. Выполняется соответствующая серия операторов;

4. Если среди списка значение не было найдено, то выполняется серия операторов по ветке else.

Особенности написания:

1. Перед служебным словом else не ставят « ; »;

2. Оператор заканчивается служебным словом end;

3. Если по какой-то из веточек следует выполнить только один оператор, то операторные скобки можно опустить.

Напишем программу для указанной задачи.

Дано: n – номер месяца.

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

Решение:

Var n: integer;

Begin

Writeln(‘введите номер месяца’);

Read (n);

Case n of

1: writeln(‘январь’);

2: writeln(‘февраль’);

3: writeln(‘март’);

4: writeln(‘апрель’);

5: writeln(‘май’);

6: writeln(‘июнь’);

7: writeln(‘июль’);

8: writeln(‘август’);

9: writeln(‘сентябрь’);

10: writeln(‘октябрь’);

11: writeln(‘ноябрь’);

12: writeln(‘декабрь’)

else writeln(‘неверно введен номер месяца’);

end;

end.

Вопросы и задания:

¨ Назначение, формат, механизм выполнения и особенности написания оператора выбора.

¨ Составить программу, печатающую по номеру дня недели его название.

¨ Составить программу печатающую по номеру дня недели количество уроков в этот день.

II. 12. Оператор цикла с параметром

Часто для решения задачи требуется повторить одно и тоже действие или серию действий определенное количество раз.

Например. Вывести на экран свое имя 100 раз.

Конечно, программу к такой задаче можно составить, пользуясь уже известными нам операторами: написать оператор writeln и скопировать его 100 раз. Но тогда программа примет ужасающе огромный вид, несмотря на простоту поставленной задачи.

! Для повторения в программе одного оператора или серии операторов определенное количество раз используют оператор цикла с параметром.

Формат:

For <параметр цикла>:=<начальное значение>to<конечное значение> do

begin <тело цикла> end;

Пояснения:

1. параметр цикла – переменная-счетчик, в которой отсчитывается число шагов цикла;

2. начальное значение – значение переменной-параметра на первом шаге;

3. конечное значение – значение переменной-параметра на последнем шаге;

4. тело цикла – та серия операторов, которую нужно повторить.

5. Дословно оператор читается так:

Наши рекомендации