
- •Рекомендации по использованию методического пособия
- •1. Структура программы в Паскале.
- •11. Подпрограммы.
- •13. Работа с файлами.
- •Введение
- •Характеристика и особенности языка
- •Основные особенности языка Pascal
- •Программирование на языках программирования высокого уровня
- •Структура программы в Паскале
- •Правила написания имен в Паскале
- •Стандартные модули в Паскале
- •Типы переменных в Паскале
- •Операции в Паскале
- •Дополнительные функции в Паскале
- •Команда ввода данных
- •Математическое действие
- •Ветвящиеся алгоритмы
- •Оператор условия
- •Оператор выбора
- •Циклические алгоритмы
- •Цикл с предусловием
- •Цикл с постусловием
- •Цикл с параметром
- •Принудительный выход из цикла
- •Работа с массивами
- •Одномерные массивы
- •Многомерные массивы
- •Работа со строковыми переменными
- •Строковые переменные
- •Ascii коды клавиш
- •Подпрограммы
- •Подпрограмма-функция
- •Подпрограмма-процедура
- •Графика в Паскале
- •Переход в графический режим
- •Цветовое оформление
- •Графические примитивы
- •Запись данных в файл
- •Закрытие файла
- •Список использованной литературы:
Ветвящиеся алгоритмы
Оператор условия
Часто в программах требуется выполнить одно или другое действие в зависимости от того, истинно или ложно некоторое условие. На алгоритмическом языке эта ситуация выглядит следующим образом:
Если <условие>, тогда <действие 1>, иначе <действие 2>
На языке Pascal эта конструкция записывается аналогично:
If <условие> then <действие 1> else <действие 2>;
Условие может быть простым или сложным, т.е. состоящим из нескольких простых, соединенных логическими условиями.
Иногда под каждой ветвью
алгоритма нужно провести несколько
действий:
В таком случае конструкция в Паскале остается прежней, но блоки действий ограничиваются служебными словами begin и end, причем перед командой else слово end употребляется без точки с запятой:
If <условие> then begin
<действие k1>;
…
<действие kn>;
end
else begin
<действие m1>;
…
<действие kn>;
end;
Запись на алгоритмическом языке остается неизменной:
Если <условие>, тогда <действие k1>;
…
<действие kn>,
иначе <действие m1>;
…
<действие kn>;
Неполное ветвление
В Паскале также возможна конструкция, когда под одной ветвью алгоритма не выполняется никаких действий, т.е. алгоритм сокращается до фразы:
Если <условие>, тогда <действие 1>
Подразумевается, что иначе никакие действия не производятся. Блок-схема тоже несколько упрощается.
Аналогично и на языке Паскаль мы просто отбрасываем часть конструкции (else…) и получаем:
If <условие> then <действие 1>
Так же, как и в полных алгоритмах, здесь можно произвести несколько действий, включая в конструкцию слова begin и end.
If <условие> then begin
<действие k1>;
…
<действие kn>;
end;
Пример
Определить, является ли треугольник со сторонами a, b, c равносторонним.
Решение
А
лгоритм:
треугольник;
Целые:a, b, c;
Начало
Ввести: a, b, c;
Если a=b=c, то вывод ‘да’, иначе вывод ‘нет’
Конец.
Program treugolnik;
Uses crt;
Var a,b,s: integer;
Begin
clrscr;
Writeln(‘введите стороны’);
Read(a,b,c);
if (a=b) and (b=c) then writeln(‘равносторонний‘) else writeln(‘неравносторонний’);
end.
Оператор выбора
В Паскале существует конструкция, которая так же дает возможность выполнить некоторые операции в зависимости от определенного условия, но, в отличие от условного оператора, можно рассматривать не два случая (выполнение или невыполнение условия), а больше. Инструкции выполняются в том случае, если значение выражения или переменной совпадает с константой из соответствующего списка.
case Выражение of
Константа 1: begin
<Инструкции 1>;
end;
Константа 2: begin
<Инструкции 2>;
end;
Константа N: begin
<Инструкции N>;
end;
end;
Если это не так, то выполняются инструкции, следующие после else:
case Выражение of
Константа 1: begin
<Инструкции 1>;
end;
Константа 2: begin
<Инструкции 2>;
end;
Константа N: begin
<Инструкции N>;
end
else <Инструкции>;
end;
Пример
По номеру дня недели определить его название.
Решение
Program dni_nedeli;
uses crt;
var k: integer;
begin
clrscr;
writeln(‘введите номер’);
read(k);
case k of
1: writeln(‘понедельник’);
2: writeln(‘вторник’);
3: writeln(‘среда’);
4: writeln(‘четверг’);
5: writeln(‘пятница’);
6: writeln(‘суббота’);
7: writeln(‘воскресенье’)
else writeln(‘не существует’);
end;
Вопросы для самостоятельной работы
Для чего используются ветвящиеся алгоритмы?
Сколько ветвей может быть у условного алгоритма? Что такое неполное ветвление?
Как записывается на языке Pascal оператор условия с двумя ветвями, под каждой из которых выполняется одно действие; несколько действий?
Как записывается на языке Pascal оператор условия с неполным ветвлением? (2 варианта)
Как можно включить в алгоритм несколько условий одновременно?
В чем отличие применения оператора выбора от оператора условия?
Как записывается на языке Pascal оператор выбора? Какие варианты существуют в записи?
Как обозначается сложное условие в блок-схеме? На алгоритмическом языке?
В каком случае знак препинания после слова end не ставится?
Задачи
Уровень A
Написать программу, которая вычисляет частное от деления двух чисел. Программа должна проверять правильность введенных пользователем данных и, если они неверные (делитель равен нулю), выдавать сообщение об ошибке.
Составить программу, позволяющую получить словесное описание школьных отметок (1 – плохо, 2 – неудовлетворительно и т.д.)
Даны три действительные числа. Возвести в квадрат те из них, значения которых неотрицательны, и в четвертую степень – отрицательные.
Даны целые числа m и n. Если числа не равны, то заменить меньшее число большим, оставив большее неизменным, а если равны, то заменить оба числа нулями.
Дано трехзначное число N. Проверить, будет ли сумма его цифр четным числом.
Написать программу, которая запрашивает у пользователя номер дня недели и выводит одно из сообщений: "Рабочий день", или "Выходной".
Подсчитать количество целых чисел среди чисел a, b, c.
Составить программу-результат гадания на ромашке – «любит – не любит», взяв за исходное данное количество лепестков.
Определить правильность даты, введенной с клавиатуры (число – от 1 до 31, месяц – от 1 до 12).
Составить программу, которая по заданным году и номеру месяца определяет количество дней в этом месяце.
Уровень B
Даны три стороны одного и три стороны другого треугольников. Определить, имеют ли эти треугольники равные площади.
Даны координаты трех вершин треугольника. Определить, будет ли этот треугольник равносторонним.
Написать программу решения квадратного уравнения. Программа должна проверять правильность исходных данных и в случае, когда коэффициент при второй степени неизвестного равен нулю, выводить соответствующее сообщение.
Написать программу, которая после введенного с клавиатуры числа (в диапазоне от 1 до 999), обозначающего денежную единицу, дописывает слово "рубль" в правильной форме. Например, 12 рублей, 21 рубль и т. д.
Заданы размеры a, b прямоугольного отверстия и размеры x, y, z кирпича. Определить, пройдет ли кирпич через отверстие.
Написать программу, которая вычисляет дату следующего дня.
Уровень C
Написать программу решения системы линейных уравнений:
a1x + b1y = c1
a2x + b2y = c2
Даны три положительных числа. Определить, можно ли построить треугольник с длинами сторон, равным этим числам. Если можно, ответить на вопрос, является ли он остроугольным.
Пусть элементами равностороннего треугольника являются 1) сторона; 2) площадь; 3) высота; 4) радиус вписанной окружности; 5) радиус описанной окружности. По одному из элементов вычислить остальные.
Найти координаты точек пересечения прямой y = kx + m и окружности радиусом R с центром в начале координат.