Меню
Разработки
Разработки  /  Информатика  /  Проверочные работы  /  9 класс  /  Язык программирования Паскаль

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

Работа включает материал с основными понятиями, примеры решения типовых задач и задания на самостоятельное решение.
15.09.2013

Описание разработки

Задание 1. Вычислите значение переменной S при а=4, b=3, h=2.

Арифметическое   выражение  –  это  совокупность  констант,  переменных   и   функций,   объединенных   знаками   арифметических  операций   и   круглыми   скобками. Результатом  вычисления  арифметического   выражения  является  числовая  величина.

Для записи этого выражения на языке программирования надо знать:

Правила  записи  арифметических  выражений на языке программирования:

Арифметическое  выражение  записывается  в  строку

Нельзя  ставить  подряд  два  знака  арифметических  операций

Нельзя  опускать  знак  умножения  между  сомножителями

Используются  только  круглые  скобки

Последовательность  выполнения  операций  определяется  по  их  приоритетам.

Арифметические операции:

+   -   сложение

–   -   вычитание   

*   -   умножение

 /   -   деление.

Арифметические функции:

Очередность выполнения операций и функций:

1) Действия в скобках.

2) Функции

3) Операции * , /

4) Операции + , –

Знак  =  заменяется  знаком  :=

Составной  символ  :=  читается как «присвоить», слева от этого знака  -  переменная,   справа - арифметическое выражение,   которое  должно  быть  вычислено. Сначала  вычисляется  арифметическое  выражение,  затем  полученное  значение  присваивается  переменной.  

Разбор решения заданий ЕГЭ.

Определите значение переменной c после выполнения следующего фрагмента программы.

a := 5;

a := a + 6;

b := –a;

c := a – 2*b;

Задание. Как с помощью оператора присваивания записать следующие предложения?

1) увеличить значение переменной С в два раза;           

2) переменная D – сумма переменных А и В;                 

3) переменную К уменьшить на 4.      

Алфавит языка Turbo Pascal 7.0 включает:

все латинские прописные и строчные буквы

арабские цифры (0 – 9)

символы  +  -  *  /  =  <  >  ,  .  ;  :  ’  _  (  )  { } и др.

служебные (зарезервированные) слова

Служебные слова делятся на три группы:

операторы (READ, WRITELN и др.)

имена функций (SIN, COS и др.)

ключевые слова (VAR, BEGIN, END и др.)

Структура программ  на Паскале:

Заголовок программы

Раздел описаний

Тело программы

PROGRAM  имя;
Const  числа;                         
Var  переменные: тип;                                                                 
BEGIN
оператор 1;
оператор 2;
…..
оператор n-1;
оператор n;
END.

Команды  среды  Turbo Pascal 7.0

File – Save as… - сохранение программы под новым именем

File – Save (F2) – сохранение программы с текущим именем

File – Open – открыть файл

File – Exit (Alt-X) – выйти из среды

Alt – F9 = запуск программы на компиляцию (проверка ошибок)

Ctrl – F9 – запуск программы на выполнение

Наиболее часто встречающиеся ошибки:

Error 85: expected – ожидается (;)

Error   3: unknown identifier – переменная не описана в Var.

Ввод информации с клавиатуры осуществляется с помощью оператора READ.

READ(а,b,...)

READLN(а,b,..,), где а,b,... - имена вводимых переменных

READLN - применяется, когда исполнение программы желательно задержать до нажатия клавиши ENTER.

Вывод информации на экран используется оператор WRITE.

WRITE  (а,b,...)

WRITELN (а,b,..), где а,b,... - список выводимых констант, переменных, выражений.

Примеры:

WRITE(а) – выводит на экран значение переменной  а

WRITE(2*2) - выводит на экран: 4

WRITE(‘2*2=’) - выводит на экран: 2*2=

WRITE(‘2*2=’, 2*2) - выводит на экран: 2*2=4

Задание 1.

а)Набрать в редакторе системы Турбо-Паскаль следующую программу:

Program my;

Var a,b,c,s:integer;

Begin

ReadLn(a);

ReadLn(b);

ReadLn(c);

S:=a*b*c;

WriteLn(S)

End.

б) Запустить данную программу на выполнение и проверить правильность её работы для чисел 2, 4 и 6.

в) Запустить данную программу на выполнение и проверить правильность её работы для чисел 1, 0 и -1.

г) Запустить данную программу на выполнение и проверить правильность её работы для чисел -2, 3 и 10.

Весь материал - в документе.                          

Содержимое разработки


Тема: Арифметические выражения.


Задание 1. Вычислите значение переменной S при а=4, b=3, h=2





Арифметическое выражение – это совокупность констант, переменных и функций, объединенных знаками арифметических операций и круглыми скобками. Результатом вычисления арифметического выражения является числовая величина.


Для записи этого выражения на языке программирования надо знать:


  1. Правила записи арифметических выражений на языке программировыания:


        1. Арифметическое выражение записывается в строку

        2. Нельзя ставить подряд два знака арифметических операций

        3. Нельзя опускать знак умножения между сомножителями

        4. Используются только круглые скобки

        5. Последовательность выполнения операций определяется по их приоритетам


  1. Арифметические операции:


+ - сложение

– - вычитание

* - умножение

/ - деление.


  1. Арифметические функции:

Функция

Запись на Паскале

Синус - cos x

Sin(x)

Косинус – sin x

Cos(x)

Квадрат – х2

Sqr(x)

Корень - √x

Sqrt(x)

Абсолютное значение (модуль) -│x│

Abs(x)

Целая часть числа

Int(x)

Округление вещ. числа до целого

Round(x)

Дробная часть числа

Frac(x)

Число Пи (3,1415926536)

Pi


















4. Очередность выполнения операций и функций:


1) Действия в скобках.

2) Функции

3) Операции * , /

4) Операции + , –


Задание 2. Запишите это выражение на языке программирования Паскаль.






Задание 3. Записать по правилам языка программирования Паскаль:


Вариант 1

Вариант 2

1


1 + x +

2

– 2, 5


3

1 + |x| + |1 + x|


4



5

6


7

8

9

10

11

12

13

14


Задание 4. Найдите значения переменных, если это возможно:


a) A:=SQR(100)        b) A:=sqrt(9)
   B:=sqrt(100)           B:=SQR(9)
   C:=SQR(-10)             C:=SQRT(-9)
   D:=SQRT(-10)        D:=SQR(-9)
   E:=SQR(0.9)           E:=SQRT(0.0)
   F:=SQRT(0)            F:=SQR(0.1)


Задание 5. Переписать в традиционной математической форме:


  1. sqrt(a + b) – sqrt(a – b)

  2. sqr(cos((x + y) / 2))


Задание 6. Вычислить значение функций при а=1


  1. abs(a+1);

  2. sqrt(a);

  3. sqr(a–3);

  4. sin(a–1);

  5. cos(–2+2*a).


Задание 7. Удалить лишние скобки (ошибки нет, но они загромождают выражения)


  1. ((x1 / x2) * y

  2. (sqrt(p) * q) / r

  3. b + (a – (c / 3))

  4. a * (b / (c * (d / (e * f)))))






Задание 8. Расстановкой скобок добиться того, чтобы выражение справа стало эквивалентом своего левого соседа.

  1. a + y






Задание 9. В каких случаях выражение стоящее справа, является эквивалентом своего левого соседа?


  1. cos2 x

  2. sin x + cos

  3. sin



Тема: Оператор присваивания.

 

Знак = заменяется знаком :=

Составной символ := читается как «присвоить», слева от этого знака - переменная, справа - арифметическое выражение, которое должно быть вычислено. Сначала вычисляется арифметическое выражение, затем полученное значение присваивается переменной.


Разбор решения заданий ЕГЭ

Определите значение переменной c после выполнения следующего фрагмента программы.

a := 5;

a := a + 6;

b := –a;

c := a – 2*b;

            1) c = –11      2) c = 15        3) c = 27        4) c = 33


Решение:

Для решения можно использовать трассировочную таблицу

здесь используются три переменные: a, b, c;

после выполнения оператора a := 5; изменяется значение переменной a:


 

a

b

c

a := 5;

5

 

 


оператор a := a + 6; означает «вычислить значение выражения a + 6 используя текущее значение a (равное 5), и записать результат обратно в переменную a»; таким образом, новое значение равно 5 + 6 = 11:

 

 

a

b

c

a := 5;

5

 

 

a := a + 6;

11

 

 


следующий оператор, a := a + 6, изменяет значение переменной b, записывая в нее –a; учитывая, что в a записано число 11, находим, что b будет равно –11:


 

a

b

c

a := 5;

5

 

 

a := a + 6;

11

 

 

b := –a;

 

–11

 


последняя команда, c := a – 2*b, изменяет значение переменной c; при текущих значениях a = 11 и b = –11 результат выражения равен 11 – 2*(–11) = 33, это число и будет записано в переменную c:


 

a

b

c

a := 5;

5

 

 

a := a + 6;

11

 

 

b := –a;

 

–11

 

c := a – 2*b;

 

 

33

Ответ: 4

Задание 1. Какие значения будут иметь переменные после выполнения следующих операций присваивания?

1) D:=3;

D:=D+5;

A:=15;

C:=A–D;

А:=А*2;


2) A:=1;

B:= – A;

A:=18;

A:= A+2*B;



3) X:=5;

SUM:=0;

SUM:=SUM+X;

SUM:=SUM+X;

SUM:=SUM+SUM;


Ответ:

Задание 2. Как с помощью оператора присваивания записать следующие предложения?


1) увеличить значение переменной С в два раза;

2) переменная D – сумма переменных А и В;

3) переменную К уменьшить на 4.


Задание 3. Определить конечное значение переменных X и Y в результате выполнения следующих алгоритмов:
а) Х:=2                     б)Х:=1.5
   Х:=Х * Х                    Х:=2 * Х + 1   
   Х:=Х *Х * Х                Y:=X/2
   Х:=Х * Х *Х * Х            Y:=X + Y
                               X:=X - Y

Ответ:



















Тема: Среда Turbo Pascal

Алфавит языка Turbo Pascal 7.0 включает:

  • все латинские прописные и строчные буквы

  • арабские цифры (0 – 9)

  • символы + - * / = , . ; : ’ _ ( ) { } и др.

  • служебные (зарезервированные) слова

Служебные слова делятся на три группы:

  • операторы (READ, WRITELN и др.)

  • имена функций (SIN, COS и др.)

  • ключевые слова (VAR, BEGIN, END и др.)

Структура программ на Паскале:

  1. Заголовок программы

  2. Раздел описаний

  3. Тело программы

PROGRAM имя;
Const числа; - раздел констант;
Var переменные: тип; - раздел переменных ( целые переменные -integer;

вещественные переменные – real)
BEGIN
оператор 1;
оператор 2;
…..
оператор n-1;
оператор n;
END.


Команды среды Turbo Pascal 7.0


File – Save as… - сохранение программы под новым именем

File – Save (F2) – сохранение программы с текущим именем

File – Open – открыть файл

File – Exit (Alt-X) – выйти из среды

Alt – F9 = запуск программы на компиляцию (проверка ошибок)

Ctrl – F9 – запуск программы на выполнение


Наиболее часто встречающиеся ошибки:


Error 85: expected – ожидается (;)

Error 3: unknown identifier – переменная не описана в Var




Тема: Операторы ввода и вывода


Ввод информации с клавиатуры осуществляется с помощью оператора READ.


  • READ(а,b,...)

  • READLN(а,b,..,), где а,b,... - имена вводимых переменных

  • READLN - применяется, когда исполнение программы желательно задержать до нажатия клавиши ENTER.


Вывод информации на экран используется оператор WRITE.


  • WRITE (а,b,...)

  • WRITELN (а,b,..), где а,b,... - список выводимых констант, переменных, выражений.


Примеры:

  1. WRITE(а) – выводит на экран значение переменной а

  2. WRITE(2*2) - выводит на экран: 4

  3. WRITE(‘2*2=’) - выводит на экран: 2*2=

  4. WRITE(‘2*2=’, 2*2) - выводит на экран: 2*2=4


Задание 1.


а)Набрать в редакторе системы Турбо-Паскаль следующую программу:

Program my;

Var a,b,c,s:integer;

Begin

ReadLn(a);

ReadLn(b);

ReadLn(c);

S:=a*b*c;

WriteLn(S)

End.

б) Запустить данную программу на выполнение и проверить правильность её работы для чисел 2, 4 и 6.

в) Запустить данную программу на выполнение и проверить правильность её работы для чисел 1, 0 и -1.

г) Запустить данную программу на выполнение и проверить правильность её работы для чисел -2, 3 и 10.


Задание 2. Набрать в редакторе системы Турбо-Паскаль следующую программу определить, что будет выведено в результате выполнения программы, если в качестве исходных данных заданы числа 10 и -20?


Program Roots;

Var B, C, D :Real;

Begin

Read (B, C);

D:= Sqrt ( Sqr (B) - 4*C);

Writeln (‘x1=’, (-B +D) / 2, ‘x2=’, (-B - D) / 2

End.


Тема: Линейная структура программирования.

Программа реализованная линейной последовательностью операций называется линейной программой.

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


Математическая постановка задачи:

Известно: сторона a

сторона b

Найти: S прямоугольника

Решение: S:=a*b


Блок схема этого линейного алгоритма выглядит, как последовательность действий, т.е. не содержит ветвлений и циклов:

Рис.1 Блок-схема линейного алгоритма


Program S_pr;

USES CRT;

VAR a,b,s:Integer;





BEGIN

clrscr;

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

Readln(a,b);

s:=a*b;

Writeln('Площадь прямоугольника S=',s);

readln;

END.

-Заголовок программы, присваивается имя

-Подключение графического модуля

-Раздел описания переменных, перечисляются все переменные, которые используются в программе с указанием типа


-Начало программы

-Очистка экрана

-Вывод на экран поясняющей строки

-Ввод данных с клавиатуры

-Формула подсчета площади

-Печать результата



-Конец программы


Задача 2. Вычислить значение выражения

Функция квадратного корня – Sqrt(x)  √x

Функция абсолютного значения – ABS(x)  x

Функция квадратного корня – Sqr(x)  x2


Program Spr;

USES CRT;

VAR a,b:Integer;

y:real;

Begin

clrscr; {очищение экрана}

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

Readln (a,b);

y:=sqrt(sqr(a)-abs(b));

writeln('y=',y:3:2);

readln;

END.

Примечание:

Вывод на печать числа типа Real будет выглядеть так: 3.52146478E+2.

Запись v:3:2 будет выводить хорошее число, гораздо понятнее 3.14

Запись writeln (‘y=’,v:3:2) означает, что на экран выйдет текст y= и значение переменной y ограниченная по ширине в 3 символа, а также 2 знака после запятой.


Задание 3. Какие значения будут иметь переменные и постоянные программы после выполнения следующей программы?


PROGRAM name;

CONST AC=3; AD= – 7. 5;

VAR X, Y, A : integer;

B1, B2, C : real;

BEGIN

X:=3;

X:=X+2;

X:=X+X;

Y:= –8;

A:=100*X+50*Y–AC;

B1:=5–AD;

B2:=B1;

C:=B2/X;

WRITELN (‘X= ‘, X, ‘Y= ‘, Y, ‘A= ‘, A);

WRITELN (‘B1= ‘, B1:5:2);

WRITELN (‘B2= ‘, B2:5:2);

END.


Ответ:





Задание 4. Найдите ошибки в программе


PROGRAM

CONST KM:=5 ; Z:=2.5 ; Ю:= –10;

VAR AG, AO : integer;

R, K ,E, F, P : real;


BEGIN

KM:=Z+11;

AG:=2;

AG:=AG/10;

AO:=100–25;

E:=7.5;

F:=–12.1;

K:=E+F;

P:=2*3.5;

END.


Задачи для самостоятельного решения:


1. Даны арифметические выражения на языке программировании. Запишите

программу их вычислений.


D= (c-3a2) / 18.5 - (a2+b3) / (a-b);

W= a2 (d + b) - d / 3.3- (b - a)3 / 55.


2. Составьте блок-схему и программу для нахождения площади разностороннего

треугольника (формула Герона).


    1. Составьте блок-схему и программу вычисления объема прямоугольного параллелепипеда с длинами ребер А, В и С.


    1. Составьте программу нахождения среднего арифметического пяти чисел, введенных с клавиатуры.


    1. Составьте программу для определения сдачи после покупки в магазине перчаток стоимостью a руб., портфеля стоимостью b руб. и галстука стоимостью c руб., если на покупку было выделено d руб. Все исходные данные задаются с клавиатуры.


    1. Поменяйте между собой значения двух переменных А и В, воспользовавшись третьей переменной R для временного хранения значения.












Операции MOD и DIV


DIV – выделение частного от деления целого числа на целое число;

MOD - выделение остатка от деления целого числа на целое число.

Операции MOD и DIV можно выполнять только над целыми числами


Задача 1. Найдите значения переменных, если это возможно.


Учтите, что число 7.0 является вещественным, т.к. оно имеет дробную часть, хотя и равную нулю.


a) A:=21 DIV 5        b) A:= 2 MOD 3             
   B:= 20 MOD 5          B:= 36.0 MOD 6

   C:= 14 DIV 6.0        C:= 81 DIV 0
   D:= 14 MOD 0          D:= 38 DIV 6
   E:= 5 MOD 13          E:= 3 DIV 2


Пример . Записать по введенному с клавиатуры числу количество сотен, десятков и единиц.


Program S_pr;

USES CRT;

VAR a,b,c,d,x:Integer;

Begin

clrscr;

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

Readln(x);

a:=x mod 10;

b:=x div 10;

c:=b mod 10;

d:=b div 10;

writeln('Число сотен в числе - ',d);

writeln('Число десятков в числе - ',c);

writeln('Число единиц в числе - ',a);

readln;

END.



В переменную A занесли остаток от деления исходного числа X на 10 – т.о. мы выделим единицы – пускай X=324, a:=x mod 10; a=4

В переменную B занесли остаток от деления исходного числа X на 10 – т.о. мы отбросили последнюю цифру – при X=324, b:=x div 10;; b=32

В переменную C занесли остаток от деления числа B на 10 – т.о. мы выделили десятки исходного числа – B=32, c:=b mod 10;; c=2

В переменную D заносим результат деления числа B на 10 – т.о. мы отбросим последнюю цифру и получаем число сотен исходного числа – пускай B=32, d:=b div 10; d=3


N mod 10 – взять последнюю цифру числа

N div 10 – отбросить последнюю цифру числа




Задания с операциями DIV и MOD


DIV – выделение частного от деления целого числа на целое число;

MOD - выделение остатка от деления целого числа на целое число.


Примеры:

13 div 5 = ?

13 mod 5 = ?
5 div 5 = ?
5 mod 5 = ?
3 div 8 = ?

3 mod 8 = ?

1. Определите значение целочисленных переменных x, y и t после выполнения фрагмента программы:

x := 5;

y := 7;

t := x;

x := y mod x;

y := t;

1) x=2, y=5, t=5         2) x=7, y=5, t=5         3) x=2, y=2, t=2         4) x=5, y=5, t=5


Ответ:


2. Определите значение целочисленных переменных a и b после выполнения фрагмента программы:

a := 42;

b := 14;

a := a div b;

b := a*b;

a := b div a;

1) a = 42, b = 14       2) a = 1, b = 42         3) a = 0, b = 588       4) a = 14, b = 42


Ответ:


3. Определите значение целочисленных переменных a и b после выполнения фрагмента программы:

а :=2468;

b :=(a mod 1000)*10;

а := а div 1000+b;

1) a = 22, b = 20       2) a = 4682, b = 4680    3) a = 8246, b = 246    4) a = 470, b = 468

Ответ:


4.Определите значение целочисленных переменных a и b после выполнения фрагмента программы:

a := 1819;

b := (a div 100)*10+9;

a := (10*b–a) mod 100;

1) a = 81, b = 199     2) a = 81, b = 189     3) a = 71, b = 199    4) a = 71, b = 189


Ответ:


 

5.Определите значение целочисленных переменных a и b после выполнения фрагмента программы:

a := 3 + 8*4;

b := (a div 10) + 14;

a := (b mod 10) + 2;

1) a = 0, b = 18         2) a = 11, b = 19       3) a = 10, b = 18       4) a = 9, b = 17


Ответ:


6. Определите значение целочисленных переменных a и b после выполнения фрагмента программы:

а :=5+6*4;

b :=(a div 10)+ 17;

a :=(b mod 10)+ 5;

1) a = 5, b = 20         2) a = 6, b = 21         3) a = 14, b = 19       4) a = 4, b = 19


Ответ:


7.Определите значение целочисленных переменных a и b после выполнения фрагмента программы:

a := 20

b := 7;

a := a div b;

b := a*b;

a := b div a;

1) a = 7, b = 21         2) a = 7, b = 7           3) a = 7, b = 14         4) a = 3, b = 21


Ответ:


8.Определите значение целочисленных переменных x, y и t после выполнения фрагмента программы:

х := 4;

у := 16;

t := x;

x := y mod x;

у := t+1;

1) x = 4, y = 1, t =0   2) x = 0, y = 5, t =4   3) x = 0, y = 4, t =5   4) x = 4, y = 1, t =0  


Ответ:


9.Определите значение целочисленных переменных b и c после выполнения фрагмента программы:

а :=37;

b :=a mod 10;

c := а div 10;

1) b = 3, c = 7            2) b = 7, c = 3    3) b = 3, c = 4    4) b = 4, c = 3


Ответ:







Тема: Разветвляющиеся структура программирования.


Алгоритм, содержащий хотя бы одно условие, в результате которого обеспечивается переход на один из двух возможных шагов, называется разветвляющимся (ветвлением, следованием)

Алгоритмическая структура ветвления программируется в Паскале с помощью двух операторов. Это условный оператор и оператор выбора.


Условный оператор.

Условный оператор позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие.

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


IF THEN ELSE ,


где IF, THEN, ELSE – зарезервированные слова (если, то, иначе);

– произвольное выражение логического типа;

, – любые операторы языка Паскаль.


Условный оператор работает по следующему алгоритму. Вначале выполняется условное выражение . Если результат истина, то выполняется , а пропускается; если результат есть ложь, наоборот, пропускается, а выполняется .


Неполный условный оператор имеет следующий вид:


IF THEN


Пример 1. Если введенное с клавиатуры число положительно, вычислить его квадратный корень.


program jkh;

uses CRT;

var a:Integer;

b:real;

BEGIN

clrscr;

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

readln (a);

if (a0)

then b:=sqrt(a);

writeln ('b=',b:2:2);

readln;

END.





Задачи для самостоятельного решения:


  1. Составить программу вычисления корней квадратного уравнения.

  2. Составить программу, которая проверяет четность числа, введенное с клавиатуры.

  3. Составить программу вычисления значения функции Y=. Поскольку делить на нуль нельзя, необходимо предусмотреть проверку аргумента. Если он равен нулю, то вывести соответствующее сообщение.



  1. Составьте программу упорядочения значений 3 переменных по возрастанию и проверьте трассировкой при разных вариантах значений исходных данных.

  2. Составить программу нахождения максимума двух введенных с клавиатуры чисел и выполнить трассировку программы.


Примечание:

Трассировка – это пошаговое выполнение программы. Для того, чтобы это сделать, достаточно вместо CTRL-F9 – запуска программы на выполнение, клавишей F8 выполнять пошагово, т.е. каждую строчку. Еще удобно, открыв окно DebugWatch через клавишу Insert добавить в окно отладки список переменных, используемых в программе (в нашей a,b). Тогда при нажатии клавиши F8 значения этих переменных будет меняться по мере выполнения программы.























Оператор выбора


Пример 1. По введенному номера месяца написать какому времени года он принадлежит.


program new;

uses CRT;

var m:Integer;

BEGIN

clrscr;

writeln('введите номер месяца:');

readln(m);

case m of

1,2,12: writeln('Зима');

3,4,5: writeln('Весна');

6,7,8: writeln('Лето');

9,10,11: writeln('Осень');

end;

readln;

END.

Логический тип


Пример 1. Определить значение логического выражения Y = (A and B) or C при A=TRUE, B=FALSE, C=TRUE.

program name;

uses CRT;

var a,b,c,y:boolean;

BEGIN

clrscr;

a:=true; b:=false; c:=true;

y:=(a and b) or c;

writeln('y=',y);

readln;

END.


Пример 2. Определить значение логического выражения Z = (A3) or (Band (C=FALSE) при A,B заданных с клавиатуры, C=FALSE.


program name;

uses CRT;

var a,b:integer;

c,z:boolean;

BEGIN

clrscr;

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

readln(a,b);

c:=false;

z:=(a3) or (b

writeln('z=',z);

readln;

END.

Тема: Операторы цикла.


    1. Цикл с предусловием:


While do ;


Цикл выполняется пока условие истинно (верно), если условие сразу не верно – цикл не выполняется ни разу.


Пример:


program ku3;

var a, b, x, y: integer;

BEGIN

write (‘a= ‘); readln (a);

write (‘b= ‘); readln (b);

x:= -7;

while x

begin

y:= a*x*x – b;

writeln (x: 3, y: 10);

x:= x+1;

end;

END.


Задачи для самостоятельного решения:


  1. Вывести на экран первые N натуральных чисел в порядке возрастания. N ввести с клавиатуры.

  2. Вывести на экран таблицу квадратов для первых N натуральных чисел. N ввести с клавиатуры.

  3. Вывести сумму первых N целых положительных чисел. N ввести с клавиатуры.

  4. Вывести на экран таблицу значения функции y = 5 x2 – 4 x + 7 в диапазоне от –8 до 8 с шагом 0,5

  5. Составьте программу решения следующей задачи.

Старинная задача. Сколько можно купить быков, коров и телят, если плата за быка 10 руб., за корову – 5руб., за теленка – полтинник (0,5руб.), если на 100 руб. надо купить 100 голов скота.















Пример. Дано натуральное число n. Подсчитаем количество цифр данного числа.

Решение. Подсчет количества цифр начнем с последней цифры числа. Увеличим счетчик цифр на единицу. Число уменьшим в 10 раз (тем самым мы избавляемся от последней цифры числа). Далее с получившимся числом проделаем ту же последовательность действий и т.д., пока число не станет равным нулю.


Program Example­_1;

Var m, n : Longint;

k : Integer; {счетчик цифр}

Begin

Writeln (‘Введите целое число’) ; {вводим целое число n}

Readln(n); m:=n;

k:=0;

While m 0 Do {пока число m0 делать (Do)}

Begin

Inc (k); {или k:=k+1}

m := m Div 10; {«уменьшаем» число на последнюю цифру}

End;

Writeln ( ‘В числе’,n,’– ‘,k,’цифр! ‘) ; {вывод количества цифр}

Readln;

End.


Рассмотрим выполнение этой программы в пошаговом режиме для числа 65387. В результате работы программы на экране появится предложение:

В числе 65387 – 5 цифр!


n

m

k

65387

65387

0

65387

6538

1

65387

653

2

65387

65

3

65387

6

4

65387

0

5















    1. Цикл с постусловием:


Repeat until ;


Цикл выполняется пока условие ложно, если условие сразу верно, то цикл выполняется один раз.


Program ku4;

var a, b, x, y: integer;

begin

write (‘a= ‘); readln (a);

write (‘b= ‘); readln (b);

x:= -7;

repeat

y:= a*x*x – b;

writeln (x: 3, y: 10);

x:= x+1;

until x 12;

end.


Задачи для самостоятельного решения:


    1. Вывести на экран первые N натуральных чисел в порядке возрастания. N ввести с клавиатуры.

    2. Вывести на экран таблицу квадратов для первых N натуральных чисел. N ввести с клавиатуры.

    3. Вывести сумму первых N целых положительных чисел. N ввести с клавиатуры.

    4. Вывести на экран таблицу значения функции y = 5 x2 – 4 x + 7 в диапазоне от –8 до 8 с шагом 0,5
























    1. Цикл с параметром по возрастающим значениям параметра:

For I: = N1 to N2 do тело цикла;


Тело цикла – простой или составной оператор.

Составной оператор – группа операторов между begin и end.

I – переменная, порядкового типа (integer),

N1, N2 – выражения, того же типа, что и I.

Параметр I меняет свое значение от N1 до N2 с шагом +1 (для целого типа),

если N1 N2, цикл не выполняется ни разу.


Пример.


program ku1;

var a, b, x, y: integer;

begin

write (‘a= ‘); readln (a);

write (‘b= ‘); readln (b);

for x:= -7 to 12 do

begin

y:= a*x*x – b;

writeln (x: 3, y: 10);

end;

end.



    1. Цикл с параметром по убывающим значениям параметра:


For I:= N1 downto N2 do тело цикла;


Параметр I меняет свое значение от N1 до N2 с шагом – 1 (для целого типа), если N1


program ku2;

var a, b, x, y: integer;

BEGIN

write (‘a= ‘); readln (a);

write (‘b= ‘); readln (b);

for x:= 12 downto -7 do

begin

y:= a*x*x – b;

writeln (x: 3, y: 10);

end;

END.







Задачи для самостоятельного решения:


    1. Вывести на экран первые N натуральных чисел: а) в порядке возрастания б) в порядке убывания. N ввести с клавиатуры.

    2. Вывести на экран таблицу квадратов для первых N натуральных чисел. N ввести с клавиатуры.

    3. Вывести сумму первых N целых положительных чисел. N ввести с клавиатуры.

    4. Вывести на экран таблицу значения функции y = 5 x2 – 4 x + 7 в диапазоне от –8 до 8 с шагом 0,5










































Тема: Понятие массива.

Одномерные массивы


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


Массив в Паскале


:= array [] of ;


Каждый элемент массива в общем виде описывается как А[I], где

А - имя массива,

I - номер или индекс массива (0

A[I] - значение элемента массива.


Пример: Type Vector = array [1..25] of real; {одномерный массив}

Matrix = array [1..20, 1..30] of byte; {двумерный массив}


Пример 1. Ввод значений элементов массива с помощью клавиатуры


program mas1;

type massiv=array [1..40] of integer;

var a: massiv;

i, n: integer;

begin

write('Введите размерность массива А n=');

readln(n);

writeln('Введите элементы массива А');

for i:=1 to n do begin

write('a[',i,']=');

readln(a[i]);

end;


Пример 2. Ввод значений элементов массива с помощью генератора случайных чисел и вывод их в строчку.


Примечание:

Для использования случайных чисел используются операторы Random и randomize - изменение базы генератора случайных чисел.


program mas2;

var a: array [1..10] of integer;

i: integer;

begin

randomize;

for i:=1 to 10 do

begin

a[i]:=random(20);

write('a(', i, ')=', a[i], ' ')

end;

readln

end.

Пример 3. Программа создает массив из N случайных чисел, равномерно распределенных в диапазоне от 0 до MAX_VALUE-1, подсчитывает среднее арифметическое этих чисел, а также минимальное и максимальное из них.

Program mas3;

Const

N = 1000; {Количество элементов массива}

MAX_VALUE = 100+1; {Диапазон значений случайных чисел}

Var

m := array [1…N] of Integer; {Массив чисел}

i := Integer; {Индекс массива}

max, min : Integer; {максимальное и минимальное число}

s := Real; {Сумма чисел}

Begin

{Наполняем массив случайными числами:}

for i := 1 to N do

m [i] := random (MAX_VALUE);

{Задаем начальные значения переменных:}

s := 0;

max := m [1];

min := m [1];

{Цикл вычисления суммы всех случайных чисел и поиска минимального и максимального:}

for i := 1 to N do

Begin

s := s + m [ i ];

if m [ i ] then

min := m [ i ]

else if m [ i ] max then

max := m [ i ]

End;

{Вычисляем среднее значение и печатаем результат:}

Writeln (‘Мин = ‘,min, ‘Макс = ‘,max, ‘Среднее =’,s/N)

End.


Задачи для самостоятельного решения:


  1. Даны два массива целых чисел. Вычислить произведение максимального элемента первого массива на минимальный элемент второго массива. Удалить максимальный элемент из первого массива и добавить его во второй массив после минимального.

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

  3. Сортировать массив по возрастанию.


 







 

Алгоритмы сортировки одномерных массивов


Сортировка - один из наиболее распространённых процессов современной обработки данных. Например, сортировка массива по возрастанию или убыванию его элементов.


Обменная сортировка (метод "пузырька").


Алгоритм начинается со сравнения 1-го и 2-го элементов массива. Если 2-й элемент меньше 1-го, то они меняются местами. Этот процесс повторяется для каждой пары соседних элементов массива, пока все N элементов не будут обработаны. 


Сортировка вставками.

Вначале упорядочиваются два первых элемента массива. Они образуют начальное упорядоченное множество S. Далее на каждом шаге берется следующий по порядку элемент и вставляется в уже упорядоченное множество S так, чтобы слева от него все элементы были не больше, а справа - не меньше обрабатываемого. Место для вставки текущего элемента в упорядоченное множество S ищется методом деления пополам. Алгоритм сортировки заканчивает свою работу, когда элемент, стоящий на N-м месте, будет обработан. (Именно таким образом игроки в бридж обычно упорядочивают свои карты).

 

Сортировка выбором.


Находится наибольший элемент в массиве из N элементов (пусть он имеет номер р) и меняется местами с элементом, стоящим на N-м месте, при условии, что Np. Из оставшихся (N-1) элементов снова выделяется наибольший и меняется местами с элементом, стоящим на (N-1)-м месте и т. д. Алгоритм заканчивает свою работу, когда элементы, стоящие на 1-м и 2-м местах в массиве, будут упорядочены (для этого понадобится N-1 "проход" алгоритма). Аналогично

данный алгоритм можно применять и к наименьшим элементам.















Тема: Двумерные массивы


Двумерным называется массив, элемент которого зависит от его местоположения в строке и в столбце. В общем виде элемент матрицы

обозначается как A(I,J), где А - имя массива,

I - индекс (номер) строки,

J - индекс (номер) столбца.


Описание матрицы на языке Паскаль


Матрицу можно задать двумя способами:


а) : array [] of array [] of ;


б) : array [, ] оf ].


Соотношение индексов в квадратной матрице


I=J элементы матрицы расположены на главной диагонали

I

IJ элементы матрицы расположены под главной диагональю

I+J=N+I элементы матрицы расположены на побочной диагонали (N - количество строк или столбцов в квадратной матрице)

I+J

I+JN+I элементы матрицы расположены под побочной диагональю.


Пример 1. Нахождение среди значений элементов, находящихся на

главной диагонали матрицы, наибольшего и наименьшего.


program mas4;

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

i,j,max,min: integer;

begin

for i:=1 to 10 do

for j:=1 to 10 do

begin

write('Введите значение элемента матрицы = ');

readln(a[i,j])

end;

max:=a[1,1];

min:=a[1,1];

for i:=1 to 10 do begin

if a[i,i]max

then max:=a[i,i];

if a[i,i]

then min:=a[i,i]

end;

writeln('Наибольшее значение = ', max);

writeln('Наименьшее значение = ', min);

readln

end.

 


Задачи

1. Составить программу суммирования значений элементов одномерного

массива, больших (или меньших) заданного действительного числа t.

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

числа t.

3. Произведите сортировку элементов одномерного массива по убыванию.









































Процедуры


  1. Вычислить значение функции

program stepen;

uses crt;

var x,k,Y:integer;


procedure STEP(x,s:integer; var r:integer);

var i: integer;

begin

r:=1;

for i:=1 to s do r:=r*x;

end;


BEGIN

clrscr;

writeln('Введите x,k:');

readln(x,k);

Step(x,k,y);

writeln ('y=',y);

readln;

END.

Функции


  1. Вычислить значение функции

Program Step;

Uses crt;

var x, k: Integer;

y: Longint;

Function Fact (b: Integer):Longint;

var i: byte;

r:Longint;

Begin

r:=1;

for i:=1 to k do

r:=b*r;

Fact:=r;

End;

BEGIN

ClrScr;

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

readln (x);

writeln ('в какую степень:');

readln (k);

y:=Fact(x);

Writeln ('y=',y);

readln;

END.

-75%
Курсы повышения квалификации

Внедрение современных педагогических технологий в условиях реализации ФГОС (в предметной области «Информатика»)

Продолжительность 72 часа
Документ: Удостоверение о повышении квалификации
4000 руб.
1000 руб.
Подробнее
Скачать разработку
Сохранить у себя:
Язык программирования Паскаль (0.26 MB)

Комментарии 0

Чтобы добавить комментарий зарегистрируйтесь или на сайт