Язык программирования Паскаль (Pascal) Методика решения задач
Оценка 4.8

Язык программирования Паскаль (Pascal) Методика решения задач

Оценка 4.8
Раздаточные материалы
doc
информатика
Взрослым
30.05.2017
Язык программирования Паскаль (Pascal)            Методика решения задач
УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ Язык программирования Паскаль (Pascal) Методика решения задач по учебной дисциплине «Теория алгоритмов» для специальности 09.02.03 «Программирование в компьютерных системах» Язык программирования - это фиксированная система обозначений для описания алгорит-мов и структур данных. Среди современных языков программирования одним из самых популярных является язык Паскаль. Своё название он получил в честь великого французского математика и физика Блеза Паскаля, который в 1642г. изобрёл счётную машину для арифметических операций, так называемое "паскалево колесо".
МЕТОДИКА решения задач.doc
МИНИСТЕРСТВО ОБРАЗОВАНИЯ  И МОЛОДЕЖНОЙ ПОЛИТИКИ  СТАВРОПОЛЬСКОГО КРАЯ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ПРОФЕССИОНАЛЬНОЕ ОБРАЗОВАТЕЛЬНОЕ УЖРЕЖДЕНИЕ БУДЕННОВСКИЙ  ПОЛИТЕХНИЧЕСКИЙ КОЛЛЕДЖ    УЧЕБНО­МЕТОДИЧЕСКОЕ  ПОСОБИЕ    Pascal               Язык программирования Паскаль (      )            Методика решения задач       по учебной  дисциплине «Теория алгоритмов»  для специальности  09.02.03   «Программирование в компьютерных системах» 1 Наиля Шарифулловна Тилиева преподаватель высшей категории профессионального цикла УЧЕБНО­МЕТОДИЧЕСКОЕ  ПОСОБИЕ  Язык программирования Паскаль (  Pascal      ) по учебной  дисциплине «Теория алгоритмов» для специальности  09.02.03  «Программирование в компьютерных системах» 2 СОДЕРЖАНИЕ      линейных алгоритмов. Часть 1. Знакомство с языком программирования Паскаль (  Pascal    ) 1. 1. Возникновение и назначение языка Паскаль; 1. 2. Структура программы на языке Паскаль; 1. 3. Операторы ввода, вывода, присваивания; 1. 4. Арифметические операции и основные математические функции;      программ с помощью    Часть 2.   Составление  2. 1. Пунктуация Паскаля; 2. 2. Ввод и вывод данных. Форматы вывода; 2. 3. Составление программ с помощью линейных алгоритмов. Часть 3.   Условный оператор. Решение задач на ветвление. 3.1.  Оператор ветвления на Паскале. Программирование полного и неполного ветвления; 3.2. Сложные ветвящиеся алгоритмы. Логические операции.   Часть   4.       Паскале. 4.1.  Понятие о циклах. Счётный цикл FOR; 4.2. Цикл с предусловием WHILE; Задача о перестановке букв. 4.3. Цикл с постусловием REPEAT…UNTIL; 4.4. Решения  задач с использованием  алгоритмов с повторениями. Часть   5. массивов. 5.1.  Понятие массива. Ввод массива различными способами. 5.2. Поиск в массиве элементов с заданными свойствами. 5.3. Двухмерные массивы: описание, ввод и вывод массивов по строкам. 5.4. Решение задач с использованием  массивов. Часть 6. Образцы решения задач с помощью различных алгоритмических структур.    Алгоритмы   с   повторениями.   Программирование   циклов   на  Понятие   массива.   Примеры   решение   задач   с   использованием 3 Pascal Язык программирования Паскаль (      )  Pascal Часть 1. Знакомство с языком программирования Паскаль (    )    Основные темы: 1. 1. Возникновение и назначение языка Паскаль; 1. 2. Структура программы на языке Паскаль; 1. 3. Операторы ввода, вывода, присваивания; 1. 4. Арифметические операции и основные математические функции; Цель занятия: 1. Сформировать первые сведения о языке Паскаль; 2. Сформировать первые сведения о структуре программы на языке Pascal; 3. Познакомиться   с   арифметическими   операциями   и   основными   функциями, с различными типами данных;   математическими 1. 1 Возникновение и назначение языка программирования     Паскаль После   того,   как   построен   алгоритм   решения   задачи,   составляется   программа   на определённом языке программирования. Язык   программирования  ­  это   фиксированная   система   обозначений   для   описания алгоритмов и структур данных. Среди   современных   языков   программирования   одним   из   самых   популярных   является язык Паскаль. Своё название он получил в честь великого французского математика и физика Блеза Паскаля, который в 1642г. изобрёл счётную машину для арифметических операций, так называемое   "паскалево   колесо".   В   конце   1968   г.   профессор   Вирт   и   его   сотрудники   из швейцарского федерального института технологии в Цюрихе разработали первую версию языка Паскаль.  Спустя два года ­ первый вариант компилятора. В 1971 г. Вирт выпустил описание своего языка.  Создавая  язык Паскаль Вирт преследовал две цели:  во­первых,   разработать   язык   пригодный   для   обучения   программированию   как систематической дисциплины;  во­вторых, реализация языка должна быть эффективной и надёжной. Одним из достоинств языка Паскаль является то, что он полностью воплотил в себя идею структурного программирования, суть которой заключается в том, что с помощью нескольких конструкций можно выразить в принципе любые алгоритмы. 4 Язык   программирования   Паскаль­ это универсальный язык, позволяющий решать самые разнообразные задачи обработки информации. 1. 2 Структура программы на языке     Паскаль Команду   алгоритма,   записанную   на   языке   программирования,   принято   называть оператором.   Программа на Паскале близка по своему виду к описанию алгоритма на алгоритмическом языке. Сравните алгоритм решения  задачи­ деление простых дробей – с соответствующей программой на Паскале: ­ На  алгоритмическом языке: алг                            Деление дробей; цел                           a, b, c, d, m, n; нач                           ввод (a, b, c, d);                                 m:= a*d;                                 n:=b*c;                                 вывод( m, n); кон. ­ На языке   Паскаль:   Program      division;  Var             a, b, c, d, m, n: integer; Begin        readln(a, b, c, d);                                 m:= a*d;                                 n:=b*c;                   writeln(m, n); End. Даже не заглядывая в учебник по  Паскалю,  в этой программе мы можем все понять, особенно помогает знание английского языка. Алфавит языка состоит из букв латинского алфавита (русский алфавит используется только Алфавит языка и действительные числа для пометок и для задания литерных величин), арабских цифр, специальных символов: + ­ * / = > <  [ ] {} ( ) ‘ . , : ; ^ @ $ # Действительные числа изображаются в естественной и полулогарифмической форме. Число 135000 записано в естественной форме. Мы можем записать его так 1.35  .  105. Запись данного числа в полулогарифмической форме выглядит следующим образом:  1.35Е+05. Знак и число, стоящие после символа  E  указывают, на сколько знаков вправо или влево необходимо сместить десятичную запятую. Например: 85470  = 8.547Е+04 3.1415 = 3.1415E+00 0.0045 = 4.5E­03 Часть 1. Задания для самостоятельной работы: 1. Переведите числа из  полулогарифмической формы в естественную форму записи: а) 4,09Е+02;  б)7,802Е+01;  в)3,3Е­02;  г)2,97Е­03;  д)5,29Е+00;  е)2,03Е+05. 2. Переведите числа из  естественной формы записи в полулогарифмическую форму: а) 234000;  б)0,0045;  в)6,78;  г)7,302;  д)4090;  е)0,0306. 3. Сравните числа:  а) 4,67Е­01 и 0,0467;  б)9,21Е+04 и 9210.  Таким   образом,     программа   на   языке   Паскаль     состоит   из   заголовка,   описаний   и операторов. В заголовок входят: служебное слово program и перечень доступных программе файлов (input, output) Тело программы (блок) состоит из шести разделов: раздел меток; раздел констант; раздел типов; ­ ­ ­ 5 ­ ­ ­ раздел переменных; раздел процедур и функций; раздел операторов. Нарушать очерёдность нельзя. Любой из разделов (кроме операторов) может отсутствовать. Раздел меток  label (служебное слово) за которым следует перечень меток разделённый запятыми  Пример 3, 22 , 48, 7; Раздел описания констант  const (служебное слово) Определение   каждой   константы   содержит   идентификатор   константы,   знак   равенства,   и значение,   например:  z=’252   группа’;   Константы   записываются   своими десятичными значениями 2.3; 3.5 и т. д. Значение константы хранится в выделенной под нее ячейке памяти и остается неизменной в течение работы программы.   e=8,718281828; Раздел описания типов  tupe (служебное слово) В работе чаще используются стандартные типы данных: byte – целый (от 0 до 255); integer ­ целый (от ­32768 до 32767); longint – (от –2147483648 до 2147483647); real ­ вещественный (от 2,9Е­39 до 1,7Е+38); char ­ символьный (любой один символ. Например: f или №) string ­ строковый (любой текст от 0 до 255 символов) boolean ­ булевский {принимает два значения FALSE (ложь) и TRUE (истина)} Интервальные типы: можно объявить новый тип так, что он будет частью упорядоченного интервала days =1..31      manth=1..12        z=’a’..’w’ Раздел описания переменных   var (служебное слово) В   данном   разделе   должны   быть   перечислены   все   переменные,   используемые   в   программе,   с указанием их типов. Идентификаторы переменных одного типа можно записывать через запятую.  i, k, l: integer;  a, b: real; Идентификаторы   переменных   составляются   из   букв   латинского   алфавита   и   цифр.   Первым символом обязательно должна быть буква. Переменные в программировании обозначаются символическими именами. Эти имена называются идентификаторами. Например: А1; X; В3; prim; max и т. д. Раздел операторов – основная часть программы Begin            <операторы> End. 1. Ввод исходных данных с клавиатуры происходит по оператору read (read­ читать) или readln (readln­ читать строку):  1.3 Операторы ввода, вывода, присваивания; read  (  <список переменных>);        readln  (  <список переменных>); Значения переменных пользователь набирает на клавиатуре в том порядке, в каком они указаны в списке, отделяя их друг от друга пробелами; одновременно они появляются на экране. В конце нажимается клавиша   . readln – экранный курсор перемещается в начало новой строки; read­ не перемещается. 6 2. Вывод результатов на экран компьютера происходит по оператору write (write – писать) или writeln (writeln – писать в строку); write (  <список  вывода>); writeln (  <список  вывода>); 3. Арифметический оператор присваивания на Паскале имеет следующий формат:   <числовая переменная>:= <арифметическое выражение>; Например:  Y:= 5;  X:=sqr(Y) + 3;Это означает,что переменной  Y  присвоить значение 5, а переменной X присвоить значение 52+3=28. 1.4 Арифметические операции и основные математические функции В языке Pascal используется следующие арифметические операции: арифметическая операция (а=14, b=4) результат сложение (+) вычитание (­) умножение (*) деление  целочисленное деление (/) S:=a+b S:=a­b S:=a*b S:=a / b S:=a div b остаток   от   деления   целочисленного S:=a mod b S=18 S=10 S=56 S=3.5 S=3 S=2 Нет возведения в степень. Если степень целая, её заменяют умножением: а3 S:=a*a*a.  Для возведения числа в произвольную степень используется следующее соотношение:     xy=exр(y*ln(x)), так как  xy=e ln(x ) =eylnx  .   Основные математические функции ↔ sqr(x) sqrt(x) int(x)  trunc(x) round(x) frac(x) abs(x) pi sin(x) возведение X в квадрат корень квадратный из X целая часть X (результат ­ вещественное число) целая часть X (результат ­ целое число) округляет число X до целого (результат ­ целое число) дробная часть от X модуль от X выдаёт число 3.1415926…..  (19 знаков после запятой)  синус X 7 cos(x) arctan(x)  exp(x)  ln(x) косинус X арктангенс X возведение числа е=2.7183 в стерень X (ех) логарифм числа X  random(x)  выбирается случайное число от 0 до X­1 (целое) random выбирается случайное число от 0 до 1 (вещественное)  Операции отношения =        равно <        меньше <=      меньше или равно >=     больше или равно < >        неравно >            больше 1. Вычислите: Часть 1. Задания для самостоятельной работы: a) a:= 78 mod 5;  б)  b:=97 div 9; в) c:= 13 mod 7; г) z:= sqr(9); д)  w:=sqrt(9); е) x:= abs(­7); ж)  sl:= 2+pi; з) pr:= sqr(sqrt(8)). 2. Запишите арифметические выражения на языке Паскаль: а)z=3+x2­3x3; в) l = 2 π r; б) d=x (sin x + cos(x2) + |x|); г) k=1 + |y­x|3 + |y­x|/(x+1) ; д)  ;       е) . 3. Даны числа a,b. Найдите: а) S:=a div b;   б)S:=a mod b, если a=15; 13; 18 и  b=2; 6; 4. 4.  Вычислите: а) (32 div5) mod 2=… б) (168 mod 100) div 6=…; в) (168 mod 100) mod 6=… 5. Проверьте равенство:  (264 mod 100) div 10=(368 div div 10) mod 10. Часть 1. Вопросы для повторения: 1. В каком году появилась первая версия языка программирования Паскаль (Pascal)? 2. Какими достоинствами обладает язык Паскаль? 3. Существуют ли операторы языка Паскаль записанные русскими буквами? 4. В какой форме изображаются действительные числа в Паскале? 5. Из каких частей состоит программа на Паскале? 6. Назовите стандартные типы данных. 8 7. Чем отличается операция деления  / от операции div? 8. Существует ли в Паскале  операция возведения в степень? 9. Что должно быть записано слева от оператора присваивания?  10. Что может быть записано в правой части оператора присваивания?  11. Что такое переменная? 12. Что такое идентификатор? Часть 2.   Составление       программ с помощью     линейных алгоритмов.                Основные темы: 2. 1. Пунктуация Паскаля; 2. 2. Ввод и вывод данных. Форматы вывода; 2. 3.  Составление программ с помощью линейных алгоритмов. Цель занятия: 1.Познакомиться   и научиться использовать   форматы команд ввода и вывода данных; получить навыки использования  различных математических  операций; 2.   Самостоятельно   написать   несколько   простых   программ   с   помощью   линейных алгоритмов;  3.Закрепить  знания и умения по работе в среде Паскаля. Необходимо   строгое   соблюдение   правописания   (синтаксиса)   программы.   В   частности,   в Паскале однозначно определено назначение знаков пунктуации. 2. 1 Пунктуация Паскаля Знак  (;)  ставится в конце заголовка программы, в конце раздела описания переменных, является разделителем операторов.  Перед словом    Знак     (,)  является   разделителем   элементов   во   всевозможных   списках:     списках переменных в разделе описания; списках вводимых и выводимых величин.   знак  (;) можно не ставить.  end  Строгий синтаксис в языках программирования необходим потому. Что компьютер является формальным исполнителем программы В   программу   на   Паскале   можно   вставлять   комментарии.  Комментарий­   это   пояснение   к программе,   которое   записывается   в   фигурных   скобках.   В   них   можно   использовать   русские буквы. На исполнение программы комментарии никак не влияют. Заметим, что в Паскале нет различия между строчными и прописными буквами. Например, для Паскаля тождественны следующие варианты записи: BEGIN, begin, BeGin и т. п. Использование строчных или прописных букв­ дело вкуса программиста. Если мы хотим при выводе на экран реальных чисел указать определённое число знаков 2. 2   Ввод и вывод данных.Форматы вывода после запятой, то можно воспользоваться форматом вывода writeln(a:n1:n2), где n1 ­ количество знакомест, выделенных под всё число; n2 ­ количество знакомест, выделенных под дробную часть числа. Например, команда  writeln(pi)  выведет строку:   3.1415926536E+00, а команда  writeln(pi:9:3) выведет строку:           3.142, пропустив перед выводимым числом четыре пробела и выровняв 3.142 (всего 5 знаков) по правому краю девяти знакомест.   Задача1. Составим программу, выводящую на экран число  .π program zadacha1; Begin writeln(pi:9:3); 9 Readln; End. Задание: Изменяя числа в формате вывода(:9:3, :9:2, :17:3, :17:7, :3:7 и т.д.),  просмотрите и проанализируйте полученные результаты. Задача 2. Заданы два числа. Найдем их сумму. рrogram zadacha2; var a,b,s:byte; Begin writeln('введите целое число a '); read(a); write('введите целое число b '); read(b); s:=a+b; writeln('s =',s);       Readln; End. Проанализируйте полученный результат при a+b>255. Поменяйте тип данных byte на integer. Что получается   теперь?   Просмотрите,   до   какой   предельной   суммы  a+b  вычисления   происходят верно? Установите тип данных longint. Просмотрите суммы. Задача 3.Составим программу вычисляющую program zadacha3; var a,b,s,p:real; s = а / b   и   p=a*b. Begin writeln('введите число a '); readln(a); writeln('введите число b '); readln(b); s:=a/b; p:=a*b; writeln('а/b =',s); writeln('а*b =',p);       Readln; End. В данном примере ввод и вывод данных для каждой переменной осуществляется отдельно. А можно было записать и так: program zadacha3а; var a,b,s:real; Begin  writeln('введите числа a и b'); readln(a,b); s:=a/b; p:=a*b; writeln('а/b = ',s,' а*b = ',p);       Readln; End. 2. 3. 1Составление программ с помощью линейных алгоритмов Рассмотрим несколько примеров:Задача 4. Заданы a, x, y.  Вычислите S=| a | +   x+ y 2 program zadacha4; var a,x,y,s:real; Begin  writeln('введите число x ');  10 readln(x); writeln('введите число y '); readln(y); writeln('введите число a '); readln(a); s:=abs(a)+sqrt(x+sqr(y)); writeln('s =',s);       Readln; End. Задача 5. Задана сторона куба. Вычислить объем куба и площадь боковой поверхности. Begin  writeln('Введите сторону куба'); {ввод данных}     {описание переменных} program zadacha5; var a,v,s:real; read(a); v:=a*a*a; s:=6*a*a;       Readln; End. (*вычисление объёма*) {вычисление площади поверхности} {вывод результатов} writeln('Объём = ',v:8:3,'  Площадь поверхности = ',s:8:3); Задача   6.  Дано   действительное   число   а.     Используя,   только   пять   операций умножения   получить   а15  (блок­схема,   алгоритмический   язык,   программа   на Паскале). На алгоритмическом  языке Блок – схема Алг      задача6 (цел    a, b, c, d, S); арг a; рез b, c, d, S; нач      ввод (a); b: = a*a; c: =b*b; d:= c*a; s:= d*d*d;         Вывод (S); Кон. Начало Ввод a b: = a*a; c: =b*b d:= c*a;s:= d*d*d На языке Паскаль: program   z6; var            a,b,c,d,s:longint; Begin      writeln('введите число  a');                  readln(a); Вывод S  Конец 11 b:=a*a;          с:=b*b;          d:=c*a;          s:=d*d*d;        writeln('результат = ',s);        Readln; Еnd.  {вторая степень} {4 степень} {5 степень} {15  степень} 2.3.2Составление линейных алгоритмов с использованием арифметических операций. Операции         div        и         mod        . Задача 7. Дано трёхзначное число. Чему равны его цифры? program zadacha7; var a,с1,с2,с3:integer; Begin writeln('введите трёхзначное число '); readln(a); c1:=a div 100; c2:=(a mod 100) div 10; c3:=a mod 10; writeln('первая цифра ­',c1); writeln('вторая цифра ­',c2); writeln('третья цифра ­',c3);   Readln; {или    c2:=(a div 10) mod 10;} Еnd. Задача 8. Заданы два целых числа  k  и  d. Используя только арифметические операции, найдите целую и  дробную части от деления k на d.  program    zadacha8; var           a,drobn:real;      k,d,cel:integer; Begin      writeln('введите два числа');                 readln(k,d);         cel:=k div d;         a:=k/d;        drobn:=a­cel;     writeln('целая часть ­ ',cel);      writeln('дробная часть ­ ',drobn);           Readln; {целочисленное деление} {обычное деление} Еnd. Можно ли было в данной программе все переменные определить как  integer  или как  real? Попробуйте и проанализируйте.  Задача 9.  Поезд перевозит  s  тонн груза. Сколько автомобилей грузоподъемностью  b тонн (b<  then  <оператор 1 >  else  < оператор 2 > неполная форма условного оператора if  < условие>  then  <оператор > if  then  else – зарезервированные слова (если, то, иначе)   Оператор   ветвления   на   Паскале.   Программирование   полного   и   неполного 3.1   ветвления. Рассмотрим несколько примеров: Задача 1.  Даны  два  числа   х, у.  Найти большее  из  них. program zadacha1; var max,x,y:real; Begin writeln('Введите  число  x '); readln(x); writeln(' Введите  число y '); readln(y); if x>y then  max:=x  else  max:=y; writeln('большее из двух чисел= ',max);         readln; End. Задача 2.  Даны  три  числа x, y,z .  Найти  максимальное число из них. program  zadacha2; var max,x,y,z:real; Begin writeln(' Введите  три числа '); readln(x,y,z); if x>y then max:=x else max:=y; if z>max then max:=z; writeln('большее из трёх чисел =',max);        readln; End. Задача 3.  Задано число a. Кратно ли оно 3. program zadacha3; var а:longint; Begin writeln(' Введите число'); readln(а); if a mod 3 =0 then writeln(a,' кратно 3’) else  writeln(a,' не кратно 3’);                                  readln; End. Задача  4.     Дано     число.     Дать     характеристику     числа:   положительное   оно   или отрицательное. program zadacha4; var  a:real; k:string; Begin        readln; writeln('Введите  число а'); readln(a); if a<0    then k:='отрицательное' else k:=' положительное'; writeln('число  ',a,' ; ',k,'); 17 End. Задача 5.  Дано три числа x, y, z. Вычислить сумму только положительных чисел из трех данных. program zadacha5; var Begin x,y,z,sum:real; writeln('Введите три числа'); readln(x,y,z); sum:=0; if x>0   then  sum:=sum+x; if y>0   then  sum:=sum+y; if z>0   then  sum:=sum+z; writeln('сумма положительных чисел = ',sum);         readln; End. 3.2 Сложные ветвящиеся алгоритмы. Условия, которые мы до сих пор использовали, являются простыми. Если после служебного слова  if  проверяется   только   одно   условие   (а  mod  3=0;  a>b;  k=1),   то   такое   условие   будем называть простым условием. Если   после   служебного   слова  if  возникает   необходимость   проверить   сразу   несколько условий,   то   группу   таких   простых   условий   будем   называть  составным   условием.    При написании составных условий,   каждое из простых условий, входящих в составное, берётся в скобки.  Можно использовать союзы and(и) или or(или). Рассмотрим следующий пример: Задача  6.   Дано   натуральное   число.   Проверить,   является   ли   число   двузначным,   у которого первая цифра равна последней. program zadacha6; var a:integer; Begin writeln('Введите  натуральное число'); readln(a); if (a mod 10=a div 10) and (a>9) and (a<=99) then writeln('является') else writeln('не является'); readln; End. После  служебного  слова   then, или  после  служебного   else будет  выполняться  только один оператор.  Если  необходимо,  чтобы  выполнялось  несколько  операторов их нужно  взять в  операторные  скобки: Операторные  скобки Begin                                        <последовательность операторов> end; Группу операторов находящуюся внутри операторных скобок будем называть  составным оператором.  Фактически, весь раздел операторов, внутри операторных скобок, представляет собой один составной оператор. Для   того,   чтобы   при   большом   количестве   операторных   скобок,   программа   была   более 18 читаемая, end желательно записывать под begin. Задача 7. Составить  программу  решающую  квадратное  уравнение вида  ax2+bx+c=0. program zadacha7; var  a,b,c:integer; x,d,x1,x2:real; Begin writeln('введите  коэффициенты  а,b,c'); readln(a,b,c); d:=b*b­4*a*c; if d<0 then writeln('уравнение  не  имеет  корней'); if d=0 then                  {вычисление  дискриминанта} begin writeln('уравнение  имеет  1  корень'); x:=­b/(2*a); writeln('x= ',x); end; if d>0 then begin writeln('уравнение  имеет  2 корня'); x1:=(­b+sqrt(d))/(2*a); x2:=(­b­sqrt(d))/(2*a); writeln('x1= ',x1); writeln('x2= ',x2); end; End. Задача 8. Даны два числа а,b (a,b≠0). Ответить одного ли знака введённые числа. program zadacha8; var a,b:real; Begin  writeln('Введите  два числa'); readln(a,b); if ((a>0)and(b>0)) or ((a<0)and(b<0)) then writeln('числа одного знака') else writeln('числа разных знаков');                                                readln; End. Задача  9. Дан треугольник  ABC  своими сторонами  a,  b,  c. Вычислить его площадь. (Формула Герона :  S=√р(р­а)(р­в)(р­с), где р=(а+b+с)/2 полупериметр.   Условие: длина любой стороны треугольника должна быть меньше суммы длин двух других сторон.) program Geron; var a,b,c,p,s:real; Begin writeln('Введите  длины сторон треугольника'); readln(a,b,c); if (a>0)and(b>0) and(c>0) and(a+b>c) and(b+c>a) and(a+bc>b)        then begin р=(а+b+с)/2; s:=sqrt(р*(р­а)*(р­в)*(р­с)); writeln('Площадь треугольника равна',s) end 19 else writeln('неверные исходные данные');    readln; End. Часть 3.  Вопросы для повторения: Вопросы для повторения: 1.Что такое составное условие? 2.В чём отличие составного условия от простого?  3.Объясните исполнение оператора if. 4.Какие союзы используются при написании составного условия? 5.В каких случаях после служебных слов then и else нужно писать begin … end,  а в каких нет? 6.Что представляет собой составной оператор?  7.Почему end желательно записывать под begin? Часть 3.  Задания для самостоятельной работы: 1. Задано x.   Вычислить у:         x2­5,       y  =                     |x­3|,  если x<0 , если x>=0. 2. Даны  два  числа.  Найти меньшее число из  них. 3. Даны  три  числа.  Найти  минимальное число. 4. Задано натуральное число a. Является ли оно чётным?   5. Задано натуральное число a. Является ли оно кратным 7? 6. Задано натуральное число a. Заканчивается ли оно на 0?   7. Дано трехзначное число. Кратна ли сумма  его цифр шести? 8. Дано двузначное число. Является ли сумма его цифр a) однозначным числом;  b)   двузначным числом.  9. Дано  двухзначное число. Являются ли обе цифры числа чётными? 10.Даны два вещественных числа. Уменьшить первое число в пять раз, если оно больше второго по абсолютной величине. 11.Яявляется ли число трехзначным, у которого первая цифра равна последней. 12.Дано трехзначное число. Кратна ли сумма  его цифр семи? 20 ОБРАЗЕЦ РЕШЕНИЯ ЗАДАЧИ С ПОМОЩЬЮ ВЕТВЯЩЕГОСЯ  АЛГОРИТМА Задача.   Даны два вещественных числа. Уменьшить первое число в пять раз, если оно больше второго по абсолютной величине. 1 этап     Математическое решение 2 этап      Блок ­ схема   Даны два вещественных числа х , у.   Если  |x| >|y|, то Z:=x/5, иначе Z:=y. Например: 1.Если   даны два числа  х= ­25 и у= 8, то  |­25|=25,   |8|=8, т. о. 25>8 и  Z=25:5=5. 2. Если   даны два числа   х=8 и  у= ­25, то     |8|=8,  |­25|=25, т. о. 8<­25 и  Z= ­25. + Z:=x/5 ­ Z:=y Начало Ввод x,y |x| >|y| Вывод  z Конец 3   этап         На     алгоритмическом языке: 4 этап      На языке     Паскаль: алг                           задача; вещ                          х, у, Z ; нач                           ввод (х,у); если                         |x| >|y|                                   то Z:=x/5                                    иначе Z:=y;                                           вывод(Z ); кон. Program       zadacha;  Var             х, у, Z : real; Begin          writeln('Введите  числа х, у’);                     readln(х.у);                     if  abs(x) >abs(y)                      then Z:=x/5                      else Z:=y;                               writeln(‘z=’,z);                    Readln; End. 21 Алгоритмы   с   повторениями.   Программирование   циклов   на Часть   4.         Паскале. Основные темы: 4.1.  Понятие о циклах. Счётный цикл FOR; 4.2. Цикл с предусловием WHILE; Задача о перестановке букв. 4.3. Цикл с постусловием REPEAT…UNTIL; 4.4. Решения  задач с использованием  алгоритмов с повторениями.  Цель занятия: 1.Сформировать понятие о циклах;   2.Научиться использовать счётный цикл FOR;  3.Познакомиться с циклами WHILE и REPEAT;             4.Получить и закрепить навыки решения алгоритмов с повторениями.            5.Закрепить знания по использованию различных типов циклов;  FOR     FOR;  ...   UNTIL  c  постусловием. 4.1  Понятие о циклах. Программирование циклов на Паскале. Счётный цикл    .    В языке  Паскаль  существует   три   различных   оператора   с   помощью   которых   можно запрограммировать  повторяющиеся  фрагменты  программы (три  оператора  цикла): ­ счетный  цикл    WHILE  с  предусловием;   ­ цикл      REPEAT ­ цикл     Цикл­   это   команда   исполнителю   многократно   повторить   указанную   последовательность команд. На первом нашем занятии постараемся познакомиться и научимся использовать  счётный цикл FOR .  Переменная внутри цикла изменяется автоматически от k до n  (n>k)  с шагом 1. Формат записи цикла: или от n до k  (n>k)  с шагом  ­1. Формат записи цикла: Если   в   цикле   должны   выполняться   несколько   операторов,   то   используем   операторные скобки: begin …. end;  Цикл FOR удобно использовать тогда, когда точно известно количество повторений.   for i:=n dawnto k do   for i:=k to n do  Рассмотрим несколько примеров: Задача 1.1. (счётный цикл FOR)  Найти сумму всех натуральных чисел от 1 до n. program zadacha1_1;  var i,n,s:integer; Begin     writeln(' введите  натуральное n');  readln(n); s:=0; for i:=1  to n do  s:=s+i; writeln('сумма  от  1  до',n,' = ',s); Readln; End. В данном цикле переменная  i  автоматически изменяется от 1 до  n   с шагом 1. Поэтому к переменной  s  прибавляется  i  вначале равная 1, потом 2, потом 3, и т.д. до  n, соответственно переменная s принимает значении 1, 3, 6, 10, 15 ….… Задача 2. Задано натуральное n.  Вычислить  сумму  ряда: S=1 ­ 1/2 + 1/3 ­ 1/4 + 1/5­........1/n 22 Program  zadacha2;  var i,n,a:integer; s:real; Begin   writeln('Введите  n');              readln(n);             s:=1;a:=1;             for i:=2 to n do             begin             a:=(­1)*a;             s:=s+a/i;             end;            writeln('Сумма  ряда   S= ',s);             Readln; End. Задача  3.   Определить   количество   трёхзначных   натуральных   чисел,   сумма   цифр которых равна заданному числу N. program zadacha3; var с1,с2,с3,i,n,kol:integer; Begin   writeln('Введите  n'); readln(n); kol:=0; for i:=100 to 999 do begin c1:=i div 100; c2:=(i div 10) mod 10; c3:=i mod 100; if c1+c2+c3=n   then kol:=kol+1; end;  writeln('Количество таких чисел = ',kol); Readln; End. 4.1. Вопросы для повторения: 1. Для чего предназначен оператор цикла? 2. Какие существуют циклы в языке Паскаль? 3. Какой формат записи имеет оператор FOR? 4. Как работает оператор FOR? 5. В каких случаях применяется оператор FOR? 6. Сколько раз будет выполнен цикл, и чему будет равна переменная S после выполнения: s:=0;  n=6; for i:=3  to n do                      s:=s+i; 7. Как в теле цикла выполнить несколько операторов? 4.1.  Задания для самостоятельной работы: 1. Найти сумму всех нечётных трёхзначных чисел. 2. Найти сумму положительных кратных 7 чисел, меньших 100. 3. Найти все числа, которые делятся на N среди: a) всех двухзначных чисел; 23 b) всех трёхзначных чисел. 4. Составить программу вычисления суммы квадратов чисел от 1 до  n. 5. Среди двузначных чисел найти те, сумма квадратов цифр которых делится на 13. 6. Найти все делители для заданного числа n. 7. Дано натуральное число n. Вычислить: a)  2n; c)   n!; 8. Среди четырёхзначных чисел выбрать те, у которых: b)  3n  все четыре цифры различны (например: 3167, 9012); a) b) имеются три одинаковые цифры (например: 1311, 7779); c) цифры попарно различны (например: 1331, 7979, 2255); d) цифры образую возрастающую последовательность (например: 1389, 4678); 4.2  Понятие о циклах. Программирование циклов на Паскале. Цикл с предусловием    Этот цикл удобно использовать тогда, когда заранее неизвестно число повторений. While <логическое выражение> do <оператор>;      (       «цикл ­ пока»).      WHILE   While – пока;    do­ делать. Оператор, стоящий после слова do, называется телом цикла.  Тело цикла может быть простым или составным оператором, то есть последовательностью операторов между служебными словами begin и end.   Обратим  внимание,  что  на  Паскале  нет  специальных   служебных  слов   для  обозначения конца цикла и конца ветвления. Во всех случаях, где это необходимо используются слова begin и end. Любой циклический алгоритм может быть построен с помощью команды «цикл ­ пока». Рассмотрим пример 1, используя  цикл WHILE.   Задача 1.2. Найти сумму всех натуральных чисел от 1 до n. program zadacha1_2;  var i,n,s:integer; Begin   writeln('введите натуральное n'); readln(n); s:=0;    i: =1; while i<=n do begin s:=s+i; i:=i+1; end;  writeln('сумма от 1 до',n,'=',s); Readln; End. Цикл  WHILE  будет  выполняться  до  тех  пор,  пока  выполняется  условие   i<=n.    Причем переменную i изменяем внутри цикла. Задача 4.Задано натуральное число n.  Вычислить  сумму  цифр числа. program zadacha4;  var n,sum,cif:integer; Begin   writeln('Введите  n');  readln(n); sum:=0; while n>0 do 24 begin cif:=n mod 10; sum:=sum+cif; n:=n div 10;  end; writeln('Сумма  цифр введённого числа = ',sum);  Readln; End. Задача  5. Найти минимальное натуральное число, которое при делении на 2 даёт   в остатке 1, при делении на 3 даёт в остатке 2, при делении на 4 ­ в остатке 3, при делении на 5 ­ в остатке 4, при делении на 6 ­ в остатке 5 а при делении на 7 дают в остатке 6. program zadacha5;  var i, kl:longint; Begin  kl:=0;  i:=0  while kl=0 do  begin i:=i+1; if (i mod 2=1) and (i mod 3=2) and (i mod 4=3) and (i mod 5=4) and (i mod 6=5) and (i mod 7=6) then kl:=1; end;  writeln(i); Readln; End. Задача  6.  (Цикл   с   предусловием  WHILE,   с   вложенным   ветвлением)   Найти наибольший общий делитель двух натуральных чисел, используя  алгоритм Евклида  : Пусть M, N N. Если M>N, то НОД(M, N)= НОД(M­N, N). Program Evklid; var M,N:integer; begin writeln('Введите числа M,N'); readln(M,N); while M<>N do begin if M>N then M:=M­N else N:=N­M; end; writeln('НОД=',M); readln; end. Задача о перестановке букв. Рассмотрим некоторые задачи из раздела математики, который называется комбинаторика.  Количество различных комбинаций из N предметов, получаемых изменением их порядка, называется  числом   перестановок.   Это   число   выражается   функцией   от  N,   которая называется факториалом и записывается так: N! = 1*2*3*…*n (читается – N факториал). 25 Например.  Сколько   различных   трехзначных   чисел   может   быть   получено   в   результате перестановки цифр:  123. Решение: 123; 132; 231; 213; 312; 321. То есть 3!=1*2*3=6. Задача 7.  Дано   N кубиков, на которых написаны разные буквы. Сколько различных N­ буквенных   слов   можно  составить  из   этих  кубиков.  (Слова  не  обязательно   должны иметь смысл). Решение. Пусть N – обозначает количество букв, F – количество слов из этих букв, то  F= N! =1*2*3*…*N Program Words; var F,N,R:integer; begin writeln('Введите число букв'); readln(N); F:=1; R:=1; while R<=N do begin F:=F*R; R:=R+1; end; writeln('Из',N,’букв можно составить’,F,’слов’); readln; end. 4.3  Понятие о циклах. Программирование циклов на Паскале.      REPEAT        …       UNTIL  Цикл с постусловием    Эти циклы также удобно использовать тогда, когда заранее неизвестно число повторений. Repeat  ­ повторять; Until  ­ до тех пор пока. Рассмотрим пример 1, используя  цикл  с постусловием REPEAT…UNTIL. Задача 1.3. Найти сумму всех натуральных чисел от 1 до n. program zadacha1_3;  var i,n,s:integer; Begin    writeln(' введите  натуральное n');  readln(n); s:=0; i:=1; repeat  begin s:=s+i; i:=i+1; end; until i>n; writeln('сумма от 1 до',n,' = ',s); readln; End. Цикл  REPEAT  . . . UNTIL  будет выполняться до тех пор, пока не выполниться  условие i>n. Часть 4.  Вопросы для повторения: 1. Какие циклы существуют в языке Паскаль? 2. Какой формат записи имеют циклы WHILE и REPEAT? 3. В каких случаях удобно применять эти циклы? 4. Чем отличается  цикл WHILE от цикла REPEAT? 5. Будет ли остановлено выполнение данного цикла? Почему?  26 a) an; b) a(a + 1) …(а + n – 1). a) b)   1 2 1 1 3 4 3 2 5 6 5 3  ... ;   ... . s:=0;   i: =1; while i<=4 do               s:=s+i; Часть 4.  Задания для самостоятельной работы: 1. Дано натуральное число n. Вычислить:    1  1 2 2     1   1 2 2      1...   1 2 n    . 2. Даны действительное число a, натуральное число n. Вычислить: 3. Дано натуральное число n. Вычислить произведение первых n сомножителей: 4. Найти все двузначные числа, которые содержат цифру N. 5. Составьте   программу   возведения   натурального   числа   в   квадрат,   используя   следующую закономерность: 12 = 1 22 = 1 + 3 32 = 1 + 3 + 5 42 = 1 + 3 + 5 + 7 . . . n2 = 1 + 3 + 5 + 7 + 9 + … + (2n – 1).  6. Составить программу возведения заданного числа в третью степень, используя следующую закономерность: 13 = 1 23 = 3 + 5 33 = 7 + 9 + 11 43 = 13 + 15 +17 + 19 53 = 21 + 23 + 25 + 27 + 29 7. Составьте программу нахождения НОД трех чисел:  НОД(А, В, С)= НОД(НОД(А, В), С). 8. Составьте программу нахождения НОК двух  чисел:  А*В= НОД(А, В)* НОК(А, В). 8. Найти сумму положительных нечётных чисел, меньших N. 9.   В  трёхзначном   числе   зачеркнули   старшую  цифру,   когда   полученное   двузначное   число умножили на 7, то получили данное число. Найти это число. 10. Сумма цифр трёхзначного числа кратна 7, само число также делится на 7. Найти все такие числа. 11. Среди четырёхзначных чисел выбрать те, у которых все четыре цифры различны. 12. Дано натуральное число. Найти все его делители и их сумму. 27 ОБРАЗЕЦ РЕШЕНИЯ ЗАДАЧИ С ПОМОЩЬЮ ЦИКЛИЧЕСКОГО  АЛГОРИТМА Задача.   Дано   N  кубиков, на которых написаны разные буквы. Сколько различных  N­ буквенных   слов   можно  составить  из   этих  кубиков.  (Слова  не  обязательно   должны иметь смысл) 1 этап     Математическое решение начало 2 этап      Блок ­ схема   Пусть N – обозначает количество букв, F – количество слов из этих букв,  то  F= N! =1*2*3*…*N НЕТ ДА Ввод  N F: =1 R: =1 R< =N F: = F*R R: =R+1 Вывод F конец 28 3 этап    На  алгоритмическом языке: 4 этап      На языке     Паскаль: алг                          слова; цел                        F,N,R ; нач                        ввод ( N);                                 F:=1; R:=1;                                 пока R<=N                         нц                                F:=F*R; R:=R+1;                        кц                                вывод (F); кон.      ­ Program Words; var  F,N,R:integer; begin writeln('Введите число букв'); readln(N); F:=1; R:=1; while R<=N do begin F:=F*R; R:=R+1; end; writeln('Из',N,’букв можно составить’,F,’слов’); readln; end.  Понятие   массива.   Примеры   решение   задач   с   использованием Часть   5. массивов. Основные темы: 5.1.  Понятие массива. Ввод массива различными способами. 5.2. Поиск в массиве элементов с заданными свойствами. 5.3. Двухмерные массивы: описание, ввод и вывод массивов по строкам. 5.4.  Решение задач с использованием  массивов. Цель занятия:        1.Сформировать понятие табличной величины (массива);        2. Получить навыки ввода массива различными способами;            3.   Получить  навыки  разработки   программ  по  работе    с  элементами  двухмерного массива. 5.1  Понятие массива. Ввод массива различными способами . 29 Массив   представляет   собой   таблицу   в   памяти   компьютера (имеющую название), состоящую  из  некоторого  числа  ячеек (7,13, 50,100). К значениям, находящимся  в  ячейках массива,   имеется   удобный   доступ,   необходимо   лишь   указать   имя   массива   и   индекс   ячейки (a[1],a[3], a[7]). Например, массив а состоит  из 10  ячеек (говорят, что размерность массива  равна  10)                             1   2    3   4   5   6   7   8   9  10 a    a[1]         a[4]                    a[9] Попытаемся понять, как работать с массивом на примере следующей задачи: Задача 1.Имеется 10 чисел. Необходимо найти их сумму. program zadacha;  const n=10;  var     s,i:integer;      a:array[1..n] of integer;                  {описание массива} Begin       for i:=1 to n do                                    begin      writeln('Введите  a[',i,']');     {Ввод  элементов  массива}        read (a[i]);        end;       writeln('Введённый массив');       for i:=1 to n do                                         {Вывод  эл.  массива}               write (a[i],’  ’);              s:=0;             for i:=1 to n do                                         {Нахождение суммы}       s:=s+a[i];                                                    writeln;  writeln('Сумма элементов массива =', s );        readln; End. В  данной задаче все элементы массива вводились с клавиатуры. Но ввод элементов массива можно осуществлять и по­другому: задавая  весь массив в разделе констант. Решим  задачу  вторым  способом: Массив  задан как  константа program zadacha;   const n=10;       var  a:array[1..n] of integer=(1,0,­2,7,8,9,9,4,0,­4);     s,i:integer;                                     Begin      writeln('Введённый массив');       for i:=1 to n do                                           {Вывод  эл.  массива}       write (a[i],’  ’);              s:=0;       for i:=1 to n do                                         {Нахождение суммы}       s:=s+a[i];                                                  writeln;  writeln('Сумма элементов массива =', s );        readln; 30 End. 5.2      Поиск в массиве элементов с заданными свойствами. Последовательный   поиск  —   элементы   массива   просматриваются   последовательно   один   за другим, при этом производится проверка соответствия элемента заданному свойству.                              1   2    3   4   5   6   7   8   9  10 a    a[1]         a[4]                     a[9] 1 4  9  6  7  13   19   12   5   8 k = 19 ;   k = 3  1 4 6 7 8 8 8 4 5 4        k = 8 Задача  2.   Имеется  n  целых   чисел.   Необходимо   найти   число   (элемент),   значение которого равно К. Если такой элемент в последовательности есть, то указать его порядковый номер. program zadacha2;  var     k,i,n,p:integer; a:array[1..30] of integer;                   {описание массива}  Begin     Write('Кол. элем. массива'); readln(n);        for i:=1 to n do                                    begin       write('Введите  a[',i,']');                      {Ввод  элементов  массива} readln (a[i]);  end;       writeln('Введённый массив');  for i:=1 to n do                                    {Вывод  эл.  массива}         write (a[i],’  ’);        writeln;  write('Введите К');readln(k);       p:=0;       for i:=1 to n do                                         {Нахождение суммы}  if a[i]=k then p:=i;                            if p=0             then writeln('элемента в табліце нет')             else writeln('элемент найден, индекс =',p);        readln;      End. В   данной задаче в случае  наличия в таблице нескольких элементов, равных К будет выдан наибольший индекс. Для поиска первого такого элемента  в таблице используют цикл:  i:=1; While (i<=n) and (a[i]<>k) do     i:=i+1; Задача 3. Решим  задачу поиска наибольшего элемента в таблице А из N вещественных чисел. Найти максимум и индекс этого элемента. program zadacha3;  var a:array[1..30] of real;        max: real;         j,i: integer;                                     Begin      Write('Кол. элем. массива'); readln(n);     {Ввод элементов массива} 1  4  9  6  7  13  19  12  5  8 1  4  6  7  8  8  8  4  5  4   31 …………………..    {Вsвод элементов массива} …………………..       max:=a[1]; j:=1;       for i:=2 to n do                                         {Поиск максимума}           if max99)and(a<=999) then writeln('является') else writeln('не является'); readln; end. Program Evklid; var M,N:integer; begin writeln('Введите числа M,N'); readln(M,N); while M<>N do begin if M>N then M:=M­N else N:=N­M; end; writeln('НОД=',M); readln; end. 50 ЗАДАЧА №4  Решить  квадратное уравнение   2 xa  xb c 0 Program zadacha2;   var a,b,c,x1,x2,d: real; Begin    write('Введите коэффициенты a,b,c :');  readln(a,b,c);   d:=b*b­4*a*c;   if d<0 then writeln('Нет корней.')             else begin                      if d=0 then begin                                          x1:=­b/(2*a);                                          x2:=x1                                        end                                else begin                                         x1:=(­b+sqrt(d))/(2*a);                                         x2:=(­b­sqrt(d))/(2*a)                                       end;                     write('    x1=',x1:5:2,'     x2=',x2:5:2)                   end;  readln; End. З А Д А Н И Я: Решить следующие уравнения:       а)  3х²  +  6х ­ 8 = 0;      б)   х²  ­  2х ­ 1 = 0;      в)  5х²  ­  4х + 3 = 0;      г)  4х²  +  4х ­ 1 = 0;       д)  5х²  ­  5х + 2 = 0 51 ЛИТЕРАТУРА 1  Карпиленко Е.В. Основы программирования: Учебник для СПО. – М.: Феникс,  2015 г    2  Лесневский. Объектно­ориентированное программирование для начинающих +  приложение. М.: Бином, 2014 г   3 Гуда А.Н., Колесников В.И. Информатика и программирование (компьютерный  практикум). М.: Издательский дом Дашков, 2015 г 4 Фаронов В.В. Turbo Pascal: Учебное пособие. СПб.: Питер­Юг, 2014 г   5  Баженова И.Ю., Сухомлин В.А. Введение в программирование: Учебное  пособие. М.: Бином, 2016 г 6. Материалы сайта http://www.metod­kopilka.ru. 52

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач

Язык программирования Паскаль (Pascal) Методика решения задач

Язык программирования Паскаль (Pascal)            Методика решения задач
Скачать файл