Программа язык Паскаль (Н. Вирт)

  • docx
  • 27.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Программа язык Паскаль (Н. Вирт).docx

Программа


Программа это

        алгоритм, записанный на каком-либо языке программирования

        набор команд для компьютера

Команда это описание действий, которые должен выполнить компьютер.

      откуда взять исходные данные?

      что нужно с ними сделать?

Оператор – это команда языка программирования высокого уровня.

1970 язык Паскаль (Н. Вирт)


Простейшая программа


 


 

program qq;


название программы


begin { начало программы } end. { конец программы }

 

 

комментарии в фигурных скобках не обрабатываются

 



Вывод текста на экран


program qq; begin

{ без перехода }

 
write('2+');

writeln('2=?'); { на новую строку} writeln('Ответ: 4');

end.

 

Протокол:

2=?

 
2+

Ответ: 4


Задания


«4»: Вывести на экран текст "лесенкой"

Вася

пошел

гулять

«5»: Вывести на экран рисунок из букв

Ж ЖЖЖ ЖЖЖЖЖ

ЖЖЖЖЖЖЖ HH HH ZZZZZ


Переменные


Задача. Ввести с клавиатуры два числа и найти их сумму.

Протокол:

Введите два целых числа


25 30

25+30=55


пользователь


 

 

 

 

 

 


Программа


program qq; begin

{ ввести два числа }

{ вычислить их сумму }

{ вывести сумму на экран } end.

Псевдокод: алгоритм на русском языке с элементами Паскаля.

 



Переменные


Переменная это величина, имеющая имя, тип и значение. Значение переменной можно изменять во время работы программы.

 

 

Значение

 

 

 

 

 

 


Другой тип данных


? Поместится?


 

Имя


! В переменной хранятся данные определенного типа!


Имена переменных


В именах МОЖНО использовать

         латинские буквы (A-Z)

 

 

         цифры

 

 

         знак подчеркивания _

В именах НЕЛЬЗЯ использовать

         русские буквы

         пробелы

         скобки, знаки +, =, !, ? и др.

Какие имена правильные??

AXby    R&B    4Wheel    Вася            “PesBarbos” TU154                [QuQu]         _ABBA            A+B


Переменные


Типы переменных:

        integer           { целая }

        real                { вещественная }

        и другие…

Объявление переменных:



Как записать значение в переменную?


 

 


 

 

Оператор это команда языка программирова- ния (инструкция).

Оператор присваивания это команда для записи нового значения в переменную.


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


 

 

 

 

 

 



Как ввести значение с клавиатуры


 

 


Ввод значений двух переменных


 

 

 


 

read ( a, b );


Ввод значений двух переменных (через пробел или Enter).


 

 

 

 

 


через пробел:

 

 

через Enter:


a

30

 

25

 
25 30           b

25

 
25        a

30

 
30        b


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


{ вывод значения переменной a}

 


writeln( a );


{ вывод значения переменной a и переход на новую строчку}


 

writeln( 'Привет!' ); { вывод текста }

 

 

writeln( 'Ответ: ', c );

{вывод текста и значения переменной c}

 



Сложение двух чисел


Задача. Ввести два целых числа и вывести на экран их сумму.

Простейшее решение:

 

 

 

 

 

 

 

 

 

 

 

read

( a,

b

);

c :=

a +

b;

 

writeln

(

c

);


Полное решение


program qq;

var a, b, c: integer; begin

writeln('Введите

два

целых

 

числа');

read ( a, b );

 

 

 

 

c := a + b;

 

 

 

 

writeln ( a, '+',

b,

'=',

c

);

 


end.

Протокол:


компьютер


Введите два целых числа


25 30

25+30=55


пользователь


Как изменить значение переменной?


Пример:

 


program qq;

var a, b: integer; begin

a := 5;

b := a + 2;


a

?

 

5

 
5

 

?

 

7

 
b

5+2


a := (a + 2)*(b 3); b := b + 1;

end.


a

5

 

28

 
7*4


7

 

8

 
b

7+1


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


+ сложение               вычитание

* умножение            / деление

div деление нацело (остаток отбрасывается)


mod остаток от деления


Порядок выполнения операций


1)           вычисление выражений в скобках

2)           умножение, деление, div, mod слева направо

3)           сложение и вычитание слева направо

1 2 4 3 6 5

  z := (5*a+c)/(a*b)*(b-c);


 

5c2

x =


-   d (a + b)


z = 5a + c

ab


(b - c)


(c + d )(d - 2a)

 

2 3 5 4 1 10   6 9 8 7


5

 

7

 

28

 

5

 

3

 

4

 

4

 
Ручная прокрутка программы


 

Надпись: a :=	5;	
b :=	a	+ 2;
a :=	(a	+ 2)*(b – 3);
b :=	a	div 5;
a :=	a	mod b;
a :=	a	+ 1;
b	:=	(a	+	14)	mod	7;

Надпись: a	b
?	?


Какие операторы неправильные?


program qq;

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


begin

a := 5;

10 := x;

y := 7,8;

b := 2.5;

x := 2*(a + a := b + x;

end.


имя переменной должно

быть слева от знака :=

 

целая и дробная часть отделяются точкой

 

y);

 
нельзя записывать вещественное значение в целую переменную


Вывод целых чисел

program qq;

var a, b: integer; begin

a := 15;

b := 45;

writeln ( a, b ); writeln ( a:4, b:4 );

end.


 

 

 

 

 

 

1545

  15 45


символов на число


Вывод вещественных чисел


program qq; var x: real;


begin

x := 12.345678;


всего символов


1,234568∙101


writeln ( x ); writeln ( x:10 ); writeln ( x:7:2 );

end.


1.234568000E+01

  1.235E+01 12.35


всего символов


в дробной части


Задания


«4»: Ввести три числа, найти их сумму и произведение.

Пример:

Введите три числа:

4   5   7

4+5+7=16

4*5*7=140

«5»: Ввести три числа, найти их сумму, произведение и среднее арифметическое.

Пример:

Введите три числа: 4   5   7

4+5+7=16

4*5*7=140 (4+5+7)/3=5.33


Разветвляющиеся алгоритмы


Задача. Ввести два целых числа и вывести на экран наибольшее из них.

Идея решения: надо вывести на экран первое число, если оно больше второго, или второе, если оно больше первого.

Особенность: действия исполнителя зависят от некоторых условий (если иначе ).


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


 


начало

 

ввод a,b

 

да

a > b?


 

 

 

нет


блок

«условие»


 

полная форма ветвления


 

вывод a                вывод b

 

 

 

 

 

 

конец

 

 

 



Вариант 1. Программа


program qq;

var a, b: integer; begin

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

read ( a, b );


if a > b then write(a)

else

write(b);


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


 

 

 

 

 

 

end.


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


 

 

Особенности:

         перед else НЕ ставится точка с запятой

         вторая часть (else …) может отсутствовать (неполная форма)

         если после then или else требуется более одного оператора, то ставятся операторные скобки begin и end (составной оператор)


Вариант 2. Блок-схема


 

max:= a;

 
начало ввод a,b


 

 

 

да

b > a?


 

 

нет


неполная форма ветвления


 

Надпись: max:= b;

 

 

 

 

вывод max

 

 

 

конец


Вариант 2. Программа


program qq;

var a, b, max: integer; begin

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


if b > a then max := b;

 
read ( a, b ); max := a;


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


 

 

 

writeln ('Наибольшее число ', max); end.


Вариант 2Б. Программа


program qq;

var a, b, max: integer; begin

writeln('Введите два целых числа'); read ( a, b );

max := b;


???

 
if a > b


then


???

 
max := a;

writeln ('Наибольшее число ', max); end.