Что нужно знать по программированию 1. Структура программы Структура программы на языке PASCAL состоит из трёх частей: 1) заголовка; 2) описательного блока; 3) исполнительного блока; Program имя программы ; заголовок Const nmax=100; начало описательного блока Var n:integer; целое m:longint; длинное целое p:byte; байт r:real; вещественный c:char; символьный s:string; строковой, длина строки 255 символов str: string[80]; строковой, длина строки 80 символов log:boolean; логический принимает значения true или false Begin тело программы; исполнительный блок состоит обычно из разделов: 1) ввод данных, 2) вычисления, 3)вывод данных End. 2. Числовые типы переменных Shortint Integer Longint Byte Word Real Extended Comp 3. Короткое целое Целое Длинное целое Байт Слово Вещественный Расширенный Комплексный -128,127 -32768, 32767 -2147483648… 2147483647 0, 255 0, 65535 2.9E-39, 1.7E+38 3.4E-4932, 1.1E+4932 -9.2E+18, 9.2E+18 8 бит 16 бит 32бита 8 бит 16 бит 6 байт 10 байт 8 байт Оператор ввода информации Read (x1,x2,x3) - ввод переменных x1, x2, x3. Например: 2 3 5 Enter Readln (x1,x2,x3) - ввод переменных x1, x2, x3 с переходом курсора на новую строку. 4. Оператор вывода информации Write (x1,x2,x3) - вывод на экран значения переменных х1, х2, х3; Writeln (x1,x2,x3) - вывод на экран значения переменных х1, х2, х3 с переходом курсора на новую строку. Например, Write ('текст') - выводит на экран текст, заключённый в апострофах. Процедура вывода также выводит на экран результат вычисления арифметического выражения, заключённого в скобках, например: Write (х1+х2). Writeln(s:7:3) – форматированный вывод, для вывода s выделяется 7 позиций, из них 3 дробных 5. Оператор присваивания В левой части указывается имя переменной, правая часть – это выражение того же типа, что и переменная. Символы «:=» связывают левую и правую части оператора присваивания и означают «присвоить значение». Например: n:=10; или а:= b + c; 6. Оператор полного и неполного ветвления Полное ветвления: If < условие> then begin < серия команд 1 > end else begin < серия команд 2>; end; Неполное ветвление: If < условие> then begin < серия команд 1 > end. 7. Оператор выбора CASE В случае необходимости разветвить вычислительный процесс в зависимости от выполнения или невыполнения того или иного условия на более чем две ветви используется оператор выбора Case S of C1: <Оператор1> С2: <Оператор2> ................ CN: <ОператорN> Else <Оператор> End; S - выражение порядкового типа значение которого вычисляется; C1, C2,…,CN – константы, с которыми сравнивается значение выражения S; <Оператор1>, <Оператор2>, <Оператор N> - операторы, из которых выполняется тот, с константой которого совпадает значение выражения S. Ветвь оператора else является необязательной. Если она отсутствует и значение выражения S не совпадает ни с одной константой, весь оператор рассматривается как пустой. 8. Когда в ветвлении используются операторные скобки begin…end Операторные скобки используются, если в серии команд более одного оператора Циклы 9. Оператор цикла WHILE. Когда применяется и при каком условии выполняется. Инициализация цикловой переменной; while <условие> do begin тело цикла; коррекция цикловой переменной end; Применяется когда неизвестно число повторений. Выполняется до тех пор пока условие истинно. 10.Оператор цикла FOR. Две модификации. Когда применяется и при каком условии выполняется. Применяется когда известно число повторений. Существует два варианта оператора. for i:=a to b do begin тело цикла end; параметр цикла i принимает значения от a до b, увеличивая свое значение на 1 после каждого витка цикла. for i:=b downto a do begin тело цикла end; параметр цикла i принимает значения от b до a, уменьшая свое значение на 1 после каждого витка цикла. 11.Когда в циклах используются операторные скобки. Когда в теле цикла более одного оператора 12.Оператор цикла REPEAT. Когда применяется и при каком условии выполняется. Оператор цикла REPEAT организует выполнение цикла, состоящего из любого числа операторов, с неизвестным заранее числом повторений. Тело цикла выполняется хотя бы один раз. Выполняется до тех пор пока условие ложно (то же самое, что цикл заканчивается, когда условие вполнится) Инициализация цикловой переменной; repeat тело цикла ; коррекция цикловой переменной until условие; Массивы 1) Описание массива Var a:array[1..1000] of integer; I,n:integer; 2) Создание массива Read(n) а) Вручную for i:=1 to n do read(a[i]); b) Генератором случайных чисел randomize; вместо integer может быть любой тип, массив из 1000 элементов i – для цикла, n- реальное число элементов фактическое количество элементов массива процедура устанавливающая генератор случайных чисел на первое случайное число for i:=1 to n do a[i]:=random(100); массив заполняется числами в промежутке от 0 до 99 random – функция генерирующая одно случайное число. Может использоваться с параметром и без. Просто random генерирует вещественное число из промежутка (0;1). Random(k) генерирует целое число из промежутка [0;k-1]. Random(B-A+1)+A генерирует число на отрезке [A;B] c) По формуле for i:=1 to n do a[i]:=i*i; массив из квадратов натуральных чисел от 1 до n d) Чтение массива из файла assign(input,’input.txt’); процедура устанавливающая соответствие между файловой reset(input); переменной input и файлом input.txt процедура, открывающая файл input.txt для чтения read(n); файл in.txt имеет вид 6 for i:=1 to n do read(a[i]); 431679 close(input); процедура закрывающая файл input.txt e) Вывод массива на экран for i:=1 to n do write(a[i]:4);writeln; f) Вывод массива в файл assign (output,’output.txt’); процедура, открывает файл output.txt для записи и rewrite (output); очищает его, если он есть на диске, или создает output.txt если его на диске нет. for i:=1 to n do write(a[i],’ ‘); close(output); g) удаление элемента массива из позиции k for i:=k to n-1 do a[i]:=a[i+1]; dec(n); h) вставка X в позицию K for i:=n downto k do a[i+1]:=a[i]; a[i]:=X; inc(n); i) Поиск первого числа в массиве по заданному условию i:=1; while (i<n)and not (a[i]=X) do inc(i); if a[i]=X then begin … нашли end else begin … не нашли end;