Для того, чтобы успешно писать программы на Турбо-Паскале, нужно знать некоторые понятия по теме программирования. Ниже вы можете ознакомиться с основной теорией.
Общие сведения по языку Паскаль, история развития, этапы программирования.
Описание интегрированной среды программирования. Наиболее часто употребляемые команды встроенного текстового редактора.
Перечень употребляемых в языке символов. Используемые при написании программ объекты. Правила написания идентификаторов.
Стандартные разделы типичной паскаль-программы. Порядок следования и правила написания.
Классификация и характеристики типов, используемых в языке.
Приоритет операций, стандартные математические функции и процедуры Турбо-Паскаля, функции преобразования типов, порядковые функции.
Описание операторов ввода-вывода данных.
Описание оператора выбора CASE и условного оператора IF.
Описание цикла с параметром FOR, а также операторов WHILE и REPEAT.
Способы описания и приемы работы с массивами.
Описание строковых переменных и некоторые стандартные процедуры и функции работы со строками.
Описание структурированного типа «Множество» (SET)
Описание и работа с типом RECORD
Понятие о подпрограммах (процедурах и функциях). Примеры описания и реализации.
Способы записи информации на внешние носители информации. А также чтение данных из файлов.
* Блок-схемы алгоритмов Описание унифицированных алгоритмических структур с примером.
В этом разделе представлены ссылки на интернет ресурсы, которые могут вам помочь в подготовке к ЕГЭ по информатике.
В этом разделе представлены задачи, которые могут помочь вам в подготовке к государственному эгзамену.
C1
Условие задачи: Требовалось написать программу, которая решает уравнение »ax + b = 0» относительно x для любых чисел a и b, введенных с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу неправильно.
var a, b, x: real; begin readln(a,b,x); if b = 0 then write('x = 0') else if a = 0 then write('нет решений') else write('x =',-b/a); end
Последовательно выполните три задания:
1) Приведите пример таких чисел a, b, x, при которых программа неверно решает поставленную задачу.
2) Укажите, какая часть программы является лишней.
3) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы.)
Вариант решения задачи:
1) a = 0, b = 0, x = 0 (значение x можно не указывать, допустим ответ, что x - любое число).
2) Лишняя часть:
не нужно вводить x c клавиатуры
верно: readln(a,b);
3) Возможная доработка:
readln(a,b); if a = 0 then if b = 0 then write('любое число') else write('нет решений') else write('x=',-b/a);
C2
Условие задачи: Опишите на русском языке или одном из языков программирования алгоритм поиска номера первого из двух последовательных элементов в целочисленном массиве из 30 элементов, сумма которых максимальна (если таких пар несколько, то можно выбрать любую из них).
Наиболее эффективное написание программы:
const N=30; var a:array[1..N] of integer; MaxSum, MaxNum, i: integer; begin MaxNum:=1; MaxSum:=a[1]+a[2]; for i:=2 to N-1 do begin if a[i]+a[i+1]>MaxSum then begin MaxNum:=1; MaxSum:=a[i]+a[i+1]; end end; writeln(MaxNum); end.
C2
условие задачи: Опишите на русском языке или на одном из языков программирования алгоритм подсчета числа элементов равных максимальному в числовом массиве из 30 элементов.
Комментарии к решению задачи: Введем целочисленную переменную Max, в которую будем заносить максимальный из просмотренных элементов массива, и целочисленную переменную Num, в которой будем подсчитывать число повторений максимального элемента в просмотренной части массива. В цикле до конца массива: сравниваем очередной элемент массива с текущим значением переменной Max, если он больше, то заносим его значение в Max и устанавливаем счётчик Num в 1, если они равны, то увеличиваем счетчик Num на 1. По окончании цикла переменная Num содержит число повторений мксимального элемента массива.
Пример правильной и эффективной программы (на основе алгоритма, использующего однократный проход по массиву):
const N=30; var a:array[1..N] of integer; Max, Num, i: integer; begin Max:=a[1]; Num:=1; for i:=2 to N do begin if a[i]>Max then begin Max:=a[i]; Num:=1; end else if a[i]=Max then Num:=Num+1; end; writeln(Num); end.