пятница, 17 октября 2014 г.

Занятие 1. Язык программирования Pascal. Первое знакомство.

Итак, мы собираемся писать программы на языке программирования Паскаль. Причем нам необходимо научиться этому ОЧЕНЬ быстро. Попробуем.

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

«Тело программы» начинается английским словом Begin  и заканчивается английским словом end. Вообще, в нашей программе может быть много Begin и end , но только самый последний  «endбудет с точкой после него. В смысле, не просто конец, а совсем-совсем конец программы.

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

Посмотрите на картинку: в красном прямоугольнике - имя программы, в желтом - "шапка", а в зеленом - "тело программы". Там много пока незнакомых слов, но мы поговорим о них чуть позже.



Самым главным в нашей «шапке» будет раздел Var. В этом разделе мы говорим компьютеру, сколько переменных какого типа он должен приготовить. Это нужно для того, чтоб у нас получился верный результат. Если ваша мама собирается готовить борщ, яичницу и чашечку кофе, она возьмет кастрюлю, сковородку и джезву (джезва – эта такая специальная маленькая кастрюлька для кофе, с длинной ручкой, но это сейчас не важно).
Если даже компьютеру сказать, что он должен приготовить обед, и выдать эти три вида посуды, не указав, что для чего использовать, вы можете на выходе получить кофе в сковородке, борщ в джезве и яичницу в кастрюле. Мама точно будет против.






И тут резонный вопрос – что такое переменные. Задачи на компьютере почти никогда не пишут для решения конкретного примера с конкретными цифрами. Например, мы хотим написать программу, чтоб узнать сколько будет 2+3. А если через 5 минут мы захотим узнать, сколько будет 4+1, нам что, еще одну программу писать? Конечно, нет. Поэтому, когда мы пишем программу, мы говорим компьютеру, чтоб он приготовил ячейку памяти а и будем её использовать для первого слагаемого. Чтоб он не забыл про ячейку памяти b, для второго слагаемого. И ячейку памяти c, чтоб было куда запоминать результат. И программа у нас будет про то, что a+b=c. Тогда мы сможем подставлять при запуске программы любые числа, и узнавать их сумму.

Что такое переменные – мы разобрались. Теперь поговорим о типах переменных. Удобно ли жарить яичницу в кастрюле? Нет. Чтоб правильно выполнить задачу, компьютеру надо рассказать о том, что яичницу мы будем жарить в сковородке. Итак:

Integer это целые числа от  -32 727 до 32 727. Число 33 000 и даже 32 728 компьютер уже целым не считает. У него в голове такое длинное число не укладывается. Что делать, если нужно работать с большим числом или с дробью? Для этого есть другой тип.

Real это не только большие положительные или отрицательные числа, но и дробные числа. Запомните, компьютер будет следить за тем, чтоб ваши переменные ВСЕГДА были нужного типа. Если вы сложите два целых числа, умножите целое на целое или отнимите от одного целого числа другое, вы все равно получите целое число. А если вы разделите целое на целое? Результат может быть и дробным. Поэтому переменная, которая получается в результате деления, должна быть типа Real.
Числа, которые компьютер выводит на экран в этом типе, выглядят непривычно. Вот так, например:

3,2000000000Е+4    это 32 000
3,2000000000Е-2     это 0,032

Откуда я знаю? Все просто. Считайте, что знак «+» после буквы Е означает слово «умножить», а знак «-», соответственно, «разделить». Сама буква Е означает, что делить и умножать мы будем на число 10. А число после знака указывает, сколько раз мы должны выполнить это действие. Когда-нибудь на уроках математики вам расскажут о «стандартном виде числа», т.е. о том, что любое число можно записать в виде десятичной дроби, умноженной на 10 в какой-то степени, например:

 3,2·104 = 3,2·10·10·10·10 =32 000

Но вы быстро привыкните к этой записи и перестанете обращать на неё особое внимание.

Charэтот тип нужен, если мы работаем с символами, записанными по одному. Например, с буквами, или знаками «+» и «-». Или даже с цифрами, но, во-первых, 15 – это будет уже две переменных типа Char, потому, что в одну такую переменную помещается только один символ, а во-вторых, цифры в Char нельзя складывать. Применять математические действия к таким переменным нельзя. Много другого, тоже полезного, делать можно.

String это уже не одна буква, а много. Целая строчка разных символов. Можно даже с пробелами между словами. Надо записать ваше имя – берите тип String. Если, конечно, вас зовут Ы – тогда можно и Char. Но если в вашем имени больше, чем одна буква – тогда String.

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

Мы знаем уже достаточно, чтобы написать первые программы на Паскале.
Необходимо установить на свой компьютер собственно среду программирования – программу, в которой мы будем писать другие программы. Загрузите программу  ОТСЮДА .

Решим задачу:

Ввести два целых числа. Найти их сумму и разность.

Давайте сначала определимся, сколько переменных нам будут необходимы. Если мы вводим два числа – это уже две переменные. Пусть их зовут a и b, они по условию будут содержать целые числа, значит будут типа Integer. Еще нужны переменные c и d, в которые мы будем сохранять результат сложения и вычитания соответственно. Какого типа будут эти переменные? Ответьте самостоятельно и объясните, почему.

Внимание, несколько важных замечаний:
·         Слова, написанные курсивом – это комментарий для вас, его вводить в текст программы не надо.
·         Паскаль выполняет все строки программы в том порядке, в котором они написаны, сверху вниз.
·         Каждая строка, если представляет собой законченную мысль, должна заканчиваться точкой с запятой «;». О строках, которые не заканчиваются этим знаком мы поговорим отдельно.
·         Дальше «;» компьютер строку не читает. Поэтому надо начинать следующую строку.

Открываем среду программирования Паскаль. Если вы видите вот такую картинку:


надо нажать на слово File в верхней строчке и выбрать New.

А если картинка на экране вот такая:



 то сразу вводим такой текст:

Program primer1; - мы назвали нашу программу. Теперь её зовут «primer1».

Var
a,b,c,d: integer; - нам нужно приготовить 4 переменных, все – целые.

Begin – начало всей программы

Write (‘Vvedi chislo a=’);   - просим пользователя ввести число. Это будет  напечатано на экране.
Readln (a);    - даем команду запомнить введенное число в ячейку a
Write (‘Vvedi chislo b=’);  - аналогично просим ввести b
Readln (b);  - даем команду запомнить введенное число в ячейку b

c:= a+b; - складываем числа и запоминаем результат
d:=a-b; - вычитаем числа и запоминаем результат

Writeln (‘Summa =’ , c); - выводим на экран слово сумма и результат сложения
Writeln (‘Raznost =’ , d); - аналогично

Readln; - останавливаем программу, чтоб успеть увидеть результат
End. – заканчиваем выполнение программы

Как сохранить программу?
Нажимаем File - Save,  вводим название программы латиницей без пробелов, нажимаем ОК.


 Как запустить программу?

Перед запуском - сохраните. Сохранили? Тогда в строке меню: Run - Run или просто <Ctrl> + <F9>

Как выйти из программы?  Пока не выходим!

Комбинация <Alt> + <X>


Мы с вами говорили раньше о словах Var, integer, Begin, End. Но кроме этих слов мы написали в программе много других, пока незнакомых.

Write и Writeln – это команда писать на экране. Если вам надо написать какой-то текст, вы берете его в ЕДИНИЧНЫЕ КАВЫЧКИ, они на кнопке с буквами «Э» в русской раскладке и «Є» в украинской. А вам нужна английская.

Итак, если надо вывести текст – то кавычки, а если не переменную, а её значение – то без кавычек. Текстовые блоки (в кавычках) и блоки переменных (без кавычек, просто буква), разделяются внутри скобок оператора Write или Writeln запятыми.

Чем отличается Write от Writeln? LN, приписанное хвостиком к команде, заставляет после выполнения команды уйти на новую строку. Это как клавишу Enter при наборе текста нажать.

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

Еще мы встретились с любопытной комбинацией символов «:=». Это не смайлик. Дело в том. Что в Паскале есть два вида знака «равно».
  • Просто «равно» - это интеллигент, старенький профессор. Который вежливо спрашивает: «Скажите пожалуйста, а правая часть выражения таки равна его левой части? Да? Нет?» Т.е. обычный знак «равно» - это оператор сравнения.
  • Команда «Двоеточие равно» по-научному называется «оператор присваивания». А по поведению похожа на гопника. Комбинация «Двоеточие равно» никого ни о чем не спрашивает. Она берет ячейку памяти из левой части, и засовывает туда результат действий из правой части. Если в ячейке уже что-то было – старое значение стирается, и туда насильно вписывается новое. Разбой и хулиганство, одним словом… А по-научному – оператор присваивания.


В конце этой записи вы видите изображение карандаша. Если вы нажмете на него, то сможете оставить мне текстовый комментарий. Именно так вы будете выполнять самостоятельные работы. Не забывайте подписывать свои ответы!

Самостоятельная работа № 1:

1.      Определите типы переменных:
a.       A= 15

b.      B= - 37 000

c.       C= 3.14

d.      D= 32 701

e.       a1=’Vova’

f.       name = ‘y’

g.      pr1=’15’

h.      pr2=15

Кстати, обратите внимание, что переменные можно называть как большими, так и маленькими буквами, словами, буквами и цифрами. Главное, чтоб в имени переменной на первом месте стояла буква (а не цифра), и не было разрывов – в одно слово. Без пробелов.

2.      Что появится на экране после выполнения команд:
a.       C=8;
Write (‘mne c let’);

b.      C=8;
Write (‘mne’, c,’let’);

c.       C=8;
Write (‘mne ‘,c,’ let’);

3.      Начальное значение переменных: a=3, c=2. Чему будет равно с после выполнения действий?
a.       a=c
b.      c:=a
c.       a:=c
d.      c=a

4.      Напишите программу, которая будет умножать и делить два введенных числа. Чтобы выполнить задание, вспомните, что при делении мы получаем переменную типа Real. А значит, в текст программы, которая будет похожа на программу из этого урока, надо внести такое изменение:
Var
a,b,c: integer;
d: real;
                       

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

11 комментариев:

  1. Program primer2;
    Var
    a,b,c:integer;
    d:real;
    Begin
    Wtite('Vvedi chislo a=');
    Readln(a);
    Write('Vvedi chislo b=');
    Readln(b);
    c:=a*b;
    d:=a/b;
    Writeln('Proizvedenie =',c);
    Writeln('Chastnoe =',d);
    Readln;
    End.

    ОтветитьУдалить
  2. Program primer2;
    Var
    a,b,c:integer;
    d:real;
    Begin
    Wtite('Vvedi chislo a=');
    Readln(a);
    Write('Vvedi chislo b=');
    Readln(b);
    c:=a*b;
    d:=a/b;
    Writeln('Proizvedenie =',c);
    Writeln('Chastnoe =',d);
    Readln;
    End.


    Надеюсь, правильно.

    ОтветитьУдалить
  3. Program primer2;
    Var
    a,b,c:integer;
    d:real;
    Begin
    Wtite('Vvedi chislo a=');
    Readln(a);
    Write('Vvedi chislo b=');
    Readln(b);
    c:=a*b;
    d:=a/b;
    Writeln('Proizvedenie =',c);
    Writeln('Chastnoe =',d);
    Readln;
    End.

    ОтветитьУдалить
  4. Program 1;
    Var
    a,b,c:integer;
    d:real;
    Begin
    Wtite('Vvedi chislo a=');
    Readln(a);
    Write('Vvedi chislo b=');
    Readln(b);
    c:=a*b;
    d:=a/b;
    Writeln('Proizvedenie =',c);
    Writeln('Chastnoe =',d);
    Readln;
    End.

    ОтветитьУдалить
  5. Program hacker;
    Var
    a,b,c:integer;
    d:real;
    Begin
    Wtite('Vvedi chislo a=');
    Readln(a);
    Write('Vvedi chislo b=');
    Readln(b);
    c:=a*b;
    d:=a/b;
    Writeln('Proizvedenie =',c);
    Writeln('Chastnoe =',d);
    Readln;
    End.

    Андрей Ромейко 8-В

    ОтветитьУдалить
  6. Этот комментарий был удален автором.

    ОтветитьУдалить
  7. Program primer2;
    Var
    a,b,c:integer;
    d:real;
    Begin
    Wtite('Vvedi chislo a=');
    Readln(a);
    Write('Vvedi chislo b=');
    Readln(b);
    c:=a*b;
    d:=a/b;
    Writeln('Proizvedenie =',c);
    Writeln('Chastnoe =',d);
    Readln;
    End.

    Катя Багирова 8-Б

    ОтветитьУдалить
  8. Program primer2;
    Var
    a,b,c:integer;
    d:real;
    Begin
    Wtite('Vvedi chislo a=');
    Readln(a);
    Write('Vvedi chislo b=');
    Readln(b);
    c:=a*b;
    d:=a/b;
    Writeln('Proizvedenie =',c);
    Writeln('Chastnoe =',d);
    Readln;
    End.

    Пученцева

    ОтветитьУдалить
  9. Program pr2;
    Var
    a,b,c:integer;
    d:real;
    Begin
    Write('Vvedi chislo a=');
    Readln(a);
    Write('Vvedi chislo b=');
    Readln(b);
    c:=a*b;
    d:=a/b;
    Writeln('Proizvedenie =',c);
    Writeln('Chastnoe =',d);
    Readln;
    End.

    Малик Алёна

    ОтветитьУдалить
  10. Все молодцы! Сейчас как получите 12 на уроке! А я как поставлю их в журнал! :-)

    ОтветитьУдалить