Меню

Pascal - Для сдачи ЕГЭ


Здесь приведены основные функции Pascal, необходимые для сдачи ЕГЭ

С чего начать - нужна среда разработки - можно скачать Pascal ABC, например, здесь.

Как работают части Программы

Сначала мы определяем переменные, которые будем использовать и присваиваим им тип, например : var a:integer;//целое число со знаком b:real;//число с плавающей точкой c:boolean;//логическая переменная str:string;// строка a:array[1..6];// массивы const n=4;//константы // - это знак строчного комментария, после него программа ничего в этой строке исполнять не будет.

Вы, наверно, обратили внимание, что после команд на языке программирования Pascal ставятся точки с запятой.

Присваивание значений: a:=23;//используется двоиточие равно

Вычисления в Pascal

Сложение, умножение и вычитание, как обычно : a=5 b=2 c = a + b writeln('c= ', c1)#операцияя сложения writeln('a+b = ', a+b)#или так Деление : a=5 b=2 writeln(a/b = ', a/b)# = 2,5 это обычное деление writeln('a div b = ', a div b)# = 2 - это целочисленное деление writeln('a mod b = ', a mod b)# - 1 - это остаток от деления

Вывод на экран: write(a);//без переноса строки writeln(a);//c переносом строки Ввести переменные можно присвоив им значения в программе, как указано выше, но тогда, чтобы их поменять, нужно будет каждый раз заходить в программу и ее менять, что зачастую неудобно. Можно ввести переменные с клавиатуры, например, так: readln(a); //при запуске программа остановится, откроется окошко для ввода, и программа будет ждать, пока вы введете число или строку и нажмете enter. Можно ввести несколько переменных: readln(a,b,c); Можно ввести массив, используя цикл: for i:=1 to n do readln(a[i]); // обратите внимание, вот так описывается цикл !!! Если данных много, можно считать данные из файла или записать в файл - если у вас сейчас нет таких задач, смело пропускайте и
переходите к операторам Сравнения. При необходимости, потом вернетесь, когда потребуется.
Ниже пример программы - посимвольное чтение из файла. var f: file of char; c: char; begin assign (f, 'c:\file.txt');// открытие файла для чтения reset (f);// перевод курсора в начало файла while not eof (f) do begin// что делаем - пока не признак конца файла, читаем следующий символ и выводим на печать read (f, c); writeln (c); end; close (f);// закрываем файл end. Чтение строк из файла : var f: text; str: string; begin assign(f,'in.txt'); reset(f); readln(f,str); writeln(str); close(f); end. Запись данных в файл (ввод с клавиатуры, файл out.txt уже должен быть) : var f: text; str: string; begin write('Введите строку:'); readln(str); assign(f,'c:\progr\out.txt'); rewrite(f); writeln(f,str); close(f); end. Сравнение: if (a mod 2 =0) then writeln('a = ', a) // условия =, <>, >, < , >=, <=, логический функции - связки условий - and, or, xor, not else begin //если после then, do, else больше одного оператора, то нужно использовать конструкцию begin... end; a:=a+2; writeln('a+2 = ', a); end; Перебор массива a[] в цикле: for i:=1 to n do begin a[i]:=a[i]+2; // здесь код нашей программы, например, end; Функции Затем мы описываем функции, если они у нас будут. Функции нужны, если мы хотим одинаковый код использовать два и более раз.
Внутри функции указываем параметры и их тип, снаружи - тип возвращаемого значения.

Пример - программа сначала определяет переменные a,b, затем функцию sum, затем начинает работать с Begin, принимает вводимые с клавиатуры переменные a и b, передает их в функцию и потом выводит сумму на экран.
Программу с экрана можно выделить мышкой и скопировать себе в редактор.

var a,b: integer; function sum(x, y: integer):integer; begin sum:=x+y; end; begin read(a); read(b); writeln('a+b= ', sum(a,b)); end.

Решаем задачи из ЕГЭ на Pascal - примеры кода

Задание ЕГЭ 6 - найти максимальное или минимальное значение исходя из условий :
Определите, при каком наименьшем введённом значении переменной s программа выведет число 64. var s, n:integer; begin s:=0; n := 1; while s < 51 do s := s + 5; n := n * 2; writeln(n); end. Решение - видим, что выводится число - два в некоторой степени, которое равно количеству циклов, соответственно, 64 - 2 в 6 степени, значит, начальное s должно быть равно 51-5*6=21. Подставляем, проверяем, -так и есть. Ответ : 21.

Задание ЕГЭ 16 - Ввод чисел и рекурсивная функция: Дана функция - нужно ее описать и найти F(26) F(n) = 1 при n = 1; F(n) = n + F(n − 1), если n – чётно, F(n) = 2 × F(n − 2), если n > 1 и при этом n – нечётно. var n:integer; function f (x:integer):integer; begin if x=1 then f:=1 else if x mod 2 = 0 then f:=x + f(x-1) else f:=2*f(x-2); end; begin writeln('Введите число n= '); read(n); write('F(',n,')=',f(n)) end.

Задание ЕГЭ 17 - Расчетная задача с условиями и перебором значений в цикле:
Рассматривается множество целых чисел, принадлежащих числовому отрезку [1016; 7937], которые делятся на 3 и не делятся на 7, 17, 19, 27. Найдите количество таких чисел и максимальное из них. В ответе запишите два целых числа: сначала количество, затем максимальное число.
var s,max1, i:integer; begin s:=0; max1:=0; for i := 1016 to 7938 do if (i mod 3=0) and (i mod 7<>0) and (i mod 17<>0) and (i mod 19<>0) and (i mod 27<>0) then s:=s+1; max1:=i; write(s,' ', max1) end. //ответ = 1568 7935

На этом пока все - пишите пожелания и вопросы на почту dmitryra27@gmail.com