СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Лекция 3. Линейные программы

Категория: Информатика

Нажмите, чтобы узнать подробности

Лекционный материал. "Линейные программы (язык программирования Паскаль)". Расчитан в помощь учителю и для самостоятельного изучения ученикам при подготовки к олимпиадам по програмированию

Просмотр содержимого документа
«Лекция 3. Линейные программы»

ЛИНЕЙНЫЕ ПРОГРАММЫ

Программы, в которых используются только простые операторы, называются линейными.

Возникает два вопроса:

1. Что такое оператор?

2. Что такое простой оператор?

ОПЕРАТОРЫ

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

Операторы отделяются друг от друга в программе символом «;» (точка с запятой). Точка с запятой не является частью оператора, это разделитель операторов.

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

  • оператор присваивания;

  • оператор перехода(его лучше не использовать в программах);

  • оператор вызова процедуры.

Оператор присваивания состоит из идентификатора переменной или пользовательской функции, символа « :=» и выражения.

ИМЯ1:= значение; выражение; ИМЯ2

Если в правой части оператора стоит значение, то переменной с именем ИМЯ1 присвоится это новое значение.

Если в правой части стоит идентификатор, то значение этой переменное присвоится переменной с именем, которое стоит в левой части оператора.

Если в правой части - выражение, то выполнение оператора присваивания приводит к вычислению значения, определяемого выражением, и присваиванию этого значения переменной с именем ИМЯ1.

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

Обязательным является требование, чтобы тип выражения в правой части оператора и тип переменной или результата в левой части оператора были совместимыми по присваиванию.


Оператор вызова процедуры.

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

ИМЯ_процедуры(параметр1,...,параметрК);

ИМЯ_ процедуры;

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

Структурные(сложные) операторы в отличии от простых включают в себя другие операторы и управляют последовательностью их выполнения. В PASCAL структурными операторами являются:

  1. составной оператор;

  2. условные операторы:

  • оператор альтернативы if;

  • оператор выбора case;

3) операторы цикла:

  • цикл с предусловием while;

  • цикл с постусловием repeat:

  • цикл с параметрами for:

4)оператор для записей with.

Об этом мы поговорим позже.

Разберем линейную задачу:

Определить, есть ли среди цифр заданного трехзначного числа одинаковые.

Идея решения.

  1. Выделить каждую цифру трехзначного числа;

  2. логической переменной дать возможность проверить будут ли в этом числе равные цифры.

Алгоритм решения:

  1. вводим трехзначное число ;

  2. выделим первую цифру как результат деления на 100;

  3. выделим последнюю цифру, как остаток от деления на 10;

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

  5. выделим из него последнюю цифру как остаток от деления на 10;

  6. имея три цифры, составим логическое выражение проверки на существование равных цифр;

  7. выведем значение логической переменной.

Программа решения

Program Task1;

var n : longint; {данное число}

a,b,c : 0..9; {переменные для хранения цифр}

z : boolean; {логическая переменная}

begin writeln(‘Введите трехзначное число’);

readln(n);

a:= n div 100; {первая цифра}

c:=n mod 10; {последняя цифра}

n:=n div 10; {отбрасываем последнюю, остается первая и вторая}

b:= n mod 10; {а вот и вторая цифра}

z:= (a=b) or (b=c) or (a=c); {равны ли эти цифры? }

writeln( z); {ответ - true или false }

end.

Теперь организуем работу для этой задачи с файлами. Например, в файле Inp.txt хранится число, а в файл Out.txt запишем результат.

Программа решения

Program Task1;

var n : longint; {данное число}

a,b,c : 0..9; {переменные для хранения цифр}

z : boolean; {логическая переменная}

begin

assign(input,’inp.txt’); reset(input);

assign(output,’out.txt’); rewrite(output);

readln(n);

a:= n div 100; {первая цифра}

c:=n mod 10; {последняя цифра}

n:=n div 10; {отбрасываем последнюю, остается первая и вторая}

b:= n mod 10; {а вот и вторая цифра}

z:= (a=b) or (b=c) or (a=c); {равны ли эти цифры? }

writeln( z); {ответ - true или false }

end.

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

{ assign(input,’inp.txt’); reset(input);

assign(output,’out.txt’); rewrite(output); }

то ваша программа будет работать с клавиатурой и выводить на экран, если же убрать фигурные скобки, то можно работать с файлами.