УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ По дисциплине «Основы программирования» Для специальности 230115 «Программирование в компьютерных системах»
методическая разработка по информатике и икт по теме

Усенко Анна Геннадьевна

УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ По дисциплине «Основы программирования»

Скачать:

ВложениеРазмер
Microsoft Office document icon metodicheskoe_posobie_po_osnovam_programmirovaniya.doc495.5 КБ

Предварительный просмотр:

МИНИСТЕРСТВО ОБРАЗОВАНИЯ СТАВРОПОЛЬСКОГО КРАЯ

ГБОУ СПО

НЕФТЕКУМСКИЙ РЕГИОНАЛЬНЫЙ ПОЛИТЕХНИЧЕСКИЙ КОЛЛЕДЖ

УЧЕБНО-МЕТОДИЧЕСКОЕ  ПОСОБИЕ 

По дисциплине «Основы программирования»

Для специальности 230115 «Программирование в компьютерных системах»

Разработала: преподаватель спецдисциплин Усенко А.Г.

2012 г.

УЧЕБНО-МЕТОДИЧЕСКОЕ  ПОСОБИЕ 

Язык программирования Паскаль (Pascal)

СОДЕРЖАНИЕ

Часть 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. Образцы решения задач с помощью различных алгоритмических структур.

Язык программирования Паскаль (Pascal)

Часть 1. Знакомство с языком программирования Паскаль (Pascal)

 Основные темы:

1. 1. Возникновение и назначение языка Паскаль;

1. 2. Структура программы на языке Паскаль;

1. 3. Операторы ввода, вывода, присваивания;

1. 4. Арифметические операции и основные математические функции;

Цель занятия:

  1. Сформировать первые сведения о языке Паскаль;
  2. Сформировать первые сведения о структуре программы на языке Pascal;
  3. Познакомиться с арифметическими операциями и основными  математическими функциями, с различными типами данных;

1. 1 Возникновение и назначение языка программирования Паскаль

        После того, как построен алгоритм решения задачи, составляется программа на определённом языке программирования.

Язык программирования - это фиксированная система обозначений для описания алгоритмов и структур данных.

        Среди современных языков программирования одним из самых популярных является язык Паскаль. Своё название он получил в честь великого французского математика и физика Блеза Паскаля, который в 1642г. изобрёл счётную машину для арифметических операций, так называемое "паскалево колесо". В конце 1968 г. профессор Вирт и его сотрудники из швейцарского федерального института технологии в Цюрихе разработали первую версию языка Паскаль. Спустя два года - первый вариант компилятора. В 1971 г. Вирт выпустил описание своего языка.

Создавая  язык Паскаль Вирт преследовал две цели:

  1. во-первых, разработать язык пригодный для обучения программированию как систематической дисциплины;
  2. во-вторых, реализация языка должна быть эффективной и надёжной.

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

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

1. 2 Структура программы на языке Паскаль

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

Программа на Паскале близка по своему виду к описанию алгоритма на алгоритмическом языке. Сравните алгоритм решения  задачи- деление простых дробей – с соответствующей программой на Паскале:

  1. На  алгоритмическом языке:

алг                            Деление дробей;

цел                           a, b, c, d, m, n;

нач                           ввод (a, b, c, d);

                                m:= a*d;

                                n:=b*c;

                                вывод( m, n);

кон.

  1. На языке Паскаль:

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)

Тело программы (блок) состоит из шести разделов:

  1. раздел меток;
  2. раздел констант;
  3. раздел типов;
  4. раздел переменных;
  1. раздел процедур и функций;
  2. раздел операторов.

Нарушать очерёдность нельзя.

Любой из разделов (кроме операторов) может отсутствовать.

Раздел меток

 label (служебное слово) за которым следует перечень меток разделённый запятыми

 Пример 3, 22 , 48, 7;

Раздел описания констант

 const (служебное слово)

Определение каждой константы содержит идентификатор константы, знак равенства, и значение, например: e=8,718281828; z=’252 группа’; Константы записываются своими десятичными значениями 2.3; 3.5 и т. д. Значение константы хранится в выделенной под нее ячейке памяти и остается неизменной в течение работы программы.

Раздел описания типов

 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.3 Операторы ввода, вывода, присваивания;

1. Ввод исходных данных с клавиатуры происходит по оператору read (read- читать) или readln (readln- читать строку):

read  (  <список переменных>);

       readln  (  <список переменных>);

Значения переменных пользователь набирает на клавиатуре в том порядке, в каком они указаны в списке, отделяя их друг от друга пробелами; одновременно они появляются на экране. В конце нажимается клавиша   .

readln – экранный курсор перемещается в начало новой строки; read- не перемещается.

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=18

вычитание        (-)

S:=a-b

S=10

умножение        (*)

S:=a*b

S=56

деление         (/)

S:=a / b

S=3.5

целочисленное деление

S:=a div b

S=3

остаток от  целочисленного деления

S:=a mod b

S=2

Нет возведения в степень. Если степень целая, её заменяют умножением: а3        ↔        S:=a*a*a.

 Для возведения числа в произвольную степень используется следующее соотношение:  

 xy=exр(y*ln(x)), так как  xy=e ln(x ) =eylnx  .

  Основные математические функции

sqr(x)

возведение X в квадрат

sqrt(x)

корень квадратный из X

int(x)

целая часть X (результат - вещественное число)

 trunc(x)

целая часть X (результат - целое число)

round(x)

округляет число X до целого (результат - целое число)

frac(x)

дробная часть от X

abs(x)

модуль от X

pi

выдаёт число 3.1415926…..  (19 знаков после запятой)

sin(x)

синус X

cos(x)

косинус X

arctan(x)

арктангенс X

 exp(x)

возведение числа е=2.7183 в стерень X (ех)

 ln(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)).

  1. Запишите арифметические выражения на языке Паскаль:

а)z=3+x2-3x3;                б) d=x (sin x + cos(x2) + |x|);                

в) l = 2 π r;                г) 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. Назовите стандартные типы данных.
  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);

      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.Составим программу вычисляющую        s = а / b   и   p=a*b.

program zadacha3;

var a,b,s,p:real;

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 ');

readln(x);

writeln('введите число y ');

readln(y);

writeln('введите число a ');

readln(a);

s:=abs(a)+sqrt(x+sqr(y));

writeln('s =',s);

      Readln;

End.

Задача 5. Задана сторона куба. Вычислить объем куба и площадь боковой поверхности.

program zadacha5;

var a,v,s:real;                    {описание переменных}

Begin  writeln('Введите сторону куба');                {ввод данных}

read(a);

v:=a*a*a;                        (*вычисление объёма*)

s:=6*a*a;                        {вычисление площади поверхности}

                                {вывод результатов}

writeln('Объём = ',v:8:3,'  Площадь поверхности = ',s:8:3);

      Readln;

End.

Задача 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);

Кон.





На языке Паскаль:

program   z6;

var            a,b,c,d,s:longint;

Begin      writeln('введите число  a');

                 readln(a);

          b:=a*a;                                {вторая степень}

         с:=b*b;                                {4 степень}

         d:=c*a;                                {5 степень}

         s:=d*d*d;                                {15  степень}

       writeln('результат = ',s);

       Readln;

Еnd. 

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;                {или           c2:=(a div 10) mod 10;}

c3:=a mod 10;

writeln('первая цифра -',c1);

writeln('вторая цифра -',c2);

writeln('третья цифра -',c3);

  Readln;

Е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<

Блок - схема

На языке Паскаль

Program     avto;

Var            f, ned: integer;

Begin        Writeln (‘Введите         грузоподъемность поезда’);

              Readln (s);

      Writeln (‘Введите грузоподъемность автомобилей’);

               Readln (b);

               kol:= s div b;

      Writeln (‘Кол-во автомобиль = ’, kol);

              Readln;

end.

Часть 2. Вопросы для повторения:

  1. Какая команда служит для ввода данных?  Для вывода данных?
  2. Чем отличается вывод информации на экран компьютера оператором  write( )  от вывода оператором  writeln( ) ?
  3. Как вывести на экран текст?
  4. Можно ли вывести на экран несколько переменных или текстов одним оператором writeln()?
  5. Какие символы используются для размещения комментариев в программе?
  6.  Чем  отличается операция  / от операции div?
  7. Есть ли в Pascal операция возведения в степень?
  8. Придумайте формулу для нахождения предпоследней цифры числа?
  9. Можно ли производить операции mod и div над переменными, которые описаны как real?

Часть 2. Задания для самостоятельной работы:

  1. Даны два действительные числа. Найти среднее арифметическое этих чисел.
  2. Имеются три числа. Вычислите их произведение.
  3. По заданным сторонам прямоугольника a и b вычислите его периметр и площадь.
  4. Дана сторона a квадрата. Вычислите периметр, длину диагонали и площадь квадрата.
  5. Даны стороны a и b прямоугольника.
  6. Вычислите периметр, длину диагонали и площадь  прямоугольника.
  7. Дана сторона a равностороннего треугольника. Вычислите периметр и площадь треугольника.                                        
  8. Дана длина ребра куба. Вычислите диагональ куба, объём куба и площадь его боковой поверхности.
  9. Три сопротивления R1, R2, R3 соединены параллельно. Найдите сопротивление соединения.
  10. Треугольник задан своими сторонами a, b, c. Используя формулу Герона

 (s = √ p(p-a)(p-b)(p-c), где p - полупериметр p=(a+b+c)/2 )  вычислите площадь треугольника.

  1. Вычислите расстояние d между двумя точками с координатами x1, y1, x2, y2 (расстояние

 d = √ (x1-x2)2+(y1-y2)2    ).

  1. Дано действительное число x. Не пользуясь никакими другими арифметическими операциями, кроме умножения, сложения и вычитания, вычислить 2x4 - 3x3 + 4x2 - 5x +   Разрешается использовать не более 4 умножений и 4 сложений и вычитаний.
  2. Человеку сегодня исполнилось R лет. Сколько ему дней? Часов? Минут? Секунд? (Високосные годы не учитывать)
  3. После начала некоторого эксперимента прошло t часов m минут и k секунд. Сколько всего секунд длится эксперимент?
  4.  Задано двухзначное число. Чему равна последняя цифра числа?
  5. Найдите сумму цифр заданного трёхзначного  числа.
  6. Найдите цифры заданного четырёхзначного  числа.
  7. С начала суток прошло k минут. Определите сколько сейчас часов и минут.
  8. Идёт k-ая секунда суток. Определить который сейчас час (в часах, минутах и секундах).
  9. Робинзон Крузо провёл на острове f дней. Сколько полных недель он пробыл на острове?
  10. Поезд перевозит s тонн груза. Сколько автомобилей грузоподъемностью  b тонн (b<
  11. Дано действительное число a. Не пользуясь никакими другими операциями кроме умножения, получить:

a13 за пять операций;

a21 за шесть операций;

a3 и a10 за четыре операции.

  1. Задано вещественное число f. Вычислите разность целой и дробной части числа f.             24Даны числа n, k, m. Вычислите x и у, если:

а)x = n (sin k + cos(m-2));               б)     x =2n4+6n3-n2+3n-9;           в)

     24. Вычислите площадь прямоугольной площадки для промышленного комплекса длиной                                 400 метров и шириной 80 метров.

25. Оборона занимает прямоугольный участок местности. Стороны прямоугольника равны    соответственно 12,5 км и 24 км. Одна из наибольшей стороны прямоугольника является передним краем обороны. Определить площадь участка обороны в гектарах.

 

 26. Найдите и исправьте ошибки в программе:

program    zadacha;

var             a,b:real; c,e:integer;

Begin        writeln('Введите два целых числа');

                 readln(a);

               c:=a/b;

     d:=a mod b;

     e:=c+d;

    writeln(c);writeln(d);writeln(e);

End.

   27. Чему равен результат работы программ при a = 253:

program zadacha2_12a;

var a,x,y,z,b:integer;

Begin

readln(a);

x:=a div 100;

y:=(a div 10) mod 10;

z:=a mod 10;

b:=x*100+z;

writeln(b);

Readln;

End.

Сократите длину записанных выше программ, сохранив их назначение.

ОБРАЗЕЦ РЕШЕНИЯ ЗАДАЧИ С ПОМОЩЬЮ ЛИНЕЙНОГО АЛГОРИТМА

Задача. По заданным сторонам прямоугольника a и b вычислите его периметр и площадь.

1 этап     Математическое решение

2 этап      Блок - схема


P=(a+b)*2; S=a*b



3 этап    На  алгоритмическом языке:

4 этап      На языке Паскаль:

алг                            прямоугольник;

цел                           a, b,S,P;

нач                           ввод (a, b,);

           S=a*b; P=(a+b)*2;

                                вывод(S,P );

кон.

Program      pryamoygolnik;

Var              a, b,S,P: integer;

Begin          writeln('Введите стороны    прямоугольника’);

                    readln(a, b);

                    S=a*b; P=(a+b)*2;

                    writeln(S,P);

                   Readln;

End.

Часть 3.    Условный оператор. Решение задач на ветвление.

 Основные темы:

3.1.  Оператор ветвления на Паскале. Программирование полного и неполного ветвления;

3.2. Сложные ветвящиеся алгоритмы. Логические операции.

Цель занятия:

  1. Сформировать понятие о полном и неполном условном операторе;
  2. Получить навыки  использования условного оператора;
  1. Сформировать понятие о составном операторе;
  2. Получить навыки использования операторных скобок;
  3. Закрепить знания и умения по составлению программ на ветвления.

Если в зависимости от первоначального условия задачи, должны выполняться различные выражения, то мы будем использовать условный оператор- оператор ветвления. Условный оператор может быть записан в полной и неполной форме.

полная форма условного оператора

if  < условие>  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

writeln('Введите  число а');

readln(a);

if a<0    then k:='отрицательное' else k:=' положительное';

writeln('число  ',a,' ; ',k,');

       readln;

End.

Задача 5.  Дано три числа x, y, z. Вычислить сумму только положительных чисел из трех данных.

program zadacha5;

var        x,y,z,sum:real;

Begin

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;

Группу операторов находящуюся внутри операторных скобок будем называть составным оператором. Фактически, весь раздел операторов, внутри операторных скобок, представляет собой один составной оператор.

Для того, чтобы при большом количестве операторных скобок, программа была более читаемая, 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

else writeln('неверные исходные данные');

   readln;

End.

Часть 3.  Вопросы для повторения:

Вопросы для повторения:

1.Что такое составное условие?

2.В чём отличие составного условия от простого?

3.Объясните исполнение оператора if.

4.Какие союзы используются при написании составного условия?

5.В каких случаях после служебных слов then и else нужно писать begin … end,  а в каких нет?

6.Что представляет собой составной оператор?

7.Почему end желательно записывать под begin?

Часть 3.  Задания для самостоятельной работы:

  1. Задано x.   Вычислить у:

                x2-5,          если        x<0 ,

    y  =        

                  |x-3|,         если        x>=0.

  1. Даны  два  числа.  Найти меньшее число из  них.
  2. Даны  три  числа.  Найти  минимальное число.
  3. Задано натуральное число a. Является ли оно чётным?  
  4. Задано натуральное число a. Является ли оно кратным 7?
  5. Задано натуральное число a. Заканчивается ли оно на 0?  
  6. Дано трехзначное число. Кратна ли сумма  его цифр шести?
  7. Дано двузначное число. Является ли сумма его цифр
  1. однозначным числом;

b)   двузначным числом.

9. Дано  двухзначное число. Являются ли обе цифры числа чётными?

10.Даны два вещественных числа. Уменьшить первое число в пять раз, если оно больше второго по абсолютной величине.

11.Яявляется ли число трехзначным, у которого первая цифра равна последней.

12.Дано трехзначное число. Кратна ли сумма  его цифр семи?

ОБРАЗЕЦ РЕШЕНИЯ ЗАДАЧИ С ПОМОЩЬЮ ВЕТВЯЩЕГОСЯ  АЛГОРИТМА

Задача.  Даны два вещественных числа. Уменьшить первое число в пять раз, если оно больше второго по абсолютной величине.

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.



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.


Часть 4.    Алгоритмы с повторениями. Программирование циклов на Паскале.

Основные темы:

4.1.  Понятие о циклах. Счётный цикл FOR;

4.2. Цикл с предусловием WHILE; Задача о перестановке букв.

4.3. Цикл с постусловием REPEAT…UNTIL;

4.4. Решения  задач с использованием  алгоритмов с повторениями.

 Цель занятия:

        1.Сформировать понятие о циклах;

         2.Научиться использовать счётный цикл FOR;

         3.Познакомиться с циклами WHILE и REPEAT;

           4.Получить и закрепить навыки решения алгоритмов с повторениями.

           5.Закрепить знания по использованию различных типов циклов;

4.1  Понятие о циклах. Программирование циклов на Паскале. Счётный цикл FOR .

В языке Паскаль существует  три  различных  оператора  с  помощью  которых  можно  запрограммировать  повторяющиеся  фрагменты  программы (три  оператора  цикла):

- счетный  цикл  FOR;

- цикл  WHILE  с  предусловием;

- цикл  REPEAT...UNTIL  c  постусловием.

Цикл- это команда исполнителю многократно повторить указанную последовательность команд.

На первом нашем занятии постараемся познакомиться и научимся использовать счётный цикл FOR .

Переменная внутри цикла изменяется автоматически от k до n  (n>k)  с шагом 1.

Формат записи цикла:                 for i:=k to n do

или

от n до k  (n>k)  с шагом  -1.

Формат записи цикла:                 for i:=n dawnto k do

Если в цикле должны выполняться несколько операторов, то используем операторные скобки:         begin …. end; 

Цикл FOR удобно использовать тогда, когда точно известно количество повторений.

Рассмотрим несколько примеров:

Задача 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

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;

  1. Как в теле цикла выполнить несколько операторов?

4.1.  Задания для самостоятельной работы:

  1. Найти сумму всех нечётных трёхзначных чисел.
  2. Найти сумму положительных кратных 7 чисел, меньших 100.
  3. Найти все числа, которые делятся на N среди:
  1. всех двухзначных чисел;
  2. всех трёхзначных чисел.
  1. Составить программу вычисления суммы квадратов чисел от 1 до  n.
  2. Среди двузначных чисел найти те, сумма квадратов цифр которых делится на 13.
  3. Найти все делители для заданного числа n.
  4. Дано натуральное число n. Вычислить:

a)  2n;                        b)  3n                        c)   n!;

  1. Среди четырёхзначных чисел выбрать те, у которых:
  1.  все четыре цифры различны (например: 3167, 9012);
  2. имеются три одинаковые цифры (например: 1311, 7779);
  3. цифры попарно различны (например: 1331, 7979, 2255);
  4. цифры образую возрастающую последовательность (например: 1389, 4678);

4.2  Понятие о циклах. Программирование циклов на Паскале.

Цикл с предусловием WHILE( «цикл - пока»).

Этот цикл удобно использовать тогда, когда заранее неизвестно число повторений.

While <логическое выражение> do <оператор>;

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

 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.

Задача о перестановке букв.

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

  1. Количество различных комбинаций из N предметов, получаемых изменением их порядка, называется числом перестановок. Это число выражается функцией от N, которая называется факториалом и записывается так:

N! = 1*2*3*…*n (читается – N факториал).

                

Например. Сколько различных трехзначных чисел может быть получено в результате перестановки цифр:  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. Будет ли остановлено выполнение данного цикла? Почему?

s:=0;   i: =1;

while i<=4 do

              s:=s+i;

Часть 4.  Задания для самостоятельной работы:

  1. Дано натуральное число n. Вычислить:

.

  1. Даны действительное число a, натуральное число n. Вычислить:
  1. an;
  2. a(a + 1) …(а + n – 1).
  1. Дано натуральное число n. Вычислить произведение первых n сомножителей:
  1. ;
  2.  .
  1. Найти все двузначные числа, которые содержат цифру N.
  2. Составьте программу возведения натурального числа в квадрат, используя следующую закономерность:

12 = 1

22 = 1 + 3

32 = 1 + 3 + 5

42 = 1 + 3 + 5 + 7

. . .

n2 = 1 + 3 + 5 + 7 + 9 + … + (2n – 1).

  1. Составить программу возведения заданного числа в третью степень, используя следующую закономерность:

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. Дано натуральное число. Найти все его делители и их сумму.

ОБРАЗЕЦ РЕШЕНИЯ ЗАДАЧИ С ПОМОЩЬЮ ЦИКЛИЧЕСКОГО  АЛГОРИТМА

Задача.  Дано  N кубиков, на которых написаны разные буквы. Сколько различных N- буквенных слов можно составить из этих кубиков. (Слова не обязательно должны иметь смысл)


1 этап     Математическое решение


2 этап      Блок - схема


  Пусть N – обозначает количество букв,

F – количество слов из этих букв,

то

F= N! =1*2*3*…*N







































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  Понятие массива. Ввод массива различными способами .

        Массив  представляет  собой  таблицу  в  памяти  компьютера (имеющую название),  состоящую  из  некоторого  числа  ячеек (7,13, 50,100). К значениям, находящимся  в  ячейках  массива, имеется удобный доступ, необходимо лишь указать имя массива и индекс ячейки (a[1],a[3], a[7]).

Например, массив а состоит  из 10  ячеек (говорят, что размерность массива  равна  10)

                           

Попытаемся понять, как работать с массивом на примере следующей задачи:

Задача 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;
    a:array[1..n] of integer=(1,0,-2,7,8,9,9,4,0,-4)
var     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;

End.

5.2  Поиск в массиве элементов с заданными свойствами.

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

                           

Задача 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);

    {Ввод элементов массива}

…………………..

   {Вsвод элементов массива}

…………………..

      max:=a[1]; j:=1;

      for i:=2 to n do                                         {Поиск максимума}

          if max

                 begin

                    max:=a[i];

                     j:=i;                      

                  end;

      writeln;  

      writeln('Макс. элемент массива =', max );

      writeln('Индекс макс. элемента =', j );

 readln;    

End.

    Алгоритм:

  1. Условно считаем первый элемент наибольшим (максимальным). Запоминаем его значение (a[1]) и его индекс (=1).
  2. Cравниваем значение максимального с очередным элементом таблицы (i), начиная со второго элемента и до последнего.
  3. При нахождении элемента с большим значением меняем значение максимального на найденный элемент и запоминаем его индекс.
  4. При наличии в таблице нескольких минимальных и при условии max

5.2  Задания для самостоятельной работы:

  1. Имеется целочисленный массив, состоящий из 15 элементов

      найти минимальный элемент и его индекс.

  1. В массиве хранится информация о количестве осадков (целые  числа), выпавших за каждый день прошедшей недели. Вывести   номера дней, когда осадков не было.
  1. Дан массив целых чисел из n элементов. Найти и  вывести номера элементов, заканчивающихся цифрой 0.
  2. Рост N учеников класса представлен в виде массива. Найти  количество учеников, рост которых не превышает значения R.
  3. В массиве записаны результаты N игр футбольной команды (если игра закончилась выигрышем данной команды, то записано число 3, проигрышем - число 2, вничью - 1). Определить количество выигрышей, проигрышей, ничьих.
  4. В массиве хранится информация о росте N человек. Определить, на сколько рост самого высокого человека превышает рост самого низкого.
  5. В массиве хранится информация о стоимости 1 кг N видов конфет. Определить порядковый номер самого дешевого вида конфет. Если таких несколько, то должен быть найден индекс:

           А) первого из них;

           Б) последнего из них.

  1. В массиве хранится информация о стоимости каждой из M книг. Определить количество самых дешевых книг (с одинаковой минимальной ценой).

5.3 Двухмерные массивы: описание, ввод и вывод массивов по строкам.

Двухмерные массивы имеют строки и столбцы. Элемент массива задается номером строки и номером столбца, на пересечении которых он находится                          

Если количество строк = количеству столбцов массив называется квадратной матрицей, в противном случае - прямоугольной.

Задача 4. Задана прямоугольная матрица размера n  строк и m столбцов.

Заполнить ее целыми числами. Распечатать по строкам. Найти и вывести сумму всех элесментов и их среднее арифметическое значение.

program zadacha4;

var     i, j, s,m,n : integer;

     sr : real;

     a:array[1..10, 1..20] of integer;                  Begin

     Write('Кол. строк, кол. столбцов?');

     readln( n,m);

     for i:=1 to n do

     for j:=1 to m do                          

     begin

      write('Введите  a[', i , ',' , j , ']');                        

      readln (a[ i, j ]);                                            

      end;

      writeln('Введённый массив');

      for i:=1 to n do                                          

      begin

      for j:=1 to m do

      write (a[ i, j ],’  ’);

      writeln;

      end;

      s:=0;

      for i:=1 to n do

     for j:=1 to m do

     s:=s + a[ i , j ];

     writeln('Сумма =', s);

     sr:=s / (n*m);

      writeln('Средее =', sr:8:3);

      readln;

End.

 

5.3 Задания для самостоятельной работы:

1. Имеется целочисленный массив n*m элементов. Найти номер строки с минимальной суммой модулей элементов.

2. Имеется целочисленный массив n*m элементов. Найти   индексы максимального элемента таблицы и значение   максимума.

3.Имеется целочисленный массив n*m элементов. Каких элементов в массиве больше отрицательных или положительных?

4. Имеется целочисленный массив n*m элементов.  Сообщить есть ли в таблице отрицательные элементы.

Часть 5.   Вопросы для повторения:

1.Что такое массив?

2. Что такое элемент массива?

3. Что такое индекс массива?

4.Что такое размерность массива?

5.Зачем  нужны  массивы?

6. Как можно обратиться к ячейке массива?

7. Какого типа могут быль элементы массива?

8. Какого типа может быть индекс массива?

9. Как можно осуществить ввод элементов массива?

Часть 6. Образцы решения задач с помощью различных алгоритмических структур.

Задача 1.  Робинзон Крузо провел на острове f дней. Сколько полных недель он пробыл на острове?  (блок-схема, программа на Паскале).

1.Блок-схема

        

2. Программа на Паскале.

Program Z1;

var f, ned: integer;

begin        Writeln (‘Введите количество дней’);

        Readln (f);

        ned:= f div 7;

Writeln (‘Кол-во недель = ’, ned);

        Readln;

end.

Задача 2.  Вычислить площадь треугольника по двум заданным сторонам a, b и углу между ab. Для вычисления площади треугольника S воспользуемся формулой: S=1/2ab sin ab.

.

 Программа на Паскале.

 program Str;

 var  a, b, ab: real;

 begin   writeln (‘Введите стороны треугольника  a,b и угол  ab:’);

           readln (a,b,ab);

 S:=a*b*sin(ab*pi/180)/2;

           writeln (‘S=‘,S:8:2);

readln ;

end. 

Задача 3.  Вычислить значение функции при условии, что:

Программа на Паскале.

program  Z3;

var x, y : real;

          begin      write(‘Vvedite x:  ‘);   

          readln(x);

          if  ( x <= 0 ) then  y: = exp(x)

                            else if ( x > 1 ) then y:= ln(x)

                                                   else y:=0;

          writeln(‘результат:’); 

          write(‘pri x= ‘, x:7:2,’  y= ‘, y:7:2);

readln ;

          end.

 Задача 4. Дано двухзначное число. Дайте характеристику числа по следующему      плану:

         - сумма цифр числа;

        - число четное (нечетное);

        - число больше (меньше) пятидесяти;

        - первая цифра равна (неравна) второй цифре.

 Написать программу на Паскале.

 Программа на Паскале.

Program Z4;

var a, des, ed, s: integer;

begin        Writeln (‘Введите число’);

        Readln (a);

des: = a div 10;

               ed: = a mod 10;

                s:= des + ed;

        Writeln (‘s=’, s);

        if a mod 2 = 0  then Writeln (‘четное’) else Writeln (‘ нечетное’);

if a > 50  then Writeln (‘больше 50’) else Writeln (‘ меньше 50’);

if a mod 2 = 0  then Writeln (‘1 цифра = 2-ой’) else Writeln (‘1 цифра ≠ 2-ой’);

        Readln;

end.

Задача 5. Дано трехзначное число. Входит ли в него цифра 4 (блок-схема, алгоритмический язык, программа на Паскале)?

1. Алгоритмический язык

алг задача 5 (цел  a, sot, des, ed)

        арг a

        рез 

нач  ввод a

        sot:= a div 100

       des: = a div 10

       ed: = a mod 10        

если sot = 4 или des = 4 или ed = 4

                        то входит

                        иначе не входит

                все

кон

2.  Блок – схема

3. Программа на Паскале.

Program Z5;

var a, sot, des, ed: integer;

begin        Writeln (‘Введите число’);

        Readln (a);

            sot:= a div 100;

des: = a div 10;

               ed: = a mod 10;

                if (sot = 4) or (des = 4) or (ed = 4) then Writeln (‘входит ’) else Writeln (‘ не входит ’);

        Readln;

end.

 Задача 6. Найти все числа, которые делятся на N среди всех двухзначных чисел (блок-схема, алгоритмический язык, программа на Паскале)

1. Алгоритмический язык

алг задача6 (цел   n, I)

        арг n

        рез  

нач ввод n        

        нц для I от 10 до 99

                если I mod n =0

                        то вывод I

                все

         кц     

кон                                                              

         2.  Блок – схема

3. Программа на Паскале.

 Program Z6;

var  I, n: integer;

begin        Writeln (‘Введите n’);

        Readln (n);

                For I:=10 to 99 do

                        begin

                                if I mod n =0 then  Writeln (‘I’);

                        end;

Readln;

end.

Задача 7. Даны действительные числа a,b (a ≠ b). Меньшее из этих двух чисел заменить их полусуммой, а большее – их удвоенным произведением (блок-схема, алгоритмический язык, программа на Паскале) 

1. Алгоритмический язык

алг задача7 (цел  a, b, sa, sb)

        арг a, b

        рез a, b

нач ввод a

       sa:= a

       sb:=b

если a > b

                        то b:= sa +sb, a:= sa*sb

                        иначе a:= sa +sb, b:= sa*sb

                все

        вывод a,b

кон

2. Блок - схема

        

3. Программа на Паскале

Program Z7;

var a, b, sa, sb: integer;

begin        Writeln (‘Введите 2 числа’);

        Readln (a,b);

          sa:= a;

          sb:=b;

        if a > b then

begin

                                 b:= sa +sb;

a:= sa*sb;

                        end

                else

                        begin

a:= sa +sb;

b:= sa*sb;

                        end;

                Writeln (‘первоначальное числа а = ', sa, 'b=',sb);

Writeln (‘полученные числа а = ', a, 'b=', b);

        Readln;

end.

 Задача 8. Найти сумму положительных кратных 7 чисел, меньших 100.

 Программа на Паскале.

Program Z8;

var  I, S: integer;

begin

        clrscr;

        S: = 0;

                For I:=7 to 100 do

                        begin

                                if I mod 7 =0 then S: = S + I;

                        end;

        Writeln (‘S=’, S);

Readln;

end.

 Задача 9. Вычислить сумму всех нечетных чисел от нуля до 100.

program summa;

var i,s:byte;

begin

i:=1;

s:=0;

while i<=100 do begin

                                 s:=s+i;

                                 i:=i+2

                                end;

writeln(‘Сумма нечетных чисел от 1 до 100=’,s);

Readln;

end.

Задача  10.Вычислить     для любого Х, с проверкой корректности ввода.

    Program Z10;

    var x,y: real;

    Begin     repeat  write('X='); readln(x);

                  until (x<>0);

                  y:=1/x;

                 writeln('x=',x,' y=',y);

Readln;

End.

Задача  11.Найти произведение чисел делящихся на 2 от 10 до 20.

Program Z11;

  var x:integer; P:real;

Begin

  p:=1;                  { начальное значение произведения }

  for x:=10 to 20 do

    if x mod 2=0 then p:=p*x;

  write('Произведение чисел, делящихся на 2 от 10 до 40 равно P=',p);

Readln;

End.

Задача  12.Найти сумму ряда для i от 1 до 15, каждый элемент которого выражается

по формуле   , то есть найти сумму: 6+9+14+...

1 способ: Счётный цикл FOR.

Program Summa1;                        

  var s,i,n: integer;                                                                                                Begin

   s:=0; i:=1; n:=15; h:=1;

  FOR i:=1 TO n DO s:=s+(i*i+5);                            

  write('Сумма числового ряда S=',s);

Readln;                

End.

2 способ: Цикл с предусловием WHILE.

Program Summa2;

 var s,i,n,h: integer;

Begin

    s:=0; i:=1; n:=15; h:=1;

WHILE i<=n DO

 begin

s:=s+(i*i+5);

i:=i+h;

 end;

write('Сумма ряда S=',s);

Readln;

End.

3 способ: Цикл с постусловием REPEAT…UNTIL.                        

Program Summa3;                                        

  var s,i,n,h: integer;                                            

Begin                                                        

  s:=0; i:=1; n:=15; h:=1;

  REPEAT

    s:=s+(i*i+5);

    i:=i+h;

  UNTIL i>n;

  write('Сумма числового ряда S=',s);

Readln;

End.

Задача 13. Дан одномерный массив, содержащий  семь целых чисел. Найти значение максимального элемента.

             program massiv1;

mas  :array[1..7] of integer;

i, max,  n: integer; {mas – массив чисел; n – размер массива,

i – переменная цикла,

max – значение наибольшего элемента}

begin          n:=7;

          write(‘ВВЕДИТЕ ЭЛЕМЕНТ МАССИВА:’);

          for i: = 1 to n do  readln(mas[i]);

          max: = mas[1];            { устанавливаем начальное значение max

равное значению первого элемента массива}

          for i: = 2 to n do if max < mas[i] then max: = mas[i];

{последовательно просматриваем элементы, и если очередной mas[i] оказывается больше max, следовательно max: = mas[i]}

          writeln(‘max=’, max:4);

Readln;

end.

Задача 14. Дан двумерный массив 2х3. Найти значение минимального элемента.

program massiv2;

mas  :array[1..2, 1..3] of real;

                min: real; i, n, m: integer;            {mas – массив чисел; n,m – размеры массива,

i, j – переменные цикла,

min – значение наименьшего элемента}

begin          n:=2; m:=3;

          write(‘ВВЕДИТЕ ЭЛЕМЕНТЫ  МАССИВА:’);

          for i: = 1 to n do

         for j: = 1 to m do  readln(mas[i]);

          min: = mas[1,1];           { устанавливаем начальное значение min

равное значению первого элемента массива}

          for i: = 1 to n do

for j: = 1 to m do if min > mas[i,j] then min: = mas[i,j];

{последовательно просматриваем элементы, и если очередной min[i] оказывается меньше min, следовательно min: = mas[i,j]}

          writeln(‘min=’, min:8:2);

Readln;

end.

Приложение 1.

 Тестовые разноуровневые  задания  по теме:

«Язык программирования Паскаль»

Вариант 1

Выполните задания № 1 и 2, по технологии решения задач с помощью компьютера.

№1 2◦. Дана сторона квадрата a. Найти его площадь S = a2.

№2f1. Дано целое число. Если оно является положительным, то прибавить к нему 1; в противном случае не изменять его. Вывести полученное число.

№3      Какое значение будет принимать переменная Х, после выполнения фрагмента программы:

f:=5; d:=7;

If   f>=d   then   x:=f   else  x:=d

1) 5;                 2) 6;                 3) 7;                 4) 1

Вариант 2

Выполните задания № 1 и 2, по технологии решения задач с помощью компьютера.

№112. Даны катеты прямоугольного треугольника a и b. Найти его периметр P:

P = a + b + c.

№2f2. Дано целое число. Если оно является положительным, то прибавить к нему 1; в противном случае вычесть из него 2. Вывести полученное число.

№3      Какое значение будет принимать переменная Х, после выполнения фрагмента программы:

f:=17; d:=5;

If   f>=d   then   x:=f   else  x:=d

1) 5;                 2) 12;           3) 2;                 4) 17

Вариант 3

Выполните задания № 1 и 2, по технологии решения задач с помощью компьютера.

№1n3◦. Даны стороны прямоугольника a и b. Найти его периметр P = 2∙(a + b).

№2f6◦. Даны два числа. Вывести большее из них.

№3      Какое значение будет принимать переменная Х, после выполнения фрагмента программы:

f:=10; d:=10;

If   f>=d   then   x:=f   else  x:=d

1) 10;         2) 20;         3) 30;         4) 1

Вариант 4

Выполните задания № 1 и 2, по технологии решения задач с помощью компьютера.

№1n4◦. Дан диаметр окружности d. Найти ее длину L = π∙d.

           В качестве значения π использовать 3.14.

№2If7. Даны два числа. Вывести порядковый номер меньшего числа из них.

№3       Какое значение будет принимать переменная Х, после выполнения фрагмента программы:

a:=3; b:=4;

If   a>b   then   x:=a*b   else  x:=a-b

1) 12;           2) -1;                 3) 3;                 4) 4

Вариант 5

Выполните задания № 1 и 2, по технологии решения задач с помощью компьютера.

№1 12. Даны катеты прямоугольного треугольника a и b. Найти его гипотенузу:

с =.

№2If8. Даны два числа. Вывести меньшее число  из них.

№3       Какое значение будет принимать переменная Х, после выполнения фрагмента программы:

a:=4; b:=4;

If   a>b   then   x:=a*b   else  x:=a-b

1) 1;                 2) -1;                 3) 0;                 4) 2

Вариант 6

Выполните задания № 1 и 2, по технологии решения задач с помощью компьютера.

№1n 6◦. Даны длины ребер a, b, c прямоугольного параллелепипеда. Найти его объем V = a∙b∙c

№2f10. Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной сумму этих значений, а если равны, то присвоить переменным нулевые значения. Вывести новые значения переменных A и B.

№3    Какое значение будет принимать переменная Х, после выполнения фрагмента программы:

a:=6; b:=4;

If   a>b   then   x:=a*b   else  x:=a-b

1) 20;                 2) 24;                 3) 26;                 4) 10

Вариант 7

Выполните задания № 1 и 2, по технологии решения задач с помощью компьютера.

№1 6◦. Даны длины ребер a, b, c прямоугольного параллелепипеда. Найти площадь его поверхности S = 2(а∙b + b∙c + a∙c).

№211. Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной большее из этих значений, а если равны, то присвоить переменным нулевые значения. Вывести новые значения переменных A и B.

№3      Какое значение будет принимать переменная Х, после выполнения фрагмента программы:

a:=53; b:=14;

If   a<=b   then   x:=a+b   else  x:=2*a-4*b

1) 53;                 2) 67;                 3) 106;                 4) 50

Вариант 8

Выполните задания № 1 и 2, по технологии решения задач с помощью компьютера.

№15◦. Дана длина ребра куба a. Найти объем куба V = a3 

№2◦.  Даны три числа. Найти наименьшее из них.

№3     Какое значение будет принимать переменная Х, после выполнения фрагмента программы:

a:=13; b:=13;

If   a<=b   then   x:=a+b   else  x:=2*a-4*b

1) 26;                 2) 50;                 3) -26;                 4) 62

Вариант 9

Выполните задания №1 и 2, по технологии решения задач с помощью компьютера.

№1n5◦. Дана длина ребра куба a. Найти площадь его поверхности  S = 6∙a2.

№2 14. Даны три числа. Вывести наименьшее из данных чисел.

№3       Какое значение будет принимать переменная Х, после выполнения фрагмента программы:

a:=14; b:=53;

If   a<=b   then   x:=a+b   else  x:=2*a-4*b

1) 53;                 2) 67;                 3) 50;                 4) 106

Вариант 10

Выполните задания №1 и 2, по технологии решения задач с помощью компьютера.

№1n8◦. Даны два числа a и b. Найти их среднее арифметическое: (a + b)/2.

№2   4. Даны три числа. Вывести наибольшее из данных чисел.

№3       Какое значение будет принимать переменная Х, после выполнения фрагмента программы:

a:=5; b:=4; c:=3;

If   a>b   then   x:=a+b  

else  begin a:=b+c;  x:=a - 3*b  end;

1) 10;              2) 9;         3) 7;                 4) 12

Вариант 11

Выполните задания №1 и 2, по технологии решения задач с помощью компьютера.

№1n 9. Даны два неотрицательных числа a и b. Найти их среднее геометрическое, то есть квадратный корень из их произведения: a∙b.

№223◦. Даны целые положительные числа A и B. Найти их наибольший общий делитель (НОД), используя алгоритм Евклида:

НОД(A, B) = НОД(B, A mod B),    если В ≠ 0;        НОД(A, 0) = A

№3       Какое значение будет принимать переменная Х, после выполнения фрагмента программы:

a:=7; b:=5; c:=5;

If   a>b   then   x:=a+b  

else  begin a:=b+c;  x:=a - 3*b  end;

1) х=10;         2) х=5;                 3) х=12;                 4) х=6

Вариант 12

Выполните задания №1 и 2, по технологии решения задач с помощью компьютера.

№110◦. Даны два ненулевых числа. Найти частное их квадратов.

№2 1◦. Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти длину незанятой части отрезка A.

№3       Какое значение будет принимать переменная Х, после выполнения фрагмента программы:

a:=4; b:=5; c:=3;

If   a>b   then   x:=a+b  

else  begin a:=b+c;  x:=a - 3*b  end;

1) 9;                 2) 7;                 3) 12;                4) -7

Вариант 13

Выполните задания №1 и 2, по технологии решения задач с помощью компьютера.

№1   . Даны два ненулевых числа. Найти разность их квадратов.

№2◦. Даны положительные числа A и B (A>B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти количество отрезков B, размещенных на отрезке A.

№3     Какое значение будет принимать переменная Х, после выполнения фрагмента программы:

a:=9; b:=8; c:=2;

If   (a>b) and (b>c)   then   x:=2*a+b+c   else  x:=a-b+c

1) 40;           2) 22;           3) 28;           4) 16

Вариант 14

Выполните задания №1 и 2, по технологии решения задач с помощью компьютера.

№10◦. Даны два ненулевых числа. Найти произведение их квадратов.

№23. Даны целые положительные числа N и K. Используя только операции сложения и вычитания, найти частное от деления нацело N на K, а также остаток от этого деления.

№3    Какое значение будет принимать переменная Х, после выполнения фрагмента программы:

a:=12; b:=10; c:=6;

If   (a>b) and (b>c)   then   x:=2*a+b+c   else  x:=a-b+c

1) 22;             2) 40;         3) 16;           4) 28

Вариант 15

Выполните задания №1 и 2, по технологии решения задач с помощью компьютера.

№1 16◦. Найти расстояние между двумя точками с заданными координатами x1 и x2 на числовой оси: |x2 − x1|.

№2ile5. Дано целое число N (>0), являющееся некоторой степенью числа 2: N = 2K. Найти целое число K — показатель этой степени.

№3      Какое значение будет принимать переменная Х, после выполнения фрагмента программы:

a:=10; b:=8; c:=9;

If   (a>b) and (b>c)   then   x:=2*a+b+c   else  x:=a-b+c

1) 16;           2) 22;           3) -5;                 4) 11

Критерии оценки знаний учащихся при выполнении тестовых заданий

по теме:   «Язык программирования Паскаль»

% выполнения

задания

Оценка

98 - 100

5

76 - 97

4

50-75

3

< 50

2

Приложение 2  

Итоговый тест  по теме:   «Язык программирования  Паскаль»

Выберите правильный ответ
1. Алгоритм в котором блоки выполняются последовательно друг за другом, в порядке заданной схемы называется
1)  Алгоритмом циклической структуры;
2) Алгоритмом линейной структуры;
3) Алгоритмом со структурой вложенных циклов;
4) Алгоритмом разветвляющейся структуры .

2. Какие функции выполняет оператор в языках программирования?
1)  Описывают процедуры;
2) Описывают действия над операндами;
3) Описывает действия, которые будут выполняться при реализации алгоритма;
4) Описывает переменные, которые применяются в программе.

3. Что является разделителем операторов в Pascal ?
1) Точка с запятой;
2) Пробел;
3) Идентификатор;
4) Арифметические операции.

4. На какие группы делятся операторы языка  Pascal ?
1)  Простые, составные;
2)  Простые, условные;
3)  Простые, структурные;
4)  Простые, структурные, составные.

5. Какие различия между операциями / и div?
1)  По характеру выполняемых действий относятся к разным группам операций;
2) Тип результата у (/) всегда будет вещественный, а результатом операции
div всегда будет целочисленное значение;
3) Тип результата у (/) всегда будет целочисленный, а результатом операции
div всегда будет вещественное значение;
4)  Ничем.

6. Ввод данных в языке  Pascal представляет собой
1)  Определенную команду;
2) Передачу данных после обработки из оперативной памяти на внешний носитель;
3) Передачу информации от внешнего носителя в оперативную память для обработки;
4) Передачу информации от внешнего носителя на монитор.

7. Вывод данных в языке  Pascal представляет собой
1)  Передачу данных после обработки из оперативной памяти на внешний носитель;
2) Передачу информации от внешнего носителя в оперативную память для обработки;
3) Определенную команду;
4) Передачу информации от внешнего носителя на монитор;

8. Какой тип подходит для данных диапазона 10..65000?
1) Только integer;
2) Только word;
3) longint и word;
4) integer и word.

9. Какой результат будет после выполнения выражения 11 div 5?
1)2.2;      2)1;     3) 2;       4) Нельзя найти результат

10. Какой результат будет после выполнения операции  11 mod 5?
1)  2.2;       2) 1;      3) 2;      4) Нельзя найти результат.

11. Какие служебные слова необходимы для записи полного разветвляющего алгоритма на языке Паскаль?
1) if, then;     2) if, then, else;     3) then, else;     4) if.

12. Какие служебные слова необходимы для записи неполного ветвления на языке Паскаль?
1)  if, then;       2) if, then, else;     3) then, else;      4)  if.

13. После слова if в программе записывается:
1) список команд, которые выполняются если условие ложно;
2) список команд, которые выполняются если условие истинно;
3)  условие;
4)  любые команды пользователя.

14. После слова then в программе записывается:
1)  список команд, которые выполняются если условие ложно ;
2)  список команд, которые выполняются если условие истинно;
3)  условие;
4)  любые команды пользователя.

15. После слова else в программе записывается:
1)  список команд, которые выполняются если условие ложно;
2)  список команд, которые выполняются если условие истинно;
3)  условие;
4)  любые команды пользователя.

16. Если известно число повторений некоторых действий используют цикл ...
1)  Repeat;      2)  While;     3)  For.

17. Для записи цикла с параметром с уменьшением счетчика используют следующий набор служебных слов:
1)  while, do;
2)  for, downto,  do;
3)  for, to, do;
4)  repeat, until.

18. Для записи цикла с параметром с увеличением счетчика используют следующий набор служебных слов:
1)   while, do;
2)   for, downto, do;
3)   for, to, do;
4)   repeat, until.

19. Чему будет равно значение переменной s после выполнения фрагмента программы:

y:=1; s:=0;

 while y <= 2 do

   begin

     s:=s+y;

     y:=y+1;

   end;

1)   1;       2)   2;     3) 3;      4) 4.

Ответы к заданиям итогового теста

по теме:   «Язык программирования Паскаль»

1) 2;   2) 3;   3) 1;   4) 3;   5) 2;   6) 1;  7) 4;   8) 1;   9) 3;   10) 2;   11) 2;   12) 1;   13) 3;   14) 2;   15) 1; 16) 3;   17) 2;   18) 3;   19) 3.

Приложение 3.

ПРАКТИЧЕСКАЯ РАБОТА

ПО РЕШЕНИЮ ЗАДАЧ НА КОМПЬЮТЕРЕ

Язык программирования PASCAL


1. Запустить программу Pascal ABC   ;

2.Ввести решение задачи №1. Нажать ;

3.Устранить имеющиеся ошибки;

3.Ввести данные последовательно через пробел;

4.ENTER.

5. Аналогично пропустить на компьютере задачи №2, 3.


ЗАДАЧА №1

Найти площадь S и периметр P прямоугольника, если известны его стороны a и b.


ЗАДАЧА №2

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


ЗАДАЧА №3

Найти наибольший общий делитель (НОД) двух натуральных чисел M, N, используя


Алгоритм  Евклида:

Если даны натуральные числа  M, N и M>N,

то НОД(M, N)= НОД(M-N, N)


Program zadacha1;

var a,b,s,p:integer;

begin  writeln('Введите стороны a и b');

readln(a,b);

s:=a*b; p:=(a+b)*2;

writeln('s=',s,',','p=',p);

readln;

end.

Program zadacha2;

var a:integer;

begin  writeln('Введите число a');

readln(a);

if (a div 100=a mod 10)and(a>99)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.

ЗАДАЧА №4  Решить  квадратное уравнение  

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

ЛИТЕРАТУРА

1  Карпиленко Е.В. Основы программирования: Учебник для СПО. – М.: Феникс, 2007 г  

2  Лесневский. Объектно-ориентированное программирование для начинающих + приложение. М.: Бином, 2010 г  

3 Гуда А.Н., Колесников В.И. Информатика и программирование (компьютерный практикум). М.: Издательский дом Дашков, 2010 г

4 Фаронов В.В. Turbo Pascal: Учебное пособие. СПб.: Питер-Юг, 2009 г  

5  Баженова И.Ю., Сухомлин В.А. Введение в программирование: Учебное пособие. М.: Бином, 2009 г

6. Материалы сайта http://www.metod-kopilka.ru.

b: = a*a; c: =b*b

d:= c*a;s:= d*d*d

Ввод a

Вывод S

Начало

Конец

Ввод s,b

kol:= s div b

Вывод kol

Начало

Конец

program zadacha2_12b;

var a,x,y,z,b:integer;

Begin

readln(a);

x:=a div 100;

y:=(a div 10) mod 10;

z:=a mod 10;

b:=y*z;

writeln(b);

Readln;

End.

End.

b

a

Начало

Конец

Вывод  S,P

S=a*b; P=(a+b)*2

Ввод   a,b

Начало

Z:=y

Z:=x/5

Вывод  z

Конец

-

+

|x| >|y|

Ввод x,y

Ввод  N

F: =1

R: =1

начало

R< =N

F: = F*R

R: =R+1

Вывод F

конец

НЕТ

ДА

-

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

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

1  4  6  7  8  8  8  4  5  4  

k = 8

А

Строки (1, 2, 3)

Столбцы (1,2,3,4,5,6)

А[2, 3]

Описание  А: array [1..3, 1..6] of тип

Ввод f

ned:= f div 7

Вывод ned

Начало

Конец

Ввод a

sot:= a div 100

des: = (a mod 100) div 10

ed: = (a mod 100) mod 10

входит

Начало

sot = 4 или

des = 4 или

ed = 4

Не входит

+

-

Конец

начало

I: = 10, 99

конец

I mod n = 0

-

+

Ввод n

Вывод I

Ввод a, b

Начало

Конец

a > b

Вывод a,b

+

-

sa:= a, sb:=b

b:= sa +sb

a:= sa*sb

a:= sa +sb

b:= sa*sb


По теме: методические разработки, презентации и конспекты

Комплект контрольно-оценочных средств (КОС) по программе учебной дисциплины Иностранный язык по специальности: 230115 «Программирование в компьютерных системах»

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

ОТКРЫТЫЙ УРОК ПО ИНФОРМАТИКЕ И ИКТ В ГРУППЕ 11 Т СПЕЦИАЛЬНОСТИ 230115 «ПРОГРАММИРОВАНИЕ В КОМПЬЮТЕРНЫХ СИСТЕМАХ» по теме «СИСТЕМЫ СЧИСЛЕНИЯ»

ОТКРЫТЫЙ УРОК ПО ИНФОРМАТИКЕ И ИКТ В ГРУППЕ 11 Т СПЕЦИАЛЬНОСТИ 230115 «ПРОГРАММИРОВАНИЕ В КОМПЬЮТЕРНЫХ СИСТЕМАХ» по теме «СИСТЕМЫ СЧИСЛЕНИЯ»ТИП УРОКА: Изучение новых...

[Контрольно-измерительные материалы] Зачетный материал для 4 курса, специальность 230115 Программирование в компьютерных системах

[Контрольно-измерительные материалы] Зачетный материал для 4 курса, специальность 230115 Программирование в компьютерных системах...

РАБОЧАЯ ПРОГРАММА по учебной дисциплине "Иностранный язык" для специальности 09.02.01 Компьютерные системы и комплексы на базе основного общего образования

        Программа общеобразовательной учебной дисциплины «Английский язык» предназначена для изучения английского языка в Государственном бюджетном профессиональ...

РАБОЧАЯ ПРОГРАММА учебной дисциплины ОГСЭ.04 Физическая культура по специальности 09.02.01 Компьютерные системы и комплексы

Рабочая программа  учебной  дисциплины  является  частью программы программы подготовки специалистов среднего звена (ППССЗ) в соответствии с ФГОС по  специальности  СПО 0...

РАБОЧАЯ ПРОГРАММА УЧЕБНОЙ ДИСЦИПЛИНЫ ФИЗИЧЕСКАЯ КУЛЬТУРА для специальности: 09.02.07 Информационные системы и программирование

Программа разработана на основе требований ФГОС среднего общего образования, предъявляемых к структуре, содержанию и результатам освоения учебной дисци­плины «Физическая культура», в с...