Добавить материал и получить бесплатное свидетельство о публикации в СМИ
Эл. №ФС77-60625 от 20.01.2015
Инфоурок / Информатика / Конспекты / В помощь учителю для изучения темы "Pascal" (10 класс)

В помощь учителю для изучения темы "Pascal" (10 класс)

  • Информатика

Название документа карточки с заданиями.docx

Поделитесь материалом с коллегами:

Карточка с заданиями.

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

  2. Вывести на экран таблицу умножения на 5.

  3. Температура С в градусах Цельсия изменяется от 0 до 100 с шагом 5. Напечатать таблицу перевода температуры из градусов Цельсия в градусы Фаренгейта (F). Формула перевода: F = 1,8 C + 32.

  4. Напечатать таблицу соответствия между весом в фунтах и весом в кг для значений от 1 до 10 фунтов с шагом  0,5 фунта. Формула перевода: 1 фунт = 400 г.

  5. Составьте таблицу значений функции y = 5x – 2 на отрезке [1; 20]  с шагом

  6. b = 2.

  7. Дано целое число N (> 0). Найти наименьшее целое положительное
    число K, квадрат которого превосходит N: K2 > N. Функцию извлечения
    квадратного корня не использовать.

  8. Вычислить сумму первых N натуральных чисел.

Карточка с заданиями.

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

  2. Вывести на экран таблицу умножения на 5.

  3. Температура С в градусах Цельсия изменяется от 0 до 100 с шагом 5. Напечатать таблицу перевода температуры из градусов Цельсия в градусы Фаренгейта (F). Формула перевода: F = 1,8 C + 32.

  4. Напечатать таблицу соответствия между весом в фунтах и весом в кг для значений от 1 до 10 фунтов с шагом  0,5 фунта. Формула перевода: 1 фунт = 400 г.

  5. Составьте таблицу значений функции y = 5x – 2 на отрезке [1; 20]  с шагом

  6. b = 2.

  7. Дано целое число N (> 0). Найти наименьшее целое положительное
    число K, квадрат которого превосходит N: K2 > N. Функцию извлечения
    квадратного корня не использовать.

  8. Вычислить сумму первых N натуральных чисел.

Карточка с заданиями.

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

  2. Вывести на экран таблицу умножения на 5.

  3. Температура С в градусах Цельсия изменяется от 0 до 100 с шагом 5. Напечатать таблицу перевода температуры из градусов Цельсия в градусы Фаренгейта (F). Формула перевода: F = 1,8 C + 32.

  4. Напечатать таблицу соответствия между весом в фунтах и весом в кг для значений от 1 до 10 фунтов с шагом  0,5 фунта. Формула перевода: 1 фунт = 400 г.

  5. Составьте таблицу значений функции y = 5x – 2 на отрезке [1; 20]  с шагом

  6. b = 2.

  7. Дано целое число N (> 0). Найти наименьшее целое положительное
    число K, квадрат которого превосходит N: K2 > N. Функцию извлечения
    квадратного корня не использовать.

  8. Вычислить сумму первых N натуральных чисел.









Карточка с заданиями.

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

  2. Вывести на экран таблицу умножения на 5.

  3. Температура С в градусах Цельсия изменяется от 0 до 100 с шагом 5. Напечатать таблицу перевода температуры из градусов Цельсия в градусы Фаренгейта (F). Формула перевода: F = 1,8 C + 32.

  4. Напечатать таблицу соответствия между весом в фунтах и весом в кг для значений от 1 до 10 фунтов с шагом  0,5 фунта. Формула перевода: 1 фунт = 400 г.

  5. Составьте таблицу значений функции y = 5x – 2 на отрезке [1; 20]  с шагом

  6. b = 2.

  7. Дано целое число N (> 0). Найти наименьшее целое положительное
    число K, квадрат которого превосходит N: K2 > N. Функцию извлечения
    квадратного корня не использовать.

  8. Вычислить сумму первых N натуральных чисел.

Карточка с заданиями.

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

  2. Вывести на экран таблицу умножения на 5.

  3. Температура С в градусах Цельсия изменяется от 0 до 100 с шагом 5. Напечатать таблицу перевода температуры из градусов Цельсия в градусы Фаренгейта (F). Формула перевода: F = 1,8 C + 32.

  4. Напечатать таблицу соответствия между весом в фунтах и весом в кг для значений от 1 до 10 фунтов с шагом  0,5 фунта. Формула перевода: 1 фунт = 400 г.

  5. Составьте таблицу значений функции y = 5x – 2 на отрезке [1; 20]  с шагом

  6. b = 2.

  7. Дано целое число N (> 0). Найти наименьшее целое положительное
    число K, квадрат которого превосходит N: K2 > N. Функцию извлечения
    квадратного корня не использовать.

  8. Вычислить сумму первых N натуральных чисел.

Карточка с заданиями.

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

  2. Вывести на экран таблицу умножения на 5.

  3. Температура С в градусах Цельсия изменяется от 0 до 100 с шагом 5. Напечатать таблицу перевода температуры из градусов Цельсия в градусы Фаренгейта (F). Формула перевода: F = 1,8 C + 32.

  4. Напечатать таблицу соответствия между весом в фунтах и весом в кг для значений от 1 до 10 фунтов с шагом  0,5 фунта. Формула перевода: 1 фунт = 400 г.

  5. Составьте таблицу значений функции y = 5x – 2 на отрезке [1; 20]  с шагом

  6. b = 2.

  7. Дано целое число N (> 0). Найти наименьшее целое положительное
    число K, квадрат которого превосходит N: K2 > N. Функцию извлечения
    квадратного корня не использовать.

  8. Вычислить сумму первых N натуральных чисел.


Название документа ответы.docx

Поделитесь материалом с коллегами:

Карточка с заданиями.

1)Вывести на экран квадраты чисел, находящихся в диапазоне от 0 до 1 с шагом 0,2.


program q;

var k, s : real;

begin

s := 0;

while s <= 1 do


begin

k := sqr(s);

writeln (k);

s := s + 0.2;

end;


end.


2)Вывести на экран таблицу умножения на 5.


program q;

var k, s : real;

begin

s := 0;

while s <= 10 do


begin

k := s*5;

writeln (s,'*5=',k);

s := s + 1;

end;


end.


3)Температура С в градусах Цельсия изменяется от 0 до 100 с шагом 5. Напечатать таблицу перевода температуры из градусов Цельсия в градусы Фаренгейта (F). Формула перевода: F = 1,8 C + 32.


program q;

var c, F : real;

begin

c := 0;

while c <= 100 do


begin

F := 1.8*c+32;

writeln ('C=',c,' F=',F);

c := c + 5;

end;


end.




4) Напечатать таблицу соответствия между весом в фунтах и весом в кг для значений от 1 до 10 фунтов с шагом  0,5 фунта. Формула перевода: 1 фунт = 400 г.


program q;

var f, kg : real;

begin

f := 0;

while f <= 10 do


begin

kg := f*400;

writeln (f,'ф. равняется ',kg,' килограмм');

f := f + 0.5;

end;


end.


5) Составьте таблицу значений функции y = 5x – 2 на отрезке [1; 20]  с

шагом b = 2.



6)Дано целое число N (> 0). Найти наименьшее целое положительное
число K, квадрат которого превосходит N: K2 > N. Функцию извлечения
квадратного корня не использовать.


7)Вычислить сумму первых N натуральных чисел.



Название документа предусловие_практика.docx

Поделитесь материалом с коллегами:

КОНСПЕКТ УРОКА

«Паскаль. Решение задач с использованием операторы цикла с предусловием»


Дата проведения: 16.10.2014

Учебный предмет: Информатика и ИКТ.

Учебный класс: 10 Б.

Тема урока: Паскаль. Решение задач с использованием условных операторов.

Тип урока: Урок проверки знаний и умений.

Продолжительность урока: 40 мин.


Цели урока:

Образовательные: применить на практике знания о среде программирования Pascal ABC, способе построения программ, решить задачи с использованием операторов цикла с предусловием.

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

Воспитательные: воспитать умение слушать и слышать, самооценку у обучающихся.


Оборудование: компьютеры со средой программирования Pascal ABC, интерактивная доска, презентация, карточки с заданиями.


Структура урока:

  1. Организационный момент (2 мин.)

  2. Актуализация знаний (4 мин.)

  3. Сообщение темы урока (2 мин.)

  4. Самостоятельная работа обучающихся (25 мин.)

  5. Рефлексия (5 мин.)

  6. Подведение итогов урока и выдача домашнего задания (2 мин.)


1.Организационный момент (2 мин.)

Приветствие учащихся. Проверка готовности учащихся к уроку.


2.Актуализация знаний (4 мин.)

Учитель: на прошлом уроке мы говорили об операторах цикла с предусловием. Давайте еще раз проговорим, какова структура программы с использованием такого оператора?

Ученики: (ответы)

Учитель: Как поступить, если операция содержит несколько команд?

Ученики: (ответы)


3.Сообщение темы урока (2 мин.)

Учитель: Запишите в тетрадь тему урока: Паскаль. Решение задач с использованием операторов цикла.


4.Самостоятельная работа обучающихся (25 мин.)

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

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

Карточка с заданиями.

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

  2. Вывести на экран таблицу умножения на 5.

  3. Температура С в градусах Цельсия изменяется от 0 до 100 с шагом 5. Напечатать таблицу перевода температуры из градусов Цельсия в градусы Фаренгейта (F). Формула перевода: F = 1,8 C + 32.

  4. Напечатать таблицу соответствия между весом в фунтах и весом в кг для значений от 1 до 10 фунтов с шагом  0,5 фунта. Формула перевода: 1 фунт = 400 г.

  5. Составьте таблицу значений функции y = 5x – 2 на отрезке [1; 20]  с шагом

  6. b = 2.

  7. Дано целое число N (> 0). Найти наименьшее целое положительное
    число K, квадрат которого превосходит N: K2 > N. Функцию извлечения
    квадратного корня не использовать.

  8. Вычислить сумму первых N натуральных чисел.


5. Рефлексия (5 мин.)


Учитель: Останавливается на той задаче на которой вы сейчас находитесь и садимся за столы. Программу выключаем.

Учитель: Сколько задач успели решить?

Ученики: (ответы)

Учитель: с какими сложностями столкнулись во время решения задач?

Ученики: (ответы)


6.Выдача домашнего задания (2 мин.)

Учитель: дома решаем оставшиеся задачи, скопируйте решение в один файл и распечатайте его, не забудьте подписать фамилию. А также Творческое задание. Составьте задачу на использование оператора цикла WHILE и решите ее. Спасибо за урок, можете быть свободными.


Название документа Паскаль.pptx

Поделитесь материалом с коллегами:

Паскаль. Решение задач с Использованием линейных операторов
Интерфейс PascalABC Запуск программы Окно ввода текста программы Окно вывода...
Program ; var : ; begin  ; end. Структура программы
Алфавит Pascal ABC. Латинские буквы: A a B b… Z z (по 26 букв) Цифры: 0 1 2.....
Существует два важных правила: – Во-первых, это употребление заглавных и стро...
Таблица специальных знаков Знак Обозначение . конец программы, разделение цел...
Оператор вывода  Write (b1, b2, b3,…, bn);  - Выводятся на экран значения пер...
Операторы ввода. Read(список переменных); ReadLn(список переменных);
Типы переменных Запись Тип переменных Пример r: Real; переменная вещественног...
Математические функции
Program Test; var A,B,C: integer; begin readln (A,B); C:=(A+B)*(B-A); writeln...
1 из 11

Описание презентации по отдельным слайдам:

№ слайда 1 Паскаль. Решение задач с Использованием линейных операторов
Описание слайда:

Паскаль. Решение задач с Использованием линейных операторов

№ слайда 2 Интерфейс PascalABC Запуск программы Окно ввода текста программы Окно вывода
Описание слайда:

Интерфейс PascalABC Запуск программы Окно ввода текста программы Окно вывода результата программы

№ слайда 3 Program ; var : ; begin  ; end. Структура программы
Описание слайда:

Program <Имя программы>; var <Список однотипных переменных>: <тип переменных>; begin  <Тело программы>; end. Структура программы

№ слайда 4 Алфавит Pascal ABC. Латинские буквы: A a B b… Z z (по 26 букв) Цифры: 0 1 2..
Описание слайда:

Алфавит Pascal ABC. Латинские буквы: A a B b… Z z (по 26 букв) Цифры: 0 1 2..9 Знаки математических операций: +(сложение); -(вычитание); *(умножение); /(деление) Знаки математических отношений: < > = <=(знак меньше или равно); >=(больше или равно); <>(не равно) Специальные знаки: [ ] . , ( ) : ; ^ { } $ # @

№ слайда 5 Существует два важных правила: – Во-первых, это употребление заглавных и стро
Описание слайда:

Существует два важных правила: – Во-первых, это употребление заглавных и строчных букв. Большинство существующих программ не различают буквы разных регистров. Таким образом, записи "progRaM" и "PROGram" будем считать идентичными.  – Во-вторых, некоторые символы латиницы и кириллицы совпадают по начертанию. Необходимо следить, что бы буквы были латинские! Нельзя вместо буквы "К" латинской написать "K" русскую. 

№ слайда 6 Таблица специальных знаков Знак Обозначение . конец программы, разделение цел
Описание слайда:

Таблица специальных знаков Знак Обозначение . конец программы, разделение целой и дробной частей вещественного числа (десятичная точка) , разделение элементов списков .. указание диапазона : используется в составе оператора присваивания :=, а также для указания формата вывода в оператореWriteln ; отделяет один раздел программы от другого, разделяет операторы ' используется для ограничения строковых констант - + * / ( ) арифметические знаки < > знаки отношений = используется в составе оператора присваивания, в разделах описаний констант и типов, используется как знак отношения (равно) ^ используется для именования динамических переменных { } ограничение комментариев в программе [ ] заключают в себе индексы элементов массивов

№ слайда 7 Оператор вывода  Write (b1, b2, b3,…, bn);  - Выводятся на экран значения пер
Описание слайда:

Оператор вывода  Write (b1, b2, b3,…, bn);  - Выводятся на экран значения переменных b1, b2, b3,…, bn Writeln (b1, b2, b3,…, bn); - выводится на экран значения переменных b1, b2, b3,…, bn и после этого осуществляется переход на новую строку Write (‘значения переменных’, b1, b2, b3,…, bn);  - выводится на экран сообщение «значения переменных», затем соответствующие значения переменных b1, b2, b3,…, bn и после этого осуществляется переход на новую строку

№ слайда 8 Операторы ввода. Read(список переменных); ReadLn(список переменных);
Описание слайда:

Операторы ввода. Read(список переменных); ReadLn(список переменных);

№ слайда 9 Типы переменных Запись Тип переменных Пример r: Real; переменная вещественног
Описание слайда:

Типы переменных Запись Тип переменных Пример r: Real; переменная вещественного типа 35,23; i: Integer; переменная целого типа 143 c: Char; переменная-символ а b: Boolean; логическая переменная True – истина;False – ложь. s: String; переменная строки t: Text; переменная для объявления текстового файла

№ слайда 10 Математические функции
Описание слайда:

Математические функции

№ слайда 11 Program Test; var A,B,C: integer; begin readln (A,B); C:=(A+B)*(B-A); writeln
Описание слайда:

Program Test; var A,B,C: integer; begin readln (A,B); C:=(A+B)*(B-A); writeln (C); end. Пример написания программы. Найти произведение суммы и разницы двух чисел. Заголовок программы Раздел описания переменных Ввод переменных с клавиатуры Вычисления Вывод информации на экран Конец программы

Название документа Паскаль_Линейные_алгоритмы.docx

Поделитесь материалом с коллегами:

КОНСПЕКТ УРОКА

«Паскаль. Решение задач с использованием линейных операторов»


Дата проведения: 02.10.2014

Учебный предмет: Информатика и ИКТ.

Учебный класс: 10 Б.

Тема урока: Паскаль. Решение задач с использованием линейных операторов.

Тип урока: Изучение нового материала.

Продолжительность урока: 40 мин.


Цели урока:

Образовательные: познакомить учащихся с программной средой Pascal ABC, с структурой программы, операторами ввода-вывода и присваивания, научить строить программы с использованием линейных операторов.

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

Воспитательные: воспитать умение слушать и слышать, самооценку у обучающихся.


Оборудование: компьютер со средой программирования Pascal ABC, интерактивная доска, презентация.


Структура урока:

  1. Организационный момент (2 мин.)

  2. Актуализация знаний (2 мин.)

  3. Сообщение темы урока (2 мин.)

  4. Изложение нового материала (27 мин.)

  5. Рефлексия (5 мин.)

  6. Подведение итогов урока (2 мин.)


1.Организационный момент (2 мин.)

Приветствие учащихся. Проверка готовности учащихся к уроку.


2.Актуализация знаний (2 мин.)

Учитель: языки программирования предназначены для создания программ, которые могут быть использованы ЭВМ или другими автоматическими устройствами, например, станки с числовым программным управлением.

Учитель: С какими языками программирования вы знакомы?

Ученики: (ответы)

Учитель: Сегодня мы вспомним такой язык программирования как Pascal .


3.Сообщение темы урока (2 мин.)

Учитель: Запишите в тетрадь сегодняшнее число – 2 октября и тему урока: Паскаль. Решение задач с использованием линейных операторов. (Слайд 1)


4.Изложение нового материала (27 мин.)

Учитель: Для программирования мы будем пользоваться учебной системой программирования Pascal ABC. Система Pascal ABC предназначена для обучения программированию на языке Паскаль и ориентирована на школьников.

Интерфейс программы очень удобен и прост. (Слайд 2)


hello_html_m65c682cf.gif

Программа открывается в своем окне, аналогичном стандартным окнам OC Windows с такими же элементами окна (сохранение, открытие и т.д.). Тело программы пишется в верхнем свободном поле, нижнее поле – это окно вывода, в нем будет отображаться результаты вашей программы. Для запуска программы используется инструмент: hello_html_m5a6904c6.gif. Сохраненные файлы будут иметь расширение: .pas


Учитель: Сейчас я вам выдам карточки-памятки, которые вы должны будете вклеить в тетрадь.

Учитель: Давайте теперь вспомним непосредственно структуру программы:

(Слайд 3)


Program <Имя программы>;
var <Список однотипных переменных>: <тип переменных>;
begin 
<Тело программы>;
end.

Запишите ее в тетрадь.


Слова Program, Begin и End являются служебными словами. Правильное и уместное употребление этих слов является обязательным в написание программ. В угловых скобках указанно то, что необходимо записать на этих местах.

Учитель: Теперь познакомимся непосредственно с алфавитом Pascal ABC. (Слайд 4)

  • Латинские буквы: A a B b… Z z (по 26 букв)

  • Цифры: 0 1 2..9

  • Знаки математических операций: +(сложение); -(вычитание); *(умножение); /(деление)

  • Знаки математических отношений: < > = <=(знак меньше или равно); >=(больше или равно); <>(не равно)

  • Специальные знаки: [ ] . , ( ) : ; ^ { } $ # @

Существует два важных правила: (Слайд 5)

Во-первых, это употребление заглавных и строчных букв. Большинство существующих трансляторов не различают буквы разных регистров. Таким образом, записи "progRaM" и "PROGram" будем считать идентичными. 
– Во-вторых, некоторые символы латиницы и кириллицы совпадают по начертанию. Необходимо следить, что бы буквы были латинские! Нельзя вместо буквы "К" латинской написать "K" русскую. 

Учитель: (Слайд 6) Теперь давайте рассмотрим значения специальных знаков:


Знак

Обозначение

.

конец программы, разделение целой и дробной частей вещественного числа (десятичная точка)

,

разделение элементов списков

..

указание диапазона

:

используется в составе оператора присваивания :=, а также для указания формата вывода в операторе Writeln

;

отделяет один раздел программы от другого, разделяет операторы

'

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

- + * / ( )

арифметические знаки

< >

знаки отношений

=

используется в составе оператора присваивания, в разделах описаний констант и типов, используется как знак отношения (равно)

^

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

{ }

ограничение комментариев в программе

[ ]

заключают в себе индексы элементов массивов


Учитель: Операторы ввода и вывода (Слайд 7).


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

Для вывода информации в Паскале используется оператор:

Write (b1, b2, b3,…, bn); 
выводится на экран значения переменных b1, b2, b3,…, bn 
Writeln (b1, b2, b3,…, bn);
выводится на экран значения переменных b1, b2, b3,…, bn и после этого осуществляется переход на новую строку
Writeln ;
переход на новую строку 
Write (‘значения переменных’, b1, b2, b3,…, bn); 
выводится на экран сообщение «значения переменных», затем соответствующие значения переменных b1, b2, b3,…, bn и после этого осуществляется переход на новую строку


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

Read(список переменных);

ReadLn(список переменных);

Разница между работой процедур Read и Readln состоит в следующем: после выполнения Read значение следующего данного считывается с этой же строчки, а после выполнения Readln - с новой строки.


Учитель: Так же необходимо помнить типы переменных:

(Слайд 8)

Запись

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

Пример

r: Real;

переменная вещественного типа

35,23;

i: Integer;

переменная целого типа

143

c: Char;

переменная-символ

а

b: Boolean;

логическая переменная

True – истина; False – ложь.

s: String;

переменная строки


t: Text;

переменная для объявления текстового файла



Учитель: Так же в вашей памятке есть таблица записей функций. (Слайд 9)

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


Основные функции:

hello_html_190a9a33.gif


Учитель: Давайте напишем программу, которая напечатает слово Информатика

(Один ученик вызывается к доске)



program proba;

begin

writeln ('информатика');

end.



Учитель: Программу, которая будет находить сумму двух чисел, которые мы сами же будет записывать.

(Один ученик вызывается к доске)

program proba;

var x,y, summ: integer;

begin

writeln ('введите x');

readln (x);

writeln ('введите y');

readln (y);

summ:=x+y;

writeln ('Сумма х и у равняется ',summ);

end.


5.Организационный момент (5 мин.)


Учитель: какой алфавит используется для написания программ в Паскаль?

Ученики: (ответы)

Учитель: Какие есть операторы ввода и вывода?

Ученики: (ответы)

Учитель: Какие типы переменных мы будем использовать?

Ученики: (ответы)


6.Организационный момент (2 мин.)


Учитель: на следующем уроке мы продолжим решать задачи с использованием линейных операторов. Спасибо за этот урок, можете идти на перемену.


6


Название документа Язык программирования Pascal ABC.doc

Поделитесь материалом с коллегами:

1. Среда языка программирования Pascal ABC


Первая версия языка Паскаль была разработана в 1968 году. Ее разработчиком является швейцарский ученый Никлаус Вирт. Свое название язык получил в честь создателя первой механической вычислительной машины француза Блеза Паскаля. На основе языка Паскаль в 1985 г. фирма Borland выпустила версию Turbo Pascal версии 3.0. С этого времени язык Паскаль используется во всем мире в учебных заведениях в качестве первого изучаемого языка программирования.

Система Pascal ABC основана на языке Delphi Pascal и призвана осуществить постепенный переход от простейших программ к объектно-ориентированному программированию.

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

Для вызова среды программирования Pascal ABC необходимо запустить на выполнение файл PascalABC.exe или загрузить среду посредством ярлыка, если он существует на рабочем столе.

Для создания нового файла необходимо выполнить следующие действия: Файл/Новый или нажать кнопку hello_html_m58d325b.png на панели инструментов. На экране откроется чистое окно с именем Program1.pas. , его при сохранении файла желательно изменить.

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

Для сохранения программы необходимо выполнить команду Файл/Сохранить как…имя файла, или нажать кнопку hello_html_m78c60eb7.png на панели инструментов, если необходимо сохранить существующую уже программу.

Для загрузки программы из файла необходимо выполнить команду Файл/Открыть выбрать файл или нажать кнопку hello_html_22d6855f.png на панели инструментов.

Для выполнения программы необходимо выполнить команду Программа/Выполнить, либо нажать клавишу F9, либо нажать кнопку hello_html_m23265b64.png.

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


hello_html_m52171479.png


Наиболее часто встречающиеся ошибки при работе в системе программирования Pascal ABC:

«неожиданный символ» - символ введен не с регистра английских букв;

«ожидался символ "точка", "точка с запятой", Begin и др.»- отсутствует необходимый символ или команда;

«неизвестное имя» - неправильно введена команда;

«ошибка ввода» - неверно указано имя файла;

«ожидался конец файла» - ошибки в команде end.


Структура программы

Программа, записанная на языке Pascal может содержать следующие разделы:

1. Заголовок (Program)

2. Раздел меток (Label)

3. Раздел констант (Const)

4. Раздел типов (Type)

5. Раздел переменных (Var)

6. Раздел процедур и функций (Procedure, Function).

7. Раздел операторов (Begin...End)

Все программы обязательно имеют раздел заголовка и раздел операторов, остальные составляющие могут отсутствовать. При отсутствии некоторых частей программы общий порядок их следования сохраняется. Разделы между собой разделяются знаком ";" Раздел операторов заключается в операторные скобки. Это зарезервированные слова Begin, End. Раздел операторов заканчивается точкой. Раздел "заголовок" начинается с зарезервированного слова program, за которым указывается имя программы. В качестве имени может использоваться любой набор символов алфавита с несколькими исключениями:

1. нельзя использовать зарезервированные слова;

2. нельзя начинать имя с цифры;

3. при использовании имени не используется пробел.

Программа на языке Pascal может иметь следующий вид:

Program <имя программы>;

<раздел описаний, в котором описываются данные>

Begin <раздел команд (тело программы)>;

End.


2. Алфавит, типы данных языка программирования Pascal


Алфавит языка программирования Pascal включает:

Латинские буквы: A a B b… Z z

Цифры: 0 1 2..9

Знаки математических операций: +(сложение) -(вычитание) *(умножение) /(деление)

Знаки математических отношений: < > = <=(знак меньше или равно) >=(больше или равно) <>(не равно)

Специальные знаки: [ ] . , ( ) : ; ^ { } $ # @

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

имя (идентификатор) - это ее обозначение и место в памяти. Имя переменной (идентификатор) всегда должно начинаться с латинской буквы, после которой могут следовать несколько латинских букв, цифры либо символ подчеркивания «_», записанные без пробелов;

тип - множество допустимых значений и множество применимых операций к ней;

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

Постоянной (константа) называется величина, значение которой не изменяется в процессе исполнения программы. Константы должны объявляться в разделе констант, начиная с зарезервированного слова Сonst. В языке программирования Pascal константами являются любые явно заданные в программе данные.

Пример. Const year=2009;

При записи числовых констант с дробной частью эта часть отделяется от целой не запятой, а точкой.

Пример. Const Pi=3.14;

Для записи очень больших по модулю или очень малых (близких к нулю) чисел существует возможность записи их в так называемой экспоненциальной форме.

Пример: Const а=2.4567Е-06

В вещественных константах (они соответствуют действительным числам в математике) присутствует точка, которая разделяет целую и дробную части числа, или буква Е. Использование Е приводит к представлению числа в виде с плавающей запятой (точкой): запись mEp, соответствует числу hello_html_m3faccb57.gif .

Константы, представляющие собой строковые величины, заключаются в апострофы.

Пример. Const Name='Татьяна';

В качестве данных в программах на языке Pascal могут выступать числа, символы, целые строки символов. С этими видами информации выполняются совершенно разные действия. Например, с числовыми величинами производятся арифметические операции, чего невозможно сделать с символьными. Кроме того, разные виды данных требуют различного объема памяти для хранения. В соответствии с этими соображениями в языке Pascal введено понятие "Тип" (Type). Тип переменной указывает на то, какие данные могут быть сохранены в этом участке памяти, и в каких действиях эта переменная может участвовать.

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

Пример. Var

A,К: Real; B : Integer; C : Char;

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

Различают переменные следующих простых типов: целые (Integer, Byte, ShortInt, Word, LongInt), вещественные (Real, Comp, Double, Single, Extended), логический (Boolean), символьный (Char).


Тип

Длина(байт)

Диапазон значений

Операции

Целые типы

integer

2

-32768..32767

+, -, /, *, Div, Mod, >=, <=, =, <>, <, >

byte

1

0..255

+, -, /, *, Div, Mod, >=, <=, =, <>, <, >

word

2

0..65535

+, -, /, *, Div, Mod, >=, <=, =, <>, <, >

shortint

1

-128..127

+, -, /, *, Div, Mod, >=, <=, =, <>, <, >

longint

4

-2147483648..2147483647

+, -, /, *, Div, Mod, >=, <=, =, <>, <, >

Вещественные типы

real

6

2,9*10-39 - 1,7*1038

+, -, /, *, >=, <=, =, <>, <, >

single

4

1,5*10-45 - 3,4*1038

+, -, /, *, >=, <=, =, <>, <, >

double

8

5*10-324 - 1,7*10308

+, -, /, *, >=, <=, =, <>, <, >

extended

10

3,4*10-4932 - 1,1*104932

+, -, /, *, >=, <=, =, <>, <, >

сomp

8

9.2*1018..9.2*1018

+, -, /, *, >=, <=, =, <>, <, >

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

вoolean

1

true, false

Not, And, Or, Xor, >=, <=, =, <>, <, >

Символьный тип

char

1

все символы кода ASCII

+, >=, <=, =, <>, <,



3. Оператор присваивания. Арифметические операции и стандартные функции


Оператор присваивания - один из самых простых и наиболее часто используемых операторов в любом языке программирования, в том числе и в Pascal. Он предназначен для вычисления нового значения некоторой переменной, а также для определения значения, возвращаемого функцией. В общем виде оператор присваивания можно записать так: переменная:= выражение;

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

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

Операнд 1

Операнд 2

Результат сложения, вычитания, умножения

Результат деления

Integer

Integer

Integer

Real

Integer

Real

Real

Real

Real

Integer

Real

Real

Real

Real

Real

Real

В Pascal существуют арифметические операции: +(сложение), -(вычитание), *(умножение), /(деление), DIV (целочисленное деление), MOD (остаток от деления).

Пример: X := (Y + Z) / (2 + Z * 10) - 1/3;

Пример. При выполнении целочисленного деления (операция DIV) остаток от деления отбрасывается: 15 div 3 = 5; 18 div 5 = 3; 7 div 10 = 0.

Пример. С помощью операции MOD можно найти остаток от деления одного целого числа на другое: 15 mod 3 = 0;18 mod 5 = 3; 7 mod 10 = 7.

Пример. Программа с использованием операций с целочисленными переменными.

Program summa;

Var a,b,s,с,р: integer; {раздел описания переменных}

Begin {начало тела программы}

a:=12; {команда присваивания записывает в переменную a число 12}

b:=5; {команда присваивания записывает в переменную b число 5}

{переменные A и B являются исходными данными}

s:=a+b; {команда присваивания вычисляет сумму значений переменных a и b и записывает результат в переменную s}

Writeln('a + b=',s) {вывод значения переменной s на экран - вывод результата}

c:=a div b; {деление нацело (вычисление целой части от деления а на b)}

writeln('a div b=',c); {вывод на экран частного от деления нацело а на b}

р:=a mod b; {вычисление остатка от деления а на b}

Writeln ('a mod b=',р); {вывод на экран остатка от деления а на b}

End. {конец программы}

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

a + b=17

a div b=2

a mod b=2

Логический операнд - это конструкция, которая задает правило для вычисления одного из двух возможных значений: True или False. Чаще всего логические выражения используют в операторах присваивания или для записи условия, чтобы на некоторый вопрос получить ответ “ДА” или “НЕТ”. Составными частями логических выражений могут быть: логические значения (True, False); логические переменные; отношения, операции: Not(НЕ), And(И), Or(ИЛИ), Xor(исключающее ИЛИ).

Пример. 1) Y:=True; 2) LogPer:=A > B; 3) Log1:=(A = B) And (C <= D).

Арифметические выражения - это конструкции результатом, которых является число. В состав арифметического выражения на языке Паскаль могут входить:

числовые константы;

имена переменных;

знаки математических операций;

математические функции и функции, возвращающие число;

открывающиеся и закрывающиеся круглые скобки.

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

Имя функции

Математическое значение

Тип результата

abs (a)

|a|- модуль числа

Совпадает с типом аргумента

sqr (a)

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

Совпадает с типом аргумента

sqrt (a)

hello_html_2b56dc21.gif- квадратный корень

Вещественное

sin (a)

sin a - синус x радиан

Вещественное

cos (a)

cos a - косинус x радиан

Вещественное

arctan (a)

arctg a - арктангенс числа x

Вещественное

ln (a)

ln a- натуральный логарифм x

Вещественное

exp (a)

ea значение e в степени x

Вещественное

trunc(x)

[x] - целая часть числа x

Целое

frac(x)

{x} - дробная часть числа х

Вещественное

Pi

- число

Вещественное

Round (x)

Округление до ближайшего целого

Целое

Int (x)

[x] целая часть числа

Вещественное

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

1) вычисляются значения в скобках;

2) вычисляются значения функций;

3) выполняется операции смена знака, возведение в степень;

4) выполняются операции умножения и деления (в том числе целочисленного деления и нахождения остатка от деления);

5) выполняются операции сложения и вычитания.

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

Program fun;

Var a, c :integer; {раздел описания переменных целого типа}

b,:real; {раздел описания переменных вещественного типа}

Begin {начало тела программы}

a:=16; {исходные данные}

b:= sqrt (a); {функция sqrt извлекает квадратный корень из числа a и присваивает его значение переменной b - тип результата вещественный}

writeln('b=’,b);{вывод на экран значения переменной b}

c:=sqr (а); {функция sqr возводит в квадрат значение переменной а и присваивает его переменной c - тип результата целый}

writeln(‘c=’,c); {вывод на экран монитора значения переменной c}

Еnd.

! Аргументы функции всегда пишутся в скобках, операцию умножения опускать нельзя.

! Нельзя писать выражения в виде обыкновенных дробей.

Примеры записи математических выражений:

Математическая запись

Запись на Pascal

1. x2 - 7,2x + 6

Sqr(x) - 7.2 * x + 6

2. hello_html_m21ccb55.png

(Abs(x) - Abs(y)) / (1 + Abs(x * y))




4. Организация ввода и вывода данных


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

Read(список переменных);

ReadLn(список переменных);

Разница между работой процедур Read и Readln состоит в следующем: после выполнения Read значение следующего данного считывается с этой же строчки, а после выполнения Readln - с новой строки.

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

Пример.

Var A : real; B : integer; C : char;

Begin

Read(A, B, C)

End.

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

Write (список констант и/или переменных, разделенных запятой)

WriteLn(список констант и/или переменных, разделенных запятой)

Различие между двумя операторами вывода: после выполнения оператора Writeln происходит переход на новую строчку, а после выполнения инструкции Write, переход на новую строчку не происходит. При вызове оператора Writeln без параметров просто происходит переход на новую строчку.

Пример. Write(A, B, C);

WriteLn('Корнем уравнения является ', X);

Для управления размещением выводимых значений процедуры Write и WriteLn используются форматный вывода. Под форматом данных понимается расположение и порядок отдельных полей данных.

Процедура вывода с форматом для целого типа имеет вид:

WriteLn(A:N); где N - выражение целого типа, задающие длину поля вывода значений.

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

WriteLn(R:N:M); где N - выражение целого типа, задающие длину поля вывода значений, М- количество знаков в дробной части.

Пример:

A:=25; Write (A); результат 25

A:=25.367; Write (A:6:3); результат 25.367

Write (A:6:2); результат 25.37

A:=-7.4385 Write (A); результат -7.438500E+00

S:=7; Write (S,’=’,5+2); - результат 7=7

Write (‘S=5+2’); - вывод текста S=5+2, заключенного в апострофы.








5. Реализация линейных алгоритмов


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

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

Program Z;

Var a1,a2,a3:integer;

sa,sg:real;

Begin

Writeln('Введи 3 целых числа:'); {Печать на экране просьбы о вводе}

Read(a1,a2,a3);{Ввод данных}

sa:=(a1 + a2 + a3) / 3; {Вычисление среднего арифметического}

sg:=sqrt(abs(a1*a2*a3)); {Вычисление среднего геометрического}

Writeln ('Cр.арифм.=',sa:8:2);

Writeln ('Cр.геом.=',sg:8:2) {Вывод данных}

End.

Пример: Вычисления площади круга. Программа запрашивает у пользователя значение радиуса круга, обеспечивает возможность ввести его значение, рассчитывает и выводит на экран величину площади круга с введенным радиусом. Таким образом, появляется возможность, не внося изменений в программу, вводить различные значения радиуса и получать, соответствующие им значения площади круга. Для этого достаточно несколько раз запустить программу.

Program Inteface;

Var R,S: Real;

Begin

Write('Введите радиус круга '); {Печать на экране просьбы о вводе}

Readln(R); {Ввод значения R}

S:=Pi*SQR(R); {Вычисление площади руга}

Writeln('Площадь круга радиусом ',R:5:2,' равна ',S:8:4)

End.

Пример. Скорость первого автомобиля v1 км/ч, второго - v2 км/ч, расстояние между ними s км. Какое расстояние будет между ними через t ч, если автомобили движутся в разные стороны?

Согласно условию задачи искомое расстояние s1=s+(v1+v2)t (если автомобили изначально двигались в противоположные стороны) или s2=|(v1+v2)t-s| (если автомобили первоначально двигались навстречу друг другу).

Program Car;

Var V1, V2, T, S, S1, S2 : Real;

Begin

Write('Введите скорости автомобилей, расстояние между ними и время движения:');

ReadLn(V1, V2, S, T);

S1 := S + (V1 + V2) * T;

S2 := Abs((V1 + V2) * T - S);

WriteLn('Расстояние будет равно ', S1:7:4, ' км или ', S2:7:4, ' км')

End.

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

Program Did;

Var A,S1,S2:integer;

Begin

Write ('введите двухзначное число: ');

ReadLn (А); {ввод с клавиатуры числа}

S1:=a div 10; {нахождение первой цифры числа}

S2:=a mod 10; {нахождение последней цифры числа}

WriteLn ('сумма цифр числа ',а, '=', S1+ S2) {вывод результата}

End.

Пример.Дано: c, m, S - часы, минуты, секунды. Найти общее количество секунд с начала суток.

Формула: Sec=c*3600+m*60+s

Program Second;

Var c, m, s : Byte ; Sec: LongInt ;

Begin

Write ('Сколько часов прошло от начала суток? '); Readln (c);

Write ('Сколько минут? '); Readln (m);

Write ('Сколько секунд? '); Readln (s);

Sec :=c*3600+m*60+s;

Writeln ('С начала суток прошло секунд: ', Sec)

End.

Пример. Дано: координаты точки (Х,У). Получить сообщение TRUE, если точка принадлежит первой четверти окружности с радиусом 1, или сообщение FALSE, если точка не принадлежит области.

Формула: точка с координатами (Х,У) принадлежит первой четверти окружности с радиусом 1 если одновременно выполняются условия: Х>0, Y>0, X2+Y2<=1

Program FH;

Var X,Y : Real;

Begin

Writeln (‘введи координаты точки: X, Y:’); Readln (X,Y);

Writeln ((X1>=0) AND (Y1>=0) AND (SQR(X)+SQR(Y)<=1));

End.


Задания для практической работы по теме линейные алгоритмы.

Составить программы на языке Pascal.

1. Даны два числа. Найти сумму и произведение этих чисел.

2. Даны два числа. Найти среднее арифметическое их квадратов и среднее арифметическое их модулей.

3. Вычислить значение выражения hello_html_m21ccb55.png, где х и y - целые числа.

4. Периметр прямоугольника равен р, одна из сторон равна а. Найти его площадь.

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

6. Найдите площадь квадрата, если две его противоположные вершины заданы координатами (х1,у2) ,(х2,у2).

7. Определить сколько времени (t) затрачено на путь (s ) со скоростью (v).

8. Вершины треугольника заданы точками (х1,у2) ,(х2,у2), (х3,у3). Используя формулу Герона, найдите его площадь.(АВ=Sqrt((х1-х2)2+(у1-у2)2).

9. Сумма вклада S руб., ее вкладывают в банк под C % годовых на N лет. Какая прибыль будет на вкладе.

10. Подсчитать стоимость поездки на S км. : расход бензина на 100 км.-L литров, стоимость 1 литра бензина K руб.

11. Вычислить стоимость покупки со скидкой : покупка А руб., скидка С %.

12. Даны координаты трех вершин треугольника (x1, y1), (x2, y2), (x3, y3). Найти его периметр и площадь.

13. Скорость лодки в стоячей воде V км/ч, скорость течения реки U км/ч (U < V). Время движения лодки по озеру T1 ч, а по реке (против течения) - T2 ч. Определить путь S, пройденный лодкой.

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

15. Дано целое четырехзначное число. Используя операции div и mod, найти сумму его цифр.

16. Дано целое четырехзначное число. Используя операции div и mod, найти произведение его цифр.

17. Длительность некоторого физического эксперимента измеряется в секундах; определить количество часов(полных), минут и секунд.

18. С начала месяца прошло m часов. Определить какое сейчас число.

19. С начала суток прошло k минут. Определить который сейчас час. (В часах и минутах).

20. Дано: координаты точки (Х,У). Получить сообщение TRUE, если точка принадлежит 2,3,4 четверти окружности с радиусом R, или сообщение FALSE, если точка не принадлежит области.



6. Алгоритмическая конструкция ветвление


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

If <логическое выражение> Then серия1 Else серия2;

Если логическое выражение, выступающее в качестве условия, принимает значение True (истинно), то выполняются операторы следующие за then (серия1), если False (ложь), то выполняются операторы расположенные после else (серия2).

Поскольку развилка может быть неполной, то возможна и неполная форма записи условного оператора:

If <логическое выражение> Then серия;

Когда выполняется последовательность команд (серия), необходимо использовать так называемые операторные скобки:

Begin

<Оператор 1>;

<Оператор 2>;

...

<Оператор N>

End;

! Точка с запятой после Begin не ставиться.

Вариант условного оператора в этом случае:

If <условие> Then Begin <группа операторов 1> End;

Else Begin < группа операторов 2> End;

! Знак "точка с запятой" не ставится перед служебным словом Else, но операторы в группах отделяются друг от друга этим знаком.

На языке Паскаль условия представляют собой выражения, значением которых является величина логического типа (True - истина или False - ложь). Это может быть как просто переменная указанного типа, так и сложная последовательность высказываний, связанных логическими операциями.

В простых условиях могут применяться знаки операций сравнения: >(больше), <(меньше), =(равно), <>(не равно), >=(больше или равно), <=(меньше или равно).

Пример. (C+D3)>=(D1*(45-2))

В сложных условиях логические выражения строятся с помощью логических операций: and (и), or (или), not (не).

Примеры: (a>b) and (a>c); (Х<=1) or (Y>5) and (a>2); (4*Х-1>0) and (Х+2<3); not (a=b).

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

Пример. Из двух чисел необходимо выбрать наибольшее.

Program Example;

Var A,B,C : Real; {A,B - для хранения чисел, C - результат}

Begin

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

Readln(A,B); {Ввод чисел с клавиатуры}

If A>B Then C:=A Else C:=B; {Если A>B, то результат A сохраняем в С, иначе результат - B}

Writeln(‘Наибольшее число =’,C); {Выводим результат на экран}

End.

Пример. По заданным коэффициентам решить квадратное уравнение

Program Sq1;

Var A, B, C, D, X1, X2 : Real;

Begin

Writeln ('Введите коэффициенты квадратного уравнения');

Readln (A,B,C);

D:=B*B-4*A*C; {вычисление дискриминанта}

If D<0 Then Writeln ('Корней нет! ')

Else Begin

X1:=(-B+SQRT(D))/2/A;

X2:=(-B-SQRT(D))/2/A;

Writeln ('X1=', X1:8:3, ' X2=',X2:8:3)

End

End.

Условный оператор реализует разветвление вычислительного процесса по двум направлениям, одно из которых осуществляется при выполнении условия, другое - в противном случае. Для реализации разветвлений более чем по двум направлениям необходимо использовать несколько условных операторов. В этом случае говорят о вложенности условных операторов. В случае вложенных ветвлений каждое новое ключевое слово Else относится к ближайшему If.

Пример. Дано действительное число a. Вычислить f(a), если hello_html_m5ed5b3ca.png

Program Usl1;

Var х, F : Real;

Begin

WriteLn('Введите действительное число: '); ReadLn(х);

If х <= 0 Then F: = 0 Else

If х <= 1 THEN F: = Sqr(х) - х Else F = Sqr(х) - Sin(Pi * Sqr(х));

WriteLn('Значение функции F(‘,x:5:2,’) = ', F:10:4);

End.

Кроме условного оператора в качестве управляющей структуры довольно часто используется оператор выбора CASE. Эта структура позволяет переходить на одну из ветвей в зависимости от значения заданного выражения (селектора выбора). Ее особенность состоит в том, что выбор решения здесь осуществляется не в зависимости от истинности или ложности условия, а является вычислимым. Оператор выбора позволяет заменить несколько операторов развилки (в силу этого его ещё называют оператором множественного ветвления).

В конструкции CASE вычисляется выражение K и выбирается ветвь, значение метки которой совпадает со значением K. После выполнения выбранной ветви происходит выход из конструкции CASE. Если в последовательности нет метки со значением, равным K, то управление передается внешнему оператору, следующему за конструкцией CASE (в случае отсутствия альтернативы ELSE; если она есть, то выполняется следующий за ней оператор, а уже затем управление передается внешнему оператору).

Запись оператора выбора

Case K OF

A1 : серия 1;

A2 : серия 2;

...

AN : серия N

Else серия N + 1

End;

Любая из указанных серий операторов может состоять как из единственного оператора, так и нескольких (в этом случае, как обычно, операторы, относящиеся к одной метке, должны быть заключены в операторные скобки Begin…End).

Выражение K здесь может быть любого порядкового типа (к таким типам относятся все целые типы, Boolean, Char).

Пример. Найти наибольшее из двух действительных чисел используя, оператор выбора.

Program Maximum;

Var Max, X, Y : Real;

Begin

Write('Введите два неравных числа:');

ReadLn(X, Y);

Case X > Y Of

TRUE : Max := X;

FALSE : Max := Y

End;

WriteLn('Максимальное из двух есть ', Max : 12 : 6)

End.

Задания для практической работы.

Составить программы на языке Pascal.

1. Дано число к- целое. Определить, является ли оно четным (нечетным).

2hello_html_6136da36.png. Выяснить, имеет ли решение уравнение вида А*х+В=0 в зависимости от параметра А.

3. Вычислить значение функции: х*5 ,если х<=-1

x/5 ,если х>=-1

hello_html_369f39c8.png

4. Вычислить значение функции: х*5 ,если х<=-1

x/5 ,если х>=-1

x2 ,если -1<x<1

5. Даны три числа А, В и С. Значение наибольшего из них удвоить.

6. Даны три числа А, В и С. Выяснить существует ли треугольник с длинами сторон А,В,С.

7. Дано число К- целое, трехзначное. Найти сумму цифр этого числа.

8. Даны три числа А , В и С . Выдать их в порядке возрастания.

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

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

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




7. Алгоритмическая конструкция повторение


С помощью операторов повторения (цикла) организуется многократное выполнение повторяющихся действий. Если число повторений цикла известно или может быть вычислено, то целесообразно использовать оператор цикла "с параметром"(For). Если же момент завершения цикла зависит от выполнения некоторого условия, то применяются операторы "Пока" и "До" (While, Repeat). Друг от друга циклы отличаются структурой и используются каждый для своего класса задач.

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

Оператор имеет два варианта записи:

1. For <переменная цикла> := <начало > to <конец> do < оператор>

(С возрастанием переменной цикла)

После вычисления и проверки начального и конечного значений переменной цикла (начало <= конец), выполняются операторы, образующие тело цикла. Далее значение переменной цикла увеличивается на единицу, и процесс, включающий проверку и выполнение операторов, повторяется. Если переменная цикла превышает конечное значение, то происходит выход из цикла и выполняется оператор, следующий за структурой For.

2. For <переменная цикла> := <начало > downto <конец> do < оператор>

(С убыванием переменной цикла)

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

В операторе цикла Repeat используется условие логического типа, управляющее выходом из цикла, которое проверяется после выполнения операторов цикла.

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

Repeat <последовательность операторов>

Until<условие>

Последовательность операторов выполняется до тех пор, пока <условие > не выполнится. В этом случае цикл завершается, и происходит переход на следующий оператор.

В операторе While в отличие от Repeat, используется условие, служащее индикатором выхода из цикла и проверяется до выполнения последовательности операторов, содержащихся внутри цикла.

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

While <условие> do <оператор>

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

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

1. For i:=1 to n do s:=s*i

Преимущество структуры(1) тогда, когда переменная цикла целого типа и изменяется с шагом 1.

2. s:=1; i:=1;

Repeat

s:=s*i;

i:=i+1;

Until i>n;

3. s:=1; i:=1;

While i<=n do

Begin

s:=s*i;

i:=i+1;

End;

В конструкции (2,3) переменная цикла может быть вещественного типа. и изменятся с любым шагом.

! Если тело цикла содержит более одного действия, то необходимо использовать операторные скобки (Begin End).

Пример. Вывести на печать все цифры введенного целого числа.

Program Maс;

Var a,b: longint;

Begin

Read(a); {ввод целого числа}

Repeat

b:=a mod 10; {вычисление крайней правой цифры числа}

Writeln(b); {вывод цифры}

a:=a div 10; {переменная а без крайней правой цифры}

Until a=0;

End.

Пример. Возвести число а в степень n.

Program Work;

Var n,i: integer;

L,a: real;

Begin

Writeln(‘Введите число - a :’); Readln(a);

Writeln(‘Введите показатель степени - n :’); Readln(n);

L:=1; i:=1;

While i<=n do Begin

L:=a*L;

i:=i+1;

End;

Writeln(‘Число ‘,a,’ в степени ’,n,’ равно ’,L:6:4);

End.


Задания для практической работы.

Составить программы на языке Pascal.

1. Вычислить сумму первых К слагаемых ряда:

а) 1+1/2+1/3+…1/к;

б) 2+4+6+….2*к;

в) 1+1/22-1/32+1/42-…1/к2;

г) 1+(1+2)+(1+2+3)+…+(1+2+…+10).

2. Найти частное и остаток от деления натурального числа А на число В, используя только операции вычитания и сравнения двух чисел.

3. Дано натуральное число К. Найти :а) сумму цифр числа; б) кол-во цифр в числе.

4. Даны два числа А и В(положительные). Составить алгоритм нахождения:

а) наименьшего общего делителя;

б) наименьшего общего кратного.

5. Вычислить n! =1*2*3*4*…*n (факториал числа).

6. Даны два целых положительных числа А и В. Найти наибольшее число К такое, что А+А23+…+АК <=В.

7. Дано натуральное число К (K>0). Определить, является ли число простым (натуральные числа, которые имеет два натуральных делителя 1 и самого себя - 2,3,5,7…).

8. Дано натуральное число К (K>0). Определить, является ли оно совершенным. (число совершенное, если оно равно сумме своих делителей, 6=1+2+3).

9. Найти кол-во всех трехзначных чисел, сумма цифр которых равна числу К.

10. Сумма в S руб. положили в банк. При этом прибыль составляет k % в год от первоначальной суммы. Через какой срок сумма вклада увеличится в x раз.


8. Структурированный тип данных: массив


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

Массив - это пронумерованная последовательность величин одинакового типа, обозначаемая одним именем. Элементы массива располагаются последовательно в ячейках памяти, обозначаются именем массива и индексом. Каждое из значений, составляющих массив, называется его компонентой (или элементом массива).

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

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

Если за каждым элементом массива закреплен только один его порядковый номер, то такой массив называется линейным (одномерным). Количество индексов элементов массива определяет размерность массива. По этом признаку массивы делятся на одномерные (линейные), двумерные, трёхмерные и т.д. Проще всего представить себе массив в виде таблицы, где каждая величина находится в собственной ячейке. Положение ячейки в таблице должно однозначно определяться набором координат (индексов).

Одномерный массив - одномерная упорядоченная совокупность элементов некоторого типа, которые адресуются с помощью индекса.

Пример. Числовая последовательность четных натуральных чисел 2, 4, 6, ..., N представляет собой линейный массив, элементы которого можно обозначить А[1]=2,А[2]=4,А[3]=6, ..., А[К]=2*(К+1), где К - номер элемента, а 2, 4, 6, ..., N - значения. Индекс (порядковый номер элемента) записывается в квадратных скобках после имени массива.

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

Пример. Таблица умножения. На пересечении строки и столбца содержится результат произведения соответствующих чисел: A[i,j]=i*j, A[2,2]=4, A[3,2]=6. Первый индекс в записи таблиц обозначает строку, второй - столбец.

Форматы определения массивов для одномерного массива:

Var имя массива: array [начальный индекс .. конечный индекс] of тип данных;

Для двумерного массива:

Var имя массива: array [начальный индекс .. конечный индекс, начальный индекс .. конечный индекс] of тип данных;

Пример. Var massiv1: array [1..5] of real; - одномерный массив, состоящий из 5 элементов (чисел) действительного типа.

Var massiv2: array [1..10, 1..10] of integer; -двумерный массив из 100(10*10) целых чисел.

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

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

Пример. Заполнить одномерный массив элементами, отвечающими следующему соотношению:

a1=1; a2=1; ai=ai-2+ai-1 (i = 3, 4, ..., 20).

A[1]:= 1; A[2]:= 1;

For i := 3 to 20 do A[i] := A[i-1] + A[i-2];

Заполнить двумерный массив элементами таблицы умножения.

For i := 1 to 10 do

For j := 1 to 10 do A[i,j] := i*j;

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

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

Program M1;

Var A : Array [1..20] Of Integer; i : Integer;

Begin

For i:=1 to 20 do Begin

Write('Введите A[', i, '] ');

Readln(A[i]); {значениям индексов и вводим A[i] с клавиатуры }

For i:=20 downto 1 do Write(A[i],' ') {Распечатываем массив в обратном порядке}

End.

Еще один вариант присваивания значений элементам массива - с помощью датчика случайных чисел. В языке Паскаль случайные числа формирует функция Random. Числа получаются дробными, равномерно расположенными в интервале от 0 до 1. Выражение, дающее целое случайное число в интервале [-n,n] будет выглядеть так: Trunc(Random*n+1)-n.

Пример. Заполнить и вывести на печать одномерный массив из 40 чисел с помощью датчика случайных чисел из интервала [-50,50].

Program M2;

Const n=40; {Константа n - количество элементов массива}

Var A : Array [1..n] of Integer; i : Integer;

Begin

For i:=1 to n do Begin A[i]:= Trunc(Random*101)-50;

{заполнение массива случайными числами из интервала [-50,50]}

Write(A[i],' ') { вывод элементов массива в строку через пробел}

End

End.

Пример. Заполнить и вывести на печать двумерный массив с помощью датчика случайных чисел из интервала [0,1].

Program M3;

Const max=5;

Var a: array [1..max, 1..max] of real; i,j:byte;

Begin

For i:=1 to max do

For j:=1 to max do Begin

a[i,j]:=Random;

Writeln(‘a[‘,i,’,’,j,’]=’,a[i,j]);

End

End.



9. Реализация алгоритмов с массивами


Над элементами массивами чаще всего выполняются такие действия, как

поиск, подсчет, перестановка, вставка, удаление элементов в массиве, удовлетворяющих заданному условию, сортировка элементов в порядке возрастания или убывания;

Сумму элементов массива можно подсчитать по формуле s=s+a[i] первоначально задав s=0. Количество элементов массива можно подсчитать по формуле к=к+1, первоначально задав к=0. Произведение элементов массива можно подсчитать по формуле p=p*a[i], первоначально задав p=1. При работе с элементами массива часто приходится изменять значения некоторых элементов, а так же переставлять элементы в массиве. При перестановке необходимо вводить дополнительную переменную.

Рассмотрим фрагменты программ, реализующих поиск элементов с заданными свойствами:

  • поиск четных элементов.

For i:=1 to 10 do If a[i] mod 2=0 then write(a[i],' ');

  • поиск элементов с нечетными индексами.

For i:=1 to 10 do If i mod 2<>0 then write(a[i],' ');

  • подсчет количества элементов равных 0.

k:=0; For i:=1 to 10 do If a[i]=0 then k:=k+1;

  • нахождение суммы элементов массива, находящихся до первого отрицательного.

s:=0; i:=1;

While a[i]>=0 do Begin

s:=s+a[i]; i:=i+1;

End;

  • поиск максимального элемента в одномерном массиве.

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

For i :=1 to 5 do

If a [i] > max then Begin

max :=a [i];

i_max :=i;

End;

Рассмотрим фрагменты программ, реализующих замену, перестановку, вставку, удаление элементов в массиве.

  • замена положительных элементы на 1, отрицательных на 0.

For i:=1 to n do If a[i]>0 then a[i]:=1 else if a[i]<0 then a[i]:=0;

  • вставка числа х после всех элементов равных 0.

k:=0;

For i:=n downto 1 do

If a[i]=0 then Вegin

For j:=n+k downto i+1 do

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

a[i+1]:=x;

k:=к+1; Еnd;

  • удаление из массива всех отрицательных элементов.

k:=0;

For i:=n downto 1 do

If a[i]<0 then Вegin

For j:=i to n-1 do a[j]:=a[j+1];

a[n]:=0; k:=к+1;

Еnd;

  • перестановка минимального и максимального элементов

max:=a[1]; {присвоение максимуму значения первого элемента}

i_max:=1; {присвоение номеру максимального элемента 1}

For i:=1 to n do сравнение всех элементов с максимумом}

If a[i]>max then Вegin

max:=a[i]; {запоминаем значение максимального элемента}

i_max:=i; {запоминаем номер максимального элемента}

Еnd;

min:=a[i]; i_min:=i;

For i:=1 to n do {поиск минимального элемента}

If a[i]Вegin

min:=a[i];

i_min:=i;

Еnd; {конец поиска минимального элемента}

x:=a[i_max];{перестановка минимального и максимального элементов}

a[i_max]:=a[i_min];

a[i_min]:=x;

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

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

1) сортировка вставкой (включением);

2) сортировка выбором (выделением);

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

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

Сортировка простым включением: элементы массива просматриваются по одному, и каждый элемент вставляется в подходящее место, среди ранее упорядоченных.

Program Work_1;

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

Var i,d,j:integer;

Begin

For i:=1 to 10 do Read(a[i]);

For j:=2 to 10 do

Begin

i:=j-1;

d:=a[j];

While (i>0) and (d

Begin

a[i+1]:=a[i];

i:=i-1;

End;

a[i+1]:=d;

End;

For i:=1 to 12 do Write(a[i],' ');

End.

Сортировка простым выбором: Выбирается элемент с наименьшей величиной и меняется местами с первым. Затем эти операции повторяются с оставшимися элементами без первого пока не останется только один элемент - наибольший.

Program Work_2;

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

Var i,k,x,j,n:integer;

Begin

For i:=1 to 10 do read(a[i]);

For i:=1 to 9 do Begin

k:=i; x:=a[I];

For j:=i+1 to 10 do

If xBegin

x:=a[j]; k:=j;

End;

a[k]:=a[i]; a[i]:=x

End;

For i:=1 to 10 do Write(a[i],' ');

End.

Сортировка простым обменом (метод “пузырька”): Если два элемента массива расположены не по порядку, то они меняются местами. Процесс повторяется до тех пор, пока элементы не будут упорядочены.

Program Work_3;

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

Var i,k,x,j,n:integer;

Begin

For i:=1 to 10 do Read(a[i]);

For i:=2 to 10 do Begin

For j:=10 downto i do

If a[j-1]>a[j] then Begin

x:=a[j-1]; a[j-1]:=a[j];a[j]:=x;

End;

End;

For i:=1 to 10 do Write(a[i],' ');

End.

Задания для практической работы.

Составить программы на языке Pascal.

  1. Организовать ввод элементов одномерного массива размерностью n=10 с клавиатуры, заменить отрицательные элементы массива на их модули, а положительные увеличить на 1.

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

исходный массив - а[1],а[2],а[3],а[4],а[5]

итоговый - а[5],а[4],а[3],а[2],а[1]

  1. Удалить из массива элементы кратные 3 или 5.

  2. Информация о средней суточной температуре воздуха за n дней (n<=30) представлена в виде массива t из вещественных чисел. Определить номер дня, когда средняя суточная температура за n дней была наибольшей, и номер дня, когда средняя температура за сутки была второй по своей величине после наибольшей.

  3. Организовать ввод элементов одномерного массива размерностью n=10 с помощью функции случайных чисел, вставить число K в одномерный массив после первого элемента кратного 3.

  4. Поменять местами минимальный и максимальный элементы в массиве размерностью n=10.

  5. Даны два массива а(n) и в(m). Получить новый массив с(?), который содержит только четные числа двух массивов.

  6. Имеется n грузов весом a1, …, an и платформа грузоподъемностью r. Определить, какое максимальное количество грузов можно поместить на эту платформу. ( Сортировка простыми вставками).


10. Обработка символьной и строковой информации


Символьный тип Char - это тип данных, предназначенный для описания одного символа: буквы, цифры, знака или кода. В памяти компьютера переменная типа Char занимает 1 байт. Символьные переменные в языке Pascal задаются следующим образом: Var <идентификатор>:char;

Значения символьных переменных обычно заключаются в апострофы, например: ’A’,’+’, ’;’, ’W’. Однако они могут записываться с помощью знака решетки (#) и кода таблицы ASCII, например #67 соответствует символу ‘C’.

Пример.

Var Mv, kv, nv, cv:char;

rc:=’Q’; nv:=#0;{пустой символ}

При работе с переменными типа Char в языке Pascal используются следующие функции:

Chr(x:byte):char; - возвращает символ, соответствующий в ASCII-таблице коду числа х;

Ord(x:char):byte; - возвращает порядковый номер в ASCII-таблице символа х;

UpCase(x:char):char: - преобразует символы из строчных латинских букв в прописные;

Pred(x:char):char: - возвращает символ, который предшествует символу х в ASCII-таблице;

Succ(x:char):char: - возвращает символ, который следует за символом х в ASCII-таблице/

Пример.

Выражение

Результат

Chr(60)

<’

Ord(1’)

48

Chr(55)

7’

Pred(9’)

8’

Succ(5’)

6’

Символьные переменные можно сравнивать друг с другом. Большим считается тот символ, код которого больше по таблице ASCII.

Cтроковый тип данных String – структурированный тип данных, предназначенный для обработки строк. Строка - это последовательность символов. Каждый символ занимает 1 байт памяти (код ASCII). Количество символов в строке называется ее длиной. Длина строки может находиться в диапазоне от 0 до 255. Строковые величины могут быть константами и переменными. Особенностью строки в языке Pascal является то, что с ней можно работать как с массивом символов, так и с единым объектом.

Строковая константа - последовательность символов, заключенная в апострофы. Строковая переменная описывается в разделе описания переменных следующим образом:

Var <идентификатор> : string[<максимальная длина строки>];

Пример: Var Name : string[20].

Пустая строка изображается как ’’.

Тип string и стандартный тип char совместимы. Строки и символы могут употребляться в одних и тех же выражениях. Строковые выражения строятся из строковых констант, переменных, функций и знаков операций. Над строковыми данными допустимы операции сцепления и операции отношения.

Операция сцепления (+) применяется для соединения нескольких строк в одну результирующую строку. Сцеплять можно как строковые константы, так и переменные. Операции отношения: =, <, >, <=, >=, <>. Позволяют произвести сравнение двух строк, в результате чего получается логическое значение (true или false).

Пример.

Var S1:string[5]; S2:string[6];S3:string[11];

S1:=’инфор’;

S2:=’матика’;

S3:=S1+S3; {получим строку: ’информатика’}

Ввод и вывод строковых данных осуществляется с помощью стандартных процедур ввода и вывода. Обращение к отдельному символу строки выполняется с помощью индекса (номера) символа в квадратных скобках.

Строковые функции

Пусть S, S1, S2, sk - выражения строкового типа; poz, n, code - целого типа.

  1. Length(S): integer; - вычисляет длину строки S в символах;

  2. Concat(s1, s2,…,sk):string; - выполняет объединение строк s1, s2, …sk;

  3. Copy(s, poz, n):string: - выделяет из строки S подстроку , начиная с позиции pozл длиной n;

  4. Pos(s1, s2):byte; - отыскивает первое появление в строке s2 подстроки s1. Результатом работы этой функции становится номер (индекс) позиции в строке s2, с которой начинается строка s1. Если результат равен 0, то подстрока не найдена.

Строковые процедуры

  1. Delete(S, poz, n); - удаляет из строки S n символов, начиная с позиции poz;

  2. Insert(S1, S2, poz): - вставляет строку S1 в строку S2, начиная с позиции poz;

  3. Str(v, S):- преобразует числовое значение v в строковое представление; если v – целое число, то может быть указано общее число символов 1, например str(v:1:s); если v принимает вещественное значение, то дополнительно может быть указано число m символов после десятичной точки, например str(v:1:m:s);

  4. Val(S,v,code); - преобразует строку S в число, и переменной v присваивается это числоn; тип числа зависит от типа переменной v – целый или вещественный. Если такое преобразование выполнено успешно, то переменной code присваивается значение 0, в противном случае code содержит номер позиции первого ошибочного символа.

Пример.

Пусть st - строка типа string[6] и st=’klmn’, S – строка string[5]. x - переменная целого типа, fs – строкового типа.

Функция

Результат

X:=Leght(st)

4

Fs:=copy(st,2,2)

lm’

X:=pos(‘mn’,st)

3

Процедура

Результат

Delete(st,1,1)

lmn’

Insert(‘ab’,st,1)

abklm’

Str(15,s)

15’

Val(‘-3’, x, code)

-3 0


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

Var S, rs1, rs2, rs3, rs4, temp:string;

Begin

S:= ’золотопромышленник’;

Rs1:=Copy(s,1,6); {выделим слово ‘золото’}

Rs2:=Copy(s,length(rsl)+1,length(s)-length(rsl));{словопромышленник’}

Temp:=S;

Delete(temp,1,12); {оставим часть словаленник’}

Rs3:=S[7]+temp; {построим слово ‘пленник’}

Rs4:=S;

Delete(rs4,1,9); {оставим часть слова ‘мышленник’)

Delete(rs4,7,1); {оставим часть слова ‘мышленик’}

Rs4[length(rs4)]:=rs4[5]; {заменим ‘к’ на ‘е’, получим ‘мышление’}

Writeln(rs1,’’,rs2,’’,rs3,’’,rs4,);

End.

Пример. Дан текст, состоящий из слов, разделенных одним пробелом. Удалите все вхождения данного слова в строку.

Var K, M:byte; Sl, Wr:string;

Begin

Writeln(‘введите строку текста из слов’); Readln(Sl);

Sl:=’ ’+ Sl +’ ’;

Writeln(‘введите удаляемое слово’); Readln(Wr);

Wr:=’ ‘ + Wr + ‘ ‘ ;

K:=length(Wr); {определяем длину слова}

Repeat

M:=pos(Wr,Sl); {номер позиции удаляемого слова}

If (M<>0) then delete(Sl,M + 1,K-1) {удаляем слово из текста}

Until M:=0

Writeln(Sl)

End.

Пример. Дана слово. Необходимо определить, является ли это слово палиндромом. (потоп, Анна)

Var D, G:byte; Tet:string; F:boolean;

Begin

Writeln(‘введите слово’); Readln(Tet);

D:=length(Tet); {определим длину слова}

F:=true; {признак, фиксирующий, что слово является палиндромом}

G:= D div 2;

While G>=1 do Begin

If Tet[G]<>Tet[d – G + 1] then F:=false;

G:=G – 1

End;

If F Then Writeln(‘ слово является палиндромом’)

Else Writeln(‘слово не является палиндромом’)

End.

Задания для практической работы.

Составить программы на языке Pascal.

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

  2. Заменить в заданном тексте буквосочетание "min" на "ma".

  3. В заданном тексте подсчитать общее количество букв "x" и "y".

  4. Удвоить каждую букву в заданном тексте.

  5. Вычеркнуть из заданного слова все буквы "а".

  6. Заданную строку А переписать в обратном порядке в строку В.

  7. В заданной последовательности слов найти все слова, начинающиеся с заданной приставки.

  8. Найти самое длинное и самое короткое слово в заданном предложении.

  9. В заданном тексте подсчитать наибольшее количество подряд идущих пробелов.




11. Использование графических возможностей языка программирования


При работе в графическом режиме изображение на экране строится из точек (пиксель). Каждый пиксель на экране имеет координаты (X,Y), которые образуются номерами столбцов (Х) и строк (Y). Нумерация начинается в верхнем левом углу. Именно в этом углу расположен пиксель с координатами (0,0). Координата Х растет вправо, координата Y - вниз.

hello_html_m277d0aec.png

Любая графическая картинка формируется из простых геометрических фигур. Это точки, отрезки (линии), прямоугольники, окружности и т.д. Графические координаты принимают только целочисленные значения.

Рисование различных геометрических фигур осуществляется с помощью специальных стандартных команд (процедур). Команды для работы в графическом режиме хранятся в библиотечном модуле GraphAbc, который описывается в разделе описаний с помощью зарезервированного слова Uses. В модуле GraphAbc с помощью команды setwindowsize(X,Y) можно задавать размеры графического окна. По умолчанию графическое окно будет принимать размеры экрана компьютера

Пример.

Program t1;

uses graphabc; {подключение модуля GraphAbc}

Begin

setwindowsize(640,480); {устанавливает размеры графического окна}

End.

Команда setpixel(x,y,c) - рисует точку с координатами (х,у) цветом с. Стандартные цвета с задаются символическими константами:

clBlack

черный

clYellow

желтый

clWhite

белый

clNavy

темно-синий

clRed

красный

clMaroon

темно-красный

clGreen

зеленый

clPurple

фиолетовый

clBrown

коричневый

clCream

кремовый

clBlue

синий

clAqua

бирюзовый

clSkyBlue

голубой

clOlive

оливковый

clFuchsia

сиреневый

clTeal

сине-зеленый

clGray

темно-серый

clMedGray

серый

clLime

ярко-зеленый

clSilver

серебряный

Процедура Line(x1,y1,x2,y2) вычерчивает прямую линию из точки (х1,y1) в точку (x2,y2) цветом установленным процедурой SetPenColor(c).

Для задания стиля линии существует команда SetPenStyle (Style), где Style - стиль линии: psSolid - сплошная, psDash – штриховая, psDot – пунктирная, psClear – прозрачная.

Установить ширину текущего пера можно процедурой SetPenWidth(Width: integer).

Процедура Rectangle(x1,y1,x2,y2) рисует прямоугольник, где (х1,y1) координаты верхней левой точки, а (х2,y2) - правой нижней.

Процедура FillRect(x1,y1,x2,y2: integer) - заливает прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2), цветом текущей кисти.

Процедура Сircle(x,y,r) рисует окружность с центром в точке (х,y) и радиусом r.

Закрасить замкнутую фигуру можно с помощью процедуры FloodFill(х,у,c), (х,у) - координата точки внутренней области фигуры, c – цвет заливки.

Процедура СlearWindow(color) устанавливает цвет графического окна. Закрасить прямоугольник и круг можно, используя команду закраски кистью SetBrushColor (color).

SetBrushStyle(Style) - устанавливает стиль текущей кисти. Константы стилей кисти: bsSolid – сплошная, bsClear – прозрачная, bsHatch – штриховая, bsGradient – градиентная.

Процедуры для ввода текста:

TextOut(x,y: integer; s: string) - выводит строку s в позицию (x,y) (точка (x,y) задает верхний левый угол прямоугольника, который будет содержать текст из строки s);

SetFontSize(size: integer) - устанавливает размер текущего шрифта в пикселях;

SetFontColor(c: Color) - устанавливает цвет текущего шрифта;

SetFontStyle(fs: integer) - устанавливает стиль текущего шрифта.

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

Program L;

uses GraphAbc;

Begin

SetWindowsize(640,480);{устанавливает размеры графического окна в пикселах}

ClearWindow(clYellow); {устанавливает желтый цвет фона}

SetPenColor(clBlue);{устанавливает синий цвет пера}

SetPenWidth(10); {устанавливает ширину пера}

Line(250,250,300,100); {рисует линию}

Line (100,270,200,350); {рисует треугольник}

Line (200,350,300,270);

Line (300,270,100,270);

FloodFill(175,300,clgreen); {Закрашивает треугольник}

Setpencolor(clGreen); {устанавливает зеленый цвет пера}

SetPenWidth(5); {устанавливает ширину пера}

Rectangle(30,30,230,130);{рисует прямоугольник}

FloodFill(50,100,clSilver);

Setpencolor (clNavy); {устанавливает красный цвет пера}

Circle(460,260,70); {рисует окружность};

FloodFill(460,260,clSkyBlue);

SetFontStyle(fsbold); {устанавливает стиль шрифта}

SetFontSize(18); {устанавливает размер шрифта}

SetFontColor(clFuchsia); {устанавливает оливковый цвет шрифта}

TextOut(300,30,'Геометрические фигуры'); {делает надпись}

End.

hello_html_m25ea9311.png

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

  • закрашенную зеленым цветом елку;

  • лодку с парусом;

  • снеговика;

  • дом;

  • придумайте свой рисунок.



Приложение к главе 3

Таблица 1. Меню Правка

Команда

Назначение

Отменить CTRL+Z

Отмена последней операции редакти-рования текста программы

Восстановить Shift+Ctrl+Z

Восстановление предыдущей операции редактирования текста программы

Вырезать CTRL+X

Перемещение выделенного фрагмента текста из окна редактора в буфер обмена

Копировать CTRL+C

Копирование выделенного фрагмента текста из окна редактора в буфер обмена

Вставить CTRL+V

Вставка выделенного текста из буфера обмена в окно редактора

Найти CTRL+F

Поиск текста

Заменить CTRL+R

Поиск текста и замена его новым текстом

Найти далее CTRL+L

Дальнейший поиск текста


Таблица 2. Меню Файл

Команда

Назначение

Новый CTRL+N

Открытие окна для нового файла

Открыть CTRL+O

Открытие (загрузка) файла

Сохранить CTRL+S

Сохранение файла с прежним именем

Сохранить как …

Сохранение файла с новым именем

Закрыть CTRL+F4

Закрыть текущее окно файла

Выход

Выход из системы программирования


Таблица 3. Ошибки при работе в системе программирования Pascal ABC

Ошибка

Причина ошибки

Неожиданный символ

Символ введен не с регистра английских букв

Ожидался символ "точка"

После end нет точки

ожидалось begin

Нет слова begin

Ожидалась "точка с запятой"

Нет символа «;» либо неверно расставлены скобки в команде

Ожидался идентификатор

Не указано имя программы

Ожидалась команда

Отсутствует end

Неизвестное имя

Неправильно написано название команды

Ожидадось «)»

Не закрыта скобка в конце команды

Ожидался конец файла

Неверно написано слово end либо есть лишние символы после слова end в конце программы

ожидался идентификатор, но ... обнаружено зарезервированное слово

Например, вместо val1 написано var

Ошибка ввода. Программа завершена

Неверно указано имя файла с задачей (‘begin’)


Графические примитивы Модуля GraphABC

procedure SetPixel(x,y,color: integer);

Закрашивает один пиксел с координатами (x,y) цветом color.

procedure MoveTo(x,y: integer);

Передвигает невидимое перо к точке с координатами (x,y); эта функция работает в паре с функцией LineTo(x,y).

procedure LineTo(x,y: integer);

Рисует отрезок от текущего положения пера до точки (x,y); координаты пера при этом также становятся равными (x,y).

procedure Line(x1,y1,x2,y2: integer);

Рисует отрезок с началом в точке (x1,y1) и концом в точке (x2,y2).

procedure Circle(x,y,r: integer);

Рисует окружность с центром в точке (x,y) и радиусом r.

procedure Ellipse(x1,y1,x2,y2: integer);

Рисует эллипс, заданный своим описанным прямоугольником с координатами противоположных вершин (x1,y1) и (x2,y2).

procedure Rectangle(x1,y1,x2,y2: integer);

Рисует прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2).

procedure TextOut(x,y: integer; s: string);

Выводит строку s в позицию (x,y) (точка (x,y) задает верхний левый угол прямоугольника, который будет содержать текст из строки s).

procedure FloodFill(x,y,color: integer);

Заливает область одного цвета цветом color, начиная с точки (x,y).

procedure FillRect(x1,y1,x2,y2: integer);

Заливает прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2), цветом текущей кисти.

Процедуры для работы с пером

Рисование линий осуществляется текущим пером.




procedure SetPenColor(c: Color);
        Устанавливает цвет текущего пера

procedure SetPenWidth(Width: integer);
         Устанавливает ширину текущего пера

procedure SetPenStyle(style: DashStyle);
         Устанавливает стиль текущего пера. Константы стилей пера приведены ниже.

procedure SetPenMode(m: integer);
         Устанавливает режим текущего пера

Стили пера

Стили пера определены следующими константами:

psSolid = DashStyle.Solid;

        Сплошное перо

psDash = DashStyle.Dash;

        Штриховое перо

psDot = DashStyle.Dot;
        

Пунктирное перо

psDashDot = DashStyle.DashDot;

        Штрихунктирное перо

psDashDotDot = DashStyle.DashDotDot;
        

Альтернативное штрихунктирное перо

psClear = DashStyle.Clear;

Прозрачное перо

процедуры для работы с графическим окном

procedure SetWindowWidth(w: integer);
        Устанавливает ширину клиентской части графического окна в пикселах

procedure SetWindowHeight(h: integer);
        Устанавливает высоту клиентской части графического окна в пикселах

procedure SetWindowLeft(l: integer);
        Устанавливает отступ графического окна от левого края экрана в пикселах

procedure SetWindowTop(t: integer);
        Устанавливает отступ графического окна от верхнего края экрана в пикселах

procedure SetWindowCaption(s: string);
        Устанавливает заголовок графического окна

procedure SetWindowTitle(s: string);
        Устанавливает заголовок графического окна

procedure SetWindowSize(w,h: integer);
        Устанавливает размеры клиентской части графического окна в пикселах

procedure SetWindowPos(l,t: integer);
        Устанавливает отступ графического окна от левого верхнего края экрана в пикселах

procedure ClearWindow;
        Очищает графическое окно белым цветом

procedure ClearWindow(c: Color);
        Очищает графическое окно цветом c

procedure SaveWindow(fname: string);
        Сохраняет содержимое графического окна в файл с именем fname

procedure LoadWindow(fname: string);
        Загружаает содержимое графического окна из файла с именем fname

procedure FillWindow(fname: string);
        Заполняет содержимое графического окна обоями из файла с именем fname

procedure CloseWindow;
        Закрывает графическое окно и завершает приложение

procedure CenterWindow;
        Центрирует графическое окно по центру экрана

procedure MinimizeWindow;
        Сворачивает графическое окно

procedure NormalizeWindow;
        Возвращает графическое окно к нормальному размеру

Процедуры для работы с кистью

Рисование внутренностей замкнутых областей осуществляется текущей кистью.

Procedure SetBrushColor(c: Color);
         Устанавливает цвет текущей кисти

procedure SetBrushStyle(bs: BrushStyleType);
   Устанавливает стиль текущей кисти. Константы стилей кисти

приведены ниже.

procedure SetHatchBrushBackgroundColor(c: Color);
         Устанавливает цвет заднего плана текущей штриховой кисти

procedure SetGradientBrushSecondColor(c: Color);
         Устанавливает второй цвет текущей градиентной кисти

Стили кисти

bsSolid         Сплошная кисть (по умолчанию)

bsClear         Прозрачная кисть

bsHatch         Штриховая кисть

bsGradient  Градиентная кисть

Процедуры для работы со шрифтом

Вывод текста осуществляется текущим шрифтом.

Procedure SetFontSize(size: integer);
         Устанавливает размер текущего шрифта в пикселях

Procedure SetFontColor(c: Color);
         Устанавливает цвет текущего шрифта

Procedure SetFontStyle(fs: integer);
        Устанавливает стиль текущего шрифта











Название документа Карточки_с_заданиями.docx

Поделитесь материалом с коллегами:

Карточка с заданиями.

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


Program pokupka;

a, b, d, den: real,

ostatok: real;

begin

write («введите стоимость перчаток, портфеля и галстука»);

readln (a, b, d);

write («введите количество имеющихся у вас денег»);

readln (den);

oststok:=den – a - b-с;

writeln ('после покупки у вас останется ',oststok, 'руб. ');

readln;

end.


2. Напишите программу которая будет высчитывать стоимость1 килограмма 750 грамм яблок с указанием определенной цены за один килограмм.

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

4. Напишите программу для решения уравнения х равняется у в квадрате плюс пять z. Y и z задаются с клавиатуры.

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

6. У Анны 2500 рублей. Мама попросила ее купить 3 тетради по фиксированной цене и 5 ручек. Сколько денег останется у девочки после покупки? Цены за тетрадь и ручку вводятся с клавиатуры.

7. Напишите программу для решения уравнения х равняется корень квадратный из у умноженный на сумму 34,5 и z. Y и z задаются с клавиатуры.

8. Напишите программу для решения уравнения hello_html_m2e4aba03.gif. Значение у вводится с клавиатуры. Ответ должен выключать в себя фразу «При у= {ваше значение}, х=»

















Карточка с заданиями.

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


Program pokupka;

a, b, d, den: real,

ostatok: real;

begin

write («введите стоимость перчаток, портфеля и галстука»);

readln (a, b, d);

write («введите количество имеющихся у вас денег»);

readln (den);

oststok:=den – a - b-с;

writeln ('после покупки у вас останется ',oststok, 'руб. ');

readln;

end.


2. Напишите программу которая будет высчитывать стоимость1 килограмма 750 грамм яблок с указанием определенной цены за один килограмм.

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

4. Напишите программу для решения уравнения х равняется у в квадрате плюс пять z. Y и z задаются с клавиатуры.

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

6. У Анны 2500 рублей. Мама попросила ее купить 3 тетради по фиксированной цене и 5 ручек. Сколько денег останется у девочки после покупки? Цены за тетрадь и ручку вводятся с клавиатуры.

7. Напишите программу для решения уравнения х равняется корень квадратный из у умноженный на сумму 34,5 и z. Y и z задаются с клавиатуры.

8. Напишите программу для решения уравнения hello_html_m2e4aba03.gif. Значение у вводится с клавиатуры. Ответ должен выключать в себя фразу «При у= {ваше значение}, х=»





Название документа Паскаль_Линейные_алгоритмы_ПРАКТИКА.docx

Поделитесь материалом с коллегами:

КОНСПЕКТ УРОКА

«Паскаль. Решение задач с использованием линейных операторов»


Дата проведения: 02.10.2014

Учебный предмет: Информатика и ИКТ.

Учебный класс: 10 Б.

Тема урока: Паскаль. Решение задач с использованием линейных операторов.

Тип урока: Урок проверки знаний и умений.

Продолжительность урока: 40 мин.


Цели урока:

Образовательные: применить на практике знания о среде программирования Pascal ABC, способе построения программ, решить задачи с использованием линейных операторов.

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

Воспитательные: воспитать умение слушать и слышать, самооценку у обучающихся.


Оборудование: компьютер со средой программирования Pascal ABC, интерактивная доска, презентация, карточки с заданиями.


Структура урока:

  1. Организационный момент (2 мин.)

  2. Актуализация знаний (4 мин.)

  3. Сообщение темы урока (2 мин.)

  4. Самостоятельная работа обучающихся (25 мин.)

  5. Рефлексия (5 мин.)

  6. Подведение итогов урока и выдача домашнего задания (2 мин.)


1.Организационный момент (2 мин.)

Приветствие учащихся. Проверка готовности учащихся к уроку.


2.Актуализация знаний (4 мин.)

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

Ученики: (ответы/ Program <Имя программы>;

var <Список однотипных переменных>: <тип переменных>;
begin 
<Тело программы>;
end.)

Учитель: какое разрешение имеют файлы хранящие программу на языке Pascal?

Ученики: (ответы/ .pas)

Учитель: Как обозначаются: вещественный тип данных, целочисленный?

Ученики: (ответы/ real, integer)

Учитель: расскажите об используемом алфавите.

Ученики: (ответы)


3.Сообщение темы урока (2 мин.)

Учитель: Запишите в тетрадь тему урока: Паскаль. Решение задач с использованием линейных операторов. (Слайд 10)


4.Самостоятельная работа обучающихся (25 мин.)


Учитель: Посмотрите внимательно на слайд. (Слайд 11) . Какая задача решается по следующей программе?

Program Test;

var A,B,C: integer;

begin

readln (A,B);

C:=(A+B)*(B-A);

writeln (C);

end.

Ученики: (ответы)


Учитель: Молодцы. Задача: У вас имеется некая сумма денег, вы покупаете на них перчатки, портфель и галстук, цену которых указываете сами. Необходимо найти остаток денег после ваших приобретений. На следующем слайде (Слайд 12) написана программа с решение этой задачи, но написана она с ошибками, найдите эти ошибки.


Program pokupka;

a, b, d, den: real,

ostatok: real;

begin

write («введите стоимость перчаток, портфеля и галстука»);

readln (a, b, d);

write («введите количество имеющихся у вас денег»);

readln (den);

oststok:=den – a - b-с;

writeln ('после покупки у вас останется ',oststok, 'руб. ');

readln;

end.


Ученики: (ответы)

Учитель: правильно ли вы сказали вы проверите сами, для этого садимся за компьютеры, открываем программу Pascal ABC и начинаем выполнять первое задание. После выполнения задания поднимите руку и покажите выполнение программы. Программа будет засчитываться если она выполнена без ошибки и была показана мне. После приступаете к новым задачам с карточки, которую я вам выдам.


Ответ на задание_1

Program pokupka;

Var

a, b, d, den: real;

ostatok: real;

begin

write ('введите стоимость перчаток, портфеля и галстука ');

readln (a, b, d);

write ('введите количество имеющихся у вас денег ');

readln (den);

ostatok:=den-a-b-d;

writeln ('после покупки у вас останется ',ostatok, 'руб. ');

readln;

end.


Карточка с заданиями.

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


Program pokupka;

a, b, d, den: real,

ostatok: real;

begin

write («введите стоимость перчаток, портфеля и галстука»);

readln (a, b, d);

write («введите количество имеющихся у вас денег»);

readln (den);

oststok:=den – a - b-с;

writeln ('после покупки у вас останется ',oststok, 'руб. ');

readln;

end.


2. Напишите программу которая будет высчитывать стоимость1 килограмма 750 грамм яблок с указанием определенной цены за один килограмм.

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

4. Напишите программу для решения уравнения х равняется у в квадрате плюс пять z. Y и z задаются с клавиатуры.

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

6. У Анны 2500 рублей. Мама попросила ее купить 3 тетради по фиксированной цене и 5 ручек. Сколько денег останется у девочки после покупки? Цены за тетрадь и ручку вводятся с клавиатуры.

7. Напишите программу для решения уравнения х равняется корень квадратный из у умноженный на сумму 34,5 и z. Y и z задаются с клавиатуры.

8. Напишите программу для решения уравнения hello_html_m2e4aba03.gif. Значение у вводится с клавиатуры. Ответ должен выключать в себя фразу «При у= {ваше значение}, х=»


5. Рефлексия (5 мин.)


Учитель: Останавливается на той задаче на которой вы сейчас находитесь и садимся за столы. Программу выключаем.

Учитель: Сколько задач успели решить?

Ученики: (ответы)

Учитель: с какими сложностями столкнулись во время решения задач?

Ученики: (ответы)

6.Выдача домашнего задания (2 мин.)

Учитель: дома решаем оставшиеся задачи, скопируйте решение в один файл и распечатайте его, не забудьте подписать фамилию. Спасибо за урок, можете быть свободными.


Название документа pril.ppt

Поделитесь материалом с коллегами:

Условный оператор Автор: Облицова Татьяна Александровна, учитель информатики...
Условный оператор реализует «ветвление», т.е. изменяет порядок выполнения опе...
Полная форма условного оператора IF  THEN  ELSE ; Перед словом Else, знак ; о...
Операции отношения: >	- больше <	- меньше =	- равно >=	- больше или равно 5 B...
IF  THEN BEGIN ; ; … ; END ELSE BEGIN ; ; … ; END; Если по условию задачи пос...
PROGRAM zadacha1; VAR A,B:INTEGER; BEGIN WRITE(‘A=’); READLN(A); WRITE(‘B=’);...
Неполная форма условного оператора IF  THEN  ; Пример: Удвоить число Х, если...
Задача2. Составить программу для решения квадратного уравнения ax2 +bx + c =...
PROGRAM zadacha2; VAR a,b,c,D,x,x1,x2:REAL; BEGIN WRITE(‘a=’); READLN(a); WRI...
Сложные условия В сложных условиях используются логические выражения, записан...
Задача3. Написать программу, проверяющую, принадлежит ли число интервалу (0;5...
Коротко о главном Формы записи условного оператора: IF  THEN  ELSE  ; IF  THE...
На слайде 1 использована картинка из следующего источника: Энциклопедия для д...
1 из 13

Описание презентации по отдельным слайдам:

№ слайда 1 Условный оператор Автор: Облицова Татьяна Александровна, учитель информатики
Описание слайда:

Условный оператор Автор: Облицова Татьяна Александровна, учитель информатики МБОУ СОШ № 6, г.Боготол, Красноярский край

№ слайда 2 Условный оператор реализует «ветвление», т.е. изменяет порядок выполнения опе
Описание слайда:

Условный оператор реализует «ветвление», т.е. изменяет порядок выполнения операторов в зависимости от истинности или ложности некоторого условия.

№ слайда 3 Полная форма условного оператора IF  THEN  ELSE ; Перед словом Else, знак ; о
Описание слайда:

Полная форма условного оператора IF <условие> THEN <оператор1> ELSE <оператор2>; Перед словом Else, знак ; отсутствует. Если (IF) условие истинно, тогда (THEN) выполняется оператор1, иначе (ELSE) выполняется оператор2. Для наглядности программы операторы можно писать в несколько строк После слов Then и Else можно использовать только один оператор.

№ слайда 4 Операции отношения: &gt;	- больше &lt;	- меньше =	- равно &gt;=	- больше или равно 5 B
Описание слайда:

Операции отношения: > - больше < - меньше = - равно >= - больше или равно <= - меньше или равно <> - не равно Условие – это логическое выражение, которое может быть записано в операторе явно или вычислено в программе Условие Примеры: A>5 B<-4 A=B X>=0 S<=D+3 A-5<>B*2

№ слайда 5 IF  THEN BEGIN ; ; … ; END ELSE BEGIN ; ; … ; END; Если по условию задачи пос
Описание слайда:

IF <условие> THEN BEGIN <оператор 1>; <оператор 2>; … <оператор n>; END ELSE BEGIN <оператор 1>; <оператор 2>; … <оператор n>; END; Если по условию задачи после THEN или ELSE необходимо выполнить больше одного оператора, то тогда используют операторные скобки BEGIN…END

№ слайда 6 PROGRAM zadacha1; VAR A,B:INTEGER; BEGIN WRITE(‘A=’); READLN(A); WRITE(‘B=’);
Описание слайда:

PROGRAM zadacha1; VAR A,B:INTEGER; BEGIN WRITE(‘A=’); READLN(A); WRITE(‘B=’); READLN(B); WRITE (‘Большее число : ‘); IF A>B THEN WRITELN (A) ELSE WRITELN (B); END. Задача1. Из двух чисел А и В найти большее и вывести его на экран. Описываем переменные А и В целыми числами Вводим числа А и В Если А>В, то выводим на экран А, иначе выводим В

№ слайда 7 Неполная форма условного оператора IF  THEN  ; Пример: Удвоить число Х, если
Описание слайда:

Неполная форма условного оператора IF <условие> THEN <оператор1> ; Пример: Удвоить число Х, если оно положительное: IF X>0 THEN X:=X*2;

№ слайда 8 Задача2. Составить программу для решения квадратного уравнения ax2 +bx + c =
Описание слайда:

Задача2. Составить программу для решения квадратного уравнения ax2 +bx + c = 0 Блок-схема алгоритма Вложенное условие

№ слайда 9 PROGRAM zadacha2; VAR a,b,c,D,x,x1,x2:REAL; BEGIN WRITE(‘a=’); READLN(a); WRI
Описание слайда:

PROGRAM zadacha2; VAR a,b,c,D,x,x1,x2:REAL; BEGIN WRITE(‘a=’); READLN(a); WRITE(‘b=’); READLN(b); WRITE(‘c=’); READLN(c); D:= b*b - 4*a*c; WRITE (‘Корни уравнения: ‘); IF D>0 THEN BEGIN x1:=(-b+SQRT(D))/(2*a); x1:=(-b-SQRT(D))/(2*a); WRITELN (‘x1= ‘,x1:5:2,’x2= ‘,x2:5:2); END ELSE IF D=0 THEN BEGIN x:= -b/(2*a); WRITELN (‘x= ‘,x:5:2); END ELSE WRITELN (‘Корней нет’); END. Программа для решения квадратного уравнения Внешнее условие Вложенное условие

№ слайда 10 Сложные условия В сложных условиях используются логические выражения, записан
Описание слайда:

Сложные условия В сложных условиях используются логические выражения, записанные с помощью логических операций. Логические операции: Not - Не And - И Or - Или Мультипликативные операции: Div - целая часть от деления Mod - остаток от деления Примеры: Определить, есть ли среди чисел a, b, c хотя бы одно равное нулю. IF (a>0) Or (b=0) THEN WRITELN(‘YES’) ELSE WRITELN(‘NO’); Определить, является ли число а – нечетным. IF a Mod 2<>0 THEN WRITELN(‘YES’) ELSE WRITELN(‘NO’); Каждое простое условие заключается в скобки

№ слайда 11 Задача3. Написать программу, проверяющую, принадлежит ли число интервалу (0;5
Описание слайда:

Задача3. Написать программу, проверяющую, принадлежит ли число интервалу (0;5]. PROGRAM zadacha3; VAR x:REAL; BEGIN WRITE(‘x=’); READLN(x); IF (x>0) and (x<=5) THEN WRITELN (‘YES’) ELSE WRITELN (“NO’); END. Сложное условие

№ слайда 12 Коротко о главном Формы записи условного оператора: IF  THEN  ELSE  ; IF  THE
Описание слайда:

Коротко о главном Формы записи условного оператора: IF <условие> THEN <оператор_1> ELSE <оператор_2> ; IF <условие> THEN <оператор>; Перед ELSE знак ; не ставится Операции отношения: > < = <> >= <= Логические операции: Not Or And Мультипликативные операции: Mod Div

№ слайда 13 На слайде 1 использована картинка из следующего источника: Энциклопедия для д
Описание слайда:

На слайде 1 использована картинка из следующего источника: Энциклопедия для детей. Т.22. Информатика/Глав. ред. Е.Хлебалина; вед. науч.ред. А.Леонов.- М.: Аванта+, 2005.

Название документа programmirovanie_vetvleniy_na_paskale.doc

Поделитесь материалом с коллегами:

План – конспект урока по информатике.


Тема урока: Программирование ветвлений на Паскале.

Цель урока:
Образовательная: познакомить учащихся с оператором ветвления на Паскале, с типами ветвления; с формой записи оператора ветвления на Паскале.

Развивающая: сформировать умение записи оператора ветвления в среде программирования Паскаль; развить логическое мышление.

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


Оборудование: компьютерный класс с установленным ПО, презентация «Ветвления на Паскале», проектор, экран.


Дидактические материалы к учебному занятию: опорный конспект урока.

Тип урока: комбинированный.

Формы учебной работы учащихся: фронтальная работа, индивидуальная работа учащихся.


План урока:

1. Организационный момент (1-2 мин).

2. Актуализация деятельности учащихся (5 мин).

2. Объяснение нового материала (13-15 мин).

3. Закрепление изученного материала. Выполнение практической работы (20 мин).

4. Подведение итогов работы (3 мин).


Ход урока.


1. Организационный момент

2. Актуализация деятельности учащихся

- Проверка домашнего задания, вопросы по домашнему заданию.

- Два учащихся у доски оформляют следующую задачу в виде программы на языке Паскаль и блок - схем:

Даны три стороны треугольника а,b,c.

Найти его площадь S.


- Остальные учащиеся выполняют следующее задание:

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

- Проверка задания на доске, исправление ошибок.

- Дополнительные вопросы:


1. Как записывается заголовок программы на Паскале?

Program (name)

2. Как записывается раздел описания переменных?

Var

3. С какими типами числовых величин работает Паскаль?

Целые и вещественные

4. Как записывается оператор присваивания?

:=

5. Как записывается оператор ввода и вывода в Паскале?

Read (readln), write (writeln)








3. Объяснение нового материала.


Показ презентации «Программирование ветвлений на Паскале».


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

Формат записи оператор ветвления:

if логическое_условие если логическое_условие верно

then оператор_1 то выполняется оператор_1 ,

else оператор_2; иначе оператор_2;


Перед else точка с запятой не ставится!

Формат полного оператора ветвления: Формат неполного оператора ветвления:
if <логическое выражение> if <логическое выражение>

then <оператор 1> then <оператор>

else <оператор 2>;


hello_html_4915f791.gifhello_html_m55a03a2a.gif


Логическое выражение:


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

    • < меньше,

    • > больше,

    • <= меньше или равно,

    • >= больше или равно,

    • = равно,

    • <> не равно.

  • Сложные формы логических выражений составляются с использованием логических операций:

    • not логическое отрицание (НЕ),

    • and логическое умножение (И),

    • or логическое сложение (ИЛИ),

    • xor исключающее ИЛИ

  • Порядок действий:

  • Отрицание, умножение, сложение, операции отношений.

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

  • Если после слов then или else нужно выполнить не один оператор, а несколько, то эти операторы заключают в операторные скобки: beginend



  • Конструкция такого вида:

Begin <последовательность операторов> end

относится к составным операторам.


  • Операторы ветвления могут быть вложены друг в друга, необходимо только следить за тем, чтобы then и else одного и того же оператора располагались друг под другом.

В качестве примера рассмотрим следующую задачу:


  • Из двух заданных целых чисел выбрать наибольшее.


  • Математическая модель:

Данные: x, y


Результат:


  • Варианты:

Если x=5, y=8, то max=8

Если x=6, y=1, то max=6

Если x=5, y=5, то max=5


Программа: Блок-схема: hello_html_m175c5eb6.gif

  • Program Vetv1en;

  • Var x, y, max: integer;

  • Begin

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

  • Readln (x, y);

  • if x >=y then max:=x
    else max:=y;

  • Writeln (‘наибольшее = ’,max);

  • End.






4. Выполнение самостоятельной практической работы.


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

2. Даны три стороны одного треугольника и три стороны другого треугольника. Определить, будут ли эти треугольники равновеликими, т. е. имеют ли они равные площади.


5. Домашнее задание (задачи из задачника).

  • § 12.4, 12.5 (вопросы после §)

  • стр. 229 № 1, 3


6. Подведение итогов занятия. (Оценить роботы учащихся.)

3


Название документа Паскаль.pptx

Поделитесь материалом с коллегами:

Паскаль. Решение задач с Использованием линейных операторов 2.10.2014
Program ; var : ; begin  ; end. Структура программы
Алфавит Pascal ABC. Латинские буквы: A a B b… Z z (по 26 букв) Цифры: 0 1 2.....
Существует два важных правила: – Во-первых, это употребление заглавных и стро...
Таблица специальных знаков Знак Обозначение . конец программы, разделение цел...
Оператор вывода  Write (b1, b2, b3,…, bn);  Writeln (b1, b2, b3,…, bn); Write...
Типы переменных Запись Тип переменных Пример r: Real; переменная вещественног...
Математические функции
Program Test; var A,B,C: integer; begin readln (A,B); C:=(A+B)*(B-A); writeln...
Program pokupka; a, b, d, den: real, ostatok: real; begin write («введите сто...
1 из 13

Описание презентации по отдельным слайдам:

№ слайда 1 Паскаль. Решение задач с Использованием линейных операторов 2.10.2014
Описание слайда:

Паскаль. Решение задач с Использованием линейных операторов 2.10.2014

№ слайда 2
Описание слайда:

№ слайда 3 Program ; var : ; begin  ; end. Структура программы
Описание слайда:

Program <Имя программы>; var <Список однотипных переменных>: <тип переменных>; begin  <Тело программы>; end. Структура программы

№ слайда 4 Алфавит Pascal ABC. Латинские буквы: A a B b… Z z (по 26 букв) Цифры: 0 1 2..
Описание слайда:

Алфавит Pascal ABC. Латинские буквы: A a B b… Z z (по 26 букв) Цифры: 0 1 2..9 Знаки математических операций: +(сложение); -(вычитание); *(умножение); /(деление) Знаки математических отношений: < > = <=(знак меньше или равно); >=(больше или равно); <>(не равно) Специальные знаки: [ ] . , ( ) : ; ^ { } $ # @

№ слайда 5 Существует два важных правила: – Во-первых, это употребление заглавных и стро
Описание слайда:

Существует два важных правила: – Во-первых, это употребление заглавных и строчных букв. Большинство существующих программ не различают буквы разных регистров. Таким образом, записи "progRaM" и "PROGram" будем считать идентичными.  – Во-вторых, некоторые символы латиницы и кириллицы совпадают по начертанию. Необходимо следить, что бы буквы были латинские! Нельзя вместо буквы "К" латинской написать "K" русскую. 

№ слайда 6 Таблица специальных знаков Знак Обозначение . конец программы, разделение цел
Описание слайда:

Таблица специальных знаков Знак Обозначение . конец программы, разделение целой и дробной частей вещественного числа (десятичная точка) , разделение элементов списков .. указание диапазона : используется в составе оператора присваивания :=, а также для указания формата вывода в оператореWriteln ; отделяет один раздел программы от другого, разделяет операторы ' используется для ограничения строковых констант - + * / ( ) арифметические знаки < > знаки отношений = используется в составе оператора присваивания, в разделах описаний констант и типов, используется как знак отношения (равно) ^ используется для именования динамических переменных { } ограничение комментариев в программе [ ] заключают в себе индексы элементов массивов

№ слайда 7 Оператор вывода  Write (b1, b2, b3,…, bn);  Writeln (b1, b2, b3,…, bn); Write
Описание слайда:

Оператор вывода  Write (b1, b2, b3,…, bn);  Writeln (b1, b2, b3,…, bn); Write (‘значения переменных’, b1, b2, b3,…, bn);  Операторы ввода. Read(список переменных); ReadLn(список переменных);

№ слайда 8 Типы переменных Запись Тип переменных Пример r: Real; переменная вещественног
Описание слайда:

Типы переменных Запись Тип переменных Пример r: Real; переменная вещественного типа 35,23; i: Integer; переменная целого типа 143 c: Char; переменная-символ а b: Boolean; логическая переменная True – истина;False – ложь. s: String; переменная строки t: Text; переменная для объявления текстового файла

№ слайда 9 Математические функции
Описание слайда:

Математические функции

№ слайда 10
Описание слайда:

№ слайда 11
Описание слайда:

№ слайда 12 Program Test; var A,B,C: integer; begin readln (A,B); C:=(A+B)*(B-A); writeln
Описание слайда:

Program Test; var A,B,C: integer; begin readln (A,B); C:=(A+B)*(B-A); writeln (C); end.

№ слайда 13 Program pokupka; a, b, d, den: real, ostatok: real; begin write («введите сто
Описание слайда:

Program pokupka; a, b, d, den: real, ostatok: real; begin write («введите стоимость перчаток, портфеля и галстука»); readln (a, b, d); write («введите количество имеющихся у вас денег»); readln (den); oststok:=den – a - b-с; writeln ('после покупки у вас останется ',oststok, 'руб. '); readln; end.

Название документа Язык программирования Pascal ABC.doc

Поделитесь материалом с коллегами:

1. Среда языка программирования Pascal ABC


Первая версия языка Паскаль была разработана в 1968 году. Ее разработчиком является швейцарский ученый Никлаус Вирт. Свое название язык получил в честь создателя первой механической вычислительной машины француза Блеза Паскаля. На основе языка Паскаль в 1985 г. фирма Borland выпустила версию Turbo Pascal версии 3.0. С этого времени язык Паскаль используется во всем мире в учебных заведениях в качестве первого изучаемого языка программирования.

Система Pascal ABC основана на языке Delphi Pascal и призвана осуществить постепенный переход от простейших программ к объектно-ориентированному программированию.

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

Для вызова среды программирования Pascal ABC необходимо запустить на выполнение файл PascalABC.exe или загрузить среду посредством ярлыка, если он существует на рабочем столе.

Для создания нового файла необходимо выполнить следующие действия: Файл/Новый или нажать кнопку hello_html_m58d325b.png на панели инструментов. На экране откроется чистое окно с именем Program1.pas. , его при сохранении файла желательно изменить.

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

Для сохранения программы необходимо выполнить команду Файл/Сохранить как…имя файла, или нажать кнопку hello_html_m78c60eb7.png на панели инструментов, если необходимо сохранить существующую уже программу.

Для загрузки программы из файла необходимо выполнить команду Файл/Открыть выбрать файл или нажать кнопку hello_html_22d6855f.png на панели инструментов.

Для выполнения программы необходимо выполнить команду Программа/Выполнить, либо нажать клавишу F9, либо нажать кнопку hello_html_m23265b64.png.

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


hello_html_m52171479.png


Наиболее часто встречающиеся ошибки при работе в системе программирования Pascal ABC:

«неожиданный символ» - символ введен не с регистра английских букв;

«ожидался символ "точка", "точка с запятой", Begin и др.»- отсутствует необходимый символ или команда;

«неизвестное имя» - неправильно введена команда;

«ошибка ввода» - неверно указано имя файла;

«ожидался конец файла» - ошибки в команде end.


Структура программы

Программа, записанная на языке Pascal может содержать следующие разделы:

1. Заголовок (Program)

2. Раздел меток (Label)

3. Раздел констант (Const)

4. Раздел типов (Type)

5. Раздел переменных (Var)

6. Раздел процедур и функций (Procedure, Function).

7. Раздел операторов (Begin...End)

Все программы обязательно имеют раздел заголовка и раздел операторов, остальные составляющие могут отсутствовать. При отсутствии некоторых частей программы общий порядок их следования сохраняется. Разделы между собой разделяются знаком ";" Раздел операторов заключается в операторные скобки. Это зарезервированные слова Begin, End. Раздел операторов заканчивается точкой. Раздел "заголовок" начинается с зарезервированного слова program, за которым указывается имя программы. В качестве имени может использоваться любой набор символов алфавита с несколькими исключениями:

1. нельзя использовать зарезервированные слова;

2. нельзя начинать имя с цифры;

3. при использовании имени не используется пробел.

Программа на языке Pascal может иметь следующий вид:

Program <имя программы>;

<раздел описаний, в котором описываются данные>

Begin <раздел команд (тело программы)>;

End.


2. Алфавит, типы данных языка программирования Pascal


Алфавит языка программирования Pascal включает:

Латинские буквы: A a B b… Z z

Цифры: 0 1 2..9

Знаки математических операций: +(сложение) -(вычитание) *(умножение) /(деление)

Знаки математических отношений: < > = <=(знак меньше или равно) >=(больше или равно) <>(не равно)

Специальные знаки: [ ] . , ( ) : ; ^ { } $ # @

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

имя (идентификатор) - это ее обозначение и место в памяти. Имя переменной (идентификатор) всегда должно начинаться с латинской буквы, после которой могут следовать несколько латинских букв, цифры либо символ подчеркивания «_», записанные без пробелов;

тип - множество допустимых значений и множество применимых операций к ней;

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

Постоянной (константа) называется величина, значение которой не изменяется в процессе исполнения программы. Константы должны объявляться в разделе констант, начиная с зарезервированного слова Сonst. В языке программирования Pascal константами являются любые явно заданные в программе данные.

Пример. Const year=2009;

При записи числовых констант с дробной частью эта часть отделяется от целой не запятой, а точкой.

Пример. Const Pi=3.14;

Для записи очень больших по модулю или очень малых (близких к нулю) чисел существует возможность записи их в так называемой экспоненциальной форме.

Пример: Const а=2.4567Е-06

В вещественных константах (они соответствуют действительным числам в математике) присутствует точка, которая разделяет целую и дробную части числа, или буква Е. Использование Е приводит к представлению числа в виде с плавающей запятой (точкой): запись mEp, соответствует числу hello_html_m3faccb57.gif .

Константы, представляющие собой строковые величины, заключаются в апострофы.

Пример. Const Name='Татьяна';

В качестве данных в программах на языке Pascal могут выступать числа, символы, целые строки символов. С этими видами информации выполняются совершенно разные действия. Например, с числовыми величинами производятся арифметические операции, чего невозможно сделать с символьными. Кроме того, разные виды данных требуют различного объема памяти для хранения. В соответствии с этими соображениями в языке Pascal введено понятие "Тип" (Type). Тип переменной указывает на то, какие данные могут быть сохранены в этом участке памяти, и в каких действиях эта переменная может участвовать.

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

Пример. Var

A,К: Real; B : Integer; C : Char;

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

Различают переменные следующих простых типов: целые (Integer, Byte, ShortInt, Word, LongInt), вещественные (Real, Comp, Double, Single, Extended), логический (Boolean), символьный (Char).


Тип

Длина(байт)

Диапазон значений

Операции

Целые типы

integer

2

-32768..32767

+, -, /, *, Div, Mod, >=, <=, =, <>, <, >

byte

1

0..255

+, -, /, *, Div, Mod, >=, <=, =, <>, <, >

word

2

0..65535

+, -, /, *, Div, Mod, >=, <=, =, <>, <, >

shortint

1

-128..127

+, -, /, *, Div, Mod, >=, <=, =, <>, <, >

longint

4

-2147483648..2147483647

+, -, /, *, Div, Mod, >=, <=, =, <>, <, >

Вещественные типы

real

6

2,9*10-39 - 1,7*1038

+, -, /, *, >=, <=, =, <>, <, >

single

4

1,5*10-45 - 3,4*1038

+, -, /, *, >=, <=, =, <>, <, >

double

8

5*10-324 - 1,7*10308

+, -, /, *, >=, <=, =, <>, <, >

extended

10

3,4*10-4932 - 1,1*104932

+, -, /, *, >=, <=, =, <>, <, >

сomp

8

9.2*1018..9.2*1018

+, -, /, *, >=, <=, =, <>, <, >

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

вoolean

1

true, false

Not, And, Or, Xor, >=, <=, =, <>, <, >

Символьный тип

char

1

все символы кода ASCII

+, >=, <=, =, <>, <,



3. Оператор присваивания. Арифметические операции и стандартные функции


Оператор присваивания - один из самых простых и наиболее часто используемых операторов в любом языке программирования, в том числе и в Pascal. Он предназначен для вычисления нового значения некоторой переменной, а также для определения значения, возвращаемого функцией. В общем виде оператор присваивания можно записать так: переменная:= выражение;

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

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

Операнд 1

Операнд 2

Результат сложения, вычитания, умножения

Результат деления

Integer

Integer

Integer

Real

Integer

Real

Real

Real

Real

Integer

Real

Real

Real

Real

Real

Real

В Pascal существуют арифметические операции: +(сложение), -(вычитание), *(умножение), /(деление), DIV (целочисленное деление), MOD (остаток от деления).

Пример: X := (Y + Z) / (2 + Z * 10) - 1/3;

Пример. При выполнении целочисленного деления (операция DIV) остаток от деления отбрасывается: 15 div 3 = 5; 18 div 5 = 3; 7 div 10 = 0.

Пример. С помощью операции MOD можно найти остаток от деления одного целого числа на другое: 15 mod 3 = 0;18 mod 5 = 3; 7 mod 10 = 7.

Пример. Программа с использованием операций с целочисленными переменными.

Program summa;

Var a,b,s,с,р: integer; {раздел описания переменных}

Begin {начало тела программы}

a:=12; {команда присваивания записывает в переменную a число 12}

b:=5; {команда присваивания записывает в переменную b число 5}

{переменные A и B являются исходными данными}

s:=a+b; {команда присваивания вычисляет сумму значений переменных a и b и записывает результат в переменную s}

Writeln('a + b=',s) {вывод значения переменной s на экран - вывод результата}

c:=a div b; {деление нацело (вычисление целой части от деления а на b)}

writeln('a div b=',c); {вывод на экран частного от деления нацело а на b}

р:=a mod b; {вычисление остатка от деления а на b}

Writeln ('a mod b=',р); {вывод на экран остатка от деления а на b}

End. {конец программы}

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

a + b=17

a div b=2

a mod b=2

Логический операнд - это конструкция, которая задает правило для вычисления одного из двух возможных значений: True или False. Чаще всего логические выражения используют в операторах присваивания или для записи условия, чтобы на некоторый вопрос получить ответ “ДА” или “НЕТ”. Составными частями логических выражений могут быть: логические значения (True, False); логические переменные; отношения, операции: Not(НЕ), And(И), Or(ИЛИ), Xor(исключающее ИЛИ).

Пример. 1) Y:=True; 2) LogPer:=A > B; 3) Log1:=(A = B) And (C <= D).

Арифметические выражения - это конструкции результатом, которых является число. В состав арифметического выражения на языке Паскаль могут входить:

числовые константы;

имена переменных;

знаки математических операций;

математические функции и функции, возвращающие число;

открывающиеся и закрывающиеся круглые скобки.

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

Имя функции

Математическое значение

Тип результата

abs (a)

|a|- модуль числа

Совпадает с типом аргумента

sqr (a)

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

Совпадает с типом аргумента

sqrt (a)

hello_html_2b56dc21.gif- квадратный корень

Вещественное

sin (a)

sin a - синус x радиан

Вещественное

cos (a)

cos a - косинус x радиан

Вещественное

arctan (a)

arctg a - арктангенс числа x

Вещественное

ln (a)

ln a- натуральный логарифм x

Вещественное

exp (a)

ea значение e в степени x

Вещественное

trunc(x)

[x] - целая часть числа x

Целое

frac(x)

{x} - дробная часть числа х

Вещественное

Pi

- число

Вещественное

Round (x)

Округление до ближайшего целого

Целое

Int (x)

[x] целая часть числа

Вещественное

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

1) вычисляются значения в скобках;

2) вычисляются значения функций;

3) выполняется операции смена знака, возведение в степень;

4) выполняются операции умножения и деления (в том числе целочисленного деления и нахождения остатка от деления);

5) выполняются операции сложения и вычитания.

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

Program fun;

Var a, c :integer; {раздел описания переменных целого типа}

b,:real; {раздел описания переменных вещественного типа}

Begin {начало тела программы}

a:=16; {исходные данные}

b:= sqrt (a); {функция sqrt извлекает квадратный корень из числа a и присваивает его значение переменной b - тип результата вещественный}

writeln('b=’,b);{вывод на экран значения переменной b}

c:=sqr (а); {функция sqr возводит в квадрат значение переменной а и присваивает его переменной c - тип результата целый}

writeln(‘c=’,c); {вывод на экран монитора значения переменной c}

Еnd.

! Аргументы функции всегда пишутся в скобках, операцию умножения опускать нельзя.

! Нельзя писать выражения в виде обыкновенных дробей.

Примеры записи математических выражений:

Математическая запись

Запись на Pascal

1. x2 - 7,2x + 6

Sqr(x) - 7.2 * x + 6

2. hello_html_m21ccb55.png

(Abs(x) - Abs(y)) / (1 + Abs(x * y))




4. Организация ввода и вывода данных


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

Read(список переменных);

ReadLn(список переменных);

Разница между работой процедур Read и Readln состоит в следующем: после выполнения Read значение следующего данного считывается с этой же строчки, а после выполнения Readln - с новой строки.

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

Пример.

Var A : real; B : integer; C : char;

Begin

Read(A, B, C)

End.

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

Write (список констант и/или переменных, разделенных запятой)

WriteLn(список констант и/или переменных, разделенных запятой)

Различие между двумя операторами вывода: после выполнения оператора Writeln происходит переход на новую строчку, а после выполнения инструкции Write, переход на новую строчку не происходит. При вызове оператора Writeln без параметров просто происходит переход на новую строчку.

Пример. Write(A, B, C);

WriteLn('Корнем уравнения является ', X);

Для управления размещением выводимых значений процедуры Write и WriteLn используются форматный вывода. Под форматом данных понимается расположение и порядок отдельных полей данных.

Процедура вывода с форматом для целого типа имеет вид:

WriteLn(A:N); где N - выражение целого типа, задающие длину поля вывода значений.

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

WriteLn(R:N:M); где N - выражение целого типа, задающие длину поля вывода значений, М- количество знаков в дробной части.

Пример:

A:=25; Write (A); результат 25

A:=25.367; Write (A:6:3); результат 25.367

Write (A:6:2); результат 25.37

A:=-7.4385 Write (A); результат -7.438500E+00

S:=7; Write (S,’=’,5+2); - результат 7=7

Write (‘S=5+2’); - вывод текста S=5+2, заключенного в апострофы.








5. Реализация линейных алгоритмов


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

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

Program Z;

Var a1,a2,a3:integer;

sa,sg:real;

Begin

Writeln('Введи 3 целых числа:'); {Печать на экране просьбы о вводе}

Read(a1,a2,a3);{Ввод данных}

sa:=(a1 + a2 + a3) / 3; {Вычисление среднего арифметического}

sg:=sqrt(abs(a1*a2*a3)); {Вычисление среднего геометрического}

Writeln ('Cр.арифм.=',sa:8:2);

Writeln ('Cр.геом.=',sg:8:2) {Вывод данных}

End.

Пример: Вычисления площади круга. Программа запрашивает у пользователя значение радиуса круга, обеспечивает возможность ввести его значение, рассчитывает и выводит на экран величину площади круга с введенным радиусом. Таким образом, появляется возможность, не внося изменений в программу, вводить различные значения радиуса и получать, соответствующие им значения площади круга. Для этого достаточно несколько раз запустить программу.

Program Inteface;

Var R,S: Real;

Begin

Write('Введите радиус круга '); {Печать на экране просьбы о вводе}

Readln(R); {Ввод значения R}

S:=Pi*SQR(R); {Вычисление площади руга}

Writeln('Площадь круга радиусом ',R:5:2,' равна ',S:8:4)

End.

Пример. Скорость первого автомобиля v1 км/ч, второго - v2 км/ч, расстояние между ними s км. Какое расстояние будет между ними через t ч, если автомобили движутся в разные стороны?

Согласно условию задачи искомое расстояние s1=s+(v1+v2)t (если автомобили изначально двигались в противоположные стороны) или s2=|(v1+v2)t-s| (если автомобили первоначально двигались навстречу друг другу).

Program Car;

Var V1, V2, T, S, S1, S2 : Real;

Begin

Write('Введите скорости автомобилей, расстояние между ними и время движения:');

ReadLn(V1, V2, S, T);

S1 := S + (V1 + V2) * T;

S2 := Abs((V1 + V2) * T - S);

WriteLn('Расстояние будет равно ', S1:7:4, ' км или ', S2:7:4, ' км')

End.

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

Program Did;

Var A,S1,S2:integer;

Begin

Write ('введите двухзначное число: ');

ReadLn (А); {ввод с клавиатуры числа}

S1:=a div 10; {нахождение первой цифры числа}

S2:=a mod 10; {нахождение последней цифры числа}

WriteLn ('сумма цифр числа ',а, '=', S1+ S2) {вывод результата}

End.

Пример.Дано: c, m, S - часы, минуты, секунды. Найти общее количество секунд с начала суток.

Формула: Sec=c*3600+m*60+s

Program Second;

Var c, m, s : Byte ; Sec: LongInt ;

Begin

Write ('Сколько часов прошло от начала суток? '); Readln (c);

Write ('Сколько минут? '); Readln (m);

Write ('Сколько секунд? '); Readln (s);

Sec :=c*3600+m*60+s;

Writeln ('С начала суток прошло секунд: ', Sec)

End.

Пример. Дано: координаты точки (Х,У). Получить сообщение TRUE, если точка принадлежит первой четверти окружности с радиусом 1, или сообщение FALSE, если точка не принадлежит области.

Формула: точка с координатами (Х,У) принадлежит первой четверти окружности с радиусом 1 если одновременно выполняются условия: Х>0, Y>0, X2+Y2<=1

Program FH;

Var X,Y : Real;

Begin

Writeln (‘введи координаты точки: X, Y:’); Readln (X,Y);

Writeln ((X1>=0) AND (Y1>=0) AND (SQR(X)+SQR(Y)<=1));

End.


Задания для практической работы по теме линейные алгоритмы.

Составить программы на языке Pascal.

1. Даны два числа. Найти сумму и произведение этих чисел.

2. Даны два числа. Найти среднее арифметическое их квадратов и среднее арифметическое их модулей.

3. Вычислить значение выражения hello_html_m21ccb55.png, где х и y - целые числа.

4. Периметр прямоугольника равен р, одна из сторон равна а. Найти его площадь.

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

6. Найдите площадь квадрата, если две его противоположные вершины заданы координатами (х1,у2) ,(х2,у2).

7. Определить сколько времени (t) затрачено на путь (s ) со скоростью (v).

8. Вершины треугольника заданы точками (х1,у2) ,(х2,у2), (х3,у3). Используя формулу Герона, найдите его площадь.(АВ=Sqrt((х1-х2)2+(у1-у2)2).

9. Сумма вклада S руб., ее вкладывают в банк под C % годовых на N лет. Какая прибыль будет на вкладе.

10. Подсчитать стоимость поездки на S км. : расход бензина на 100 км.-L литров, стоимость 1 литра бензина K руб.

11. Вычислить стоимость покупки со скидкой : покупка А руб., скидка С %.

12. Даны координаты трех вершин треугольника (x1, y1), (x2, y2), (x3, y3). Найти его периметр и площадь.

13. Скорость лодки в стоячей воде V км/ч, скорость течения реки U км/ч (U < V). Время движения лодки по озеру T1 ч, а по реке (против течения) - T2 ч. Определить путь S, пройденный лодкой.

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

15. Дано целое четырехзначное число. Используя операции div и mod, найти сумму его цифр.

16. Дано целое четырехзначное число. Используя операции div и mod, найти произведение его цифр.

17. Длительность некоторого физического эксперимента измеряется в секундах; определить количество часов(полных), минут и секунд.

18. С начала месяца прошло m часов. Определить какое сейчас число.

19. С начала суток прошло k минут. Определить который сейчас час. (В часах и минутах).

20. Дано: координаты точки (Х,У). Получить сообщение TRUE, если точка принадлежит 2,3,4 четверти окружности с радиусом R, или сообщение FALSE, если точка не принадлежит области.



6. Алгоритмическая конструкция ветвление


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

If <логическое выражение> Then серия1 Else серия2;

Если логическое выражение, выступающее в качестве условия, принимает значение True (истинно), то выполняются операторы следующие за then (серия1), если False (ложь), то выполняются операторы расположенные после else (серия2).

Поскольку развилка может быть неполной, то возможна и неполная форма записи условного оператора:

If <логическое выражение> Then серия;

Когда выполняется последовательность команд (серия), необходимо использовать так называемые операторные скобки:

Begin

<Оператор 1>;

<Оператор 2>;

...

<Оператор N>

End;

! Точка с запятой после Begin не ставиться.

Вариант условного оператора в этом случае:

If <условие> Then Begin <группа операторов 1> End;

Else Begin < группа операторов 2> End;

! Знак "точка с запятой" не ставится перед служебным словом Else, но операторы в группах отделяются друг от друга этим знаком.

На языке Паскаль условия представляют собой выражения, значением которых является величина логического типа (True - истина или False - ложь). Это может быть как просто переменная указанного типа, так и сложная последовательность высказываний, связанных логическими операциями.

В простых условиях могут применяться знаки операций сравнения: >(больше), <(меньше), =(равно), <>(не равно), >=(больше или равно), <=(меньше или равно).

Пример. (C+D3)>=(D1*(45-2))

В сложных условиях логические выражения строятся с помощью логических операций: and (и), or (или), not (не).

Примеры: (a>b) and (a>c); (Х<=1) or (Y>5) and (a>2); (4*Х-1>0) and (Х+2<3); not (a=b).

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

Пример. Из двух чисел необходимо выбрать наибольшее.

Program Example;

Var A,B,C : Real; {A,B - для хранения чисел, C - результат}

Begin

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

Readln(A,B); {Ввод чисел с клавиатуры}

If A>B Then C:=A Else C:=B; {Если A>B, то результат A сохраняем в С, иначе результат - B}

Writeln(‘Наибольшее число =’,C); {Выводим результат на экран}

End.

Пример. По заданным коэффициентам решить квадратное уравнение

Program Sq1;

Var A, B, C, D, X1, X2 : Real;

Begin

Writeln ('Введите коэффициенты квадратного уравнения');

Readln (A,B,C);

D:=B*B-4*A*C; {вычисление дискриминанта}

If D<0 Then Writeln ('Корней нет! ')

Else Begin

X1:=(-B+SQRT(D))/2/A;

X2:=(-B-SQRT(D))/2/A;

Writeln ('X1=', X1:8:3, ' X2=',X2:8:3)

End

End.

Условный оператор реализует разветвление вычислительного процесса по двум направлениям, одно из которых осуществляется при выполнении условия, другое - в противном случае. Для реализации разветвлений более чем по двум направлениям необходимо использовать несколько условных операторов. В этом случае говорят о вложенности условных операторов. В случае вложенных ветвлений каждое новое ключевое слово Else относится к ближайшему If.

Пример. Дано действительное число a. Вычислить f(a), если hello_html_m5ed5b3ca.png

Program Usl1;

Var х, F : Real;

Begin

WriteLn('Введите действительное число: '); ReadLn(х);

If х <= 0 Then F: = 0 Else

If х <= 1 THEN F: = Sqr(х) - х Else F = Sqr(х) - Sin(Pi * Sqr(х));

WriteLn('Значение функции F(‘,x:5:2,’) = ', F:10:4);

End.

Кроме условного оператора в качестве управляющей структуры довольно часто используется оператор выбора CASE. Эта структура позволяет переходить на одну из ветвей в зависимости от значения заданного выражения (селектора выбора). Ее особенность состоит в том, что выбор решения здесь осуществляется не в зависимости от истинности или ложности условия, а является вычислимым. Оператор выбора позволяет заменить несколько операторов развилки (в силу этого его ещё называют оператором множественного ветвления).

В конструкции CASE вычисляется выражение K и выбирается ветвь, значение метки которой совпадает со значением K. После выполнения выбранной ветви происходит выход из конструкции CASE. Если в последовательности нет метки со значением, равным K, то управление передается внешнему оператору, следующему за конструкцией CASE (в случае отсутствия альтернативы ELSE; если она есть, то выполняется следующий за ней оператор, а уже затем управление передается внешнему оператору).

Запись оператора выбора

Case K OF

A1 : серия 1;

A2 : серия 2;

...

AN : серия N

Else серия N + 1

End;

Любая из указанных серий операторов может состоять как из единственного оператора, так и нескольких (в этом случае, как обычно, операторы, относящиеся к одной метке, должны быть заключены в операторные скобки Begin…End).

Выражение K здесь может быть любого порядкового типа (к таким типам относятся все целые типы, Boolean, Char).

Пример. Найти наибольшее из двух действительных чисел используя, оператор выбора.

Program Maximum;

Var Max, X, Y : Real;

Begin

Write('Введите два неравных числа:');

ReadLn(X, Y);

Case X > Y Of

TRUE : Max := X;

FALSE : Max := Y

End;

WriteLn('Максимальное из двух есть ', Max : 12 : 6)

End.

Задания для практической работы.

Составить программы на языке Pascal.

1. Дано число к- целое. Определить, является ли оно четным (нечетным).

2hello_html_6136da36.png. Выяснить, имеет ли решение уравнение вида А*х+В=0 в зависимости от параметра А.

3. Вычислить значение функции: х*5 ,если х<=-1

x/5 ,если х>=-1

hello_html_369f39c8.png

4. Вычислить значение функции: х*5 ,если х<=-1

x/5 ,если х>=-1

x2 ,если -1<x<1

5. Даны три числа А, В и С. Значение наибольшего из них удвоить.

6. Даны три числа А, В и С. Выяснить существует ли треугольник с длинами сторон А,В,С.

7. Дано число К- целое, трехзначное. Найти сумму цифр этого числа.

8. Даны три числа А , В и С . Выдать их в порядке возрастания.

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

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

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




7. Алгоритмическая конструкция повторение


С помощью операторов повторения (цикла) организуется многократное выполнение повторяющихся действий. Если число повторений цикла известно или может быть вычислено, то целесообразно использовать оператор цикла "с параметром"(For). Если же момент завершения цикла зависит от выполнения некоторого условия, то применяются операторы "Пока" и "До" (While, Repeat). Друг от друга циклы отличаются структурой и используются каждый для своего класса задач.

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

Оператор имеет два варианта записи:

1. For <переменная цикла> := <начало > to <конец> do < оператор>

(С возрастанием переменной цикла)

После вычисления и проверки начального и конечного значений переменной цикла (начало <= конец), выполняются операторы, образующие тело цикла. Далее значение переменной цикла увеличивается на единицу, и процесс, включающий проверку и выполнение операторов, повторяется. Если переменная цикла превышает конечное значение, то происходит выход из цикла и выполняется оператор, следующий за структурой For.

2. For <переменная цикла> := <начало > downto <конец> do < оператор>

(С убыванием переменной цикла)

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

В операторе цикла Repeat используется условие логического типа, управляющее выходом из цикла, которое проверяется после выполнения операторов цикла.

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

Repeat <последовательность операторов>

Until<условие>

Последовательность операторов выполняется до тех пор, пока <условие > не выполнится. В этом случае цикл завершается, и происходит переход на следующий оператор.

В операторе While в отличие от Repeat, используется условие, служащее индикатором выхода из цикла и проверяется до выполнения последовательности операторов, содержащихся внутри цикла.

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

While <условие> do <оператор>

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

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

1. For i:=1 to n do s:=s*i

Преимущество структуры(1) тогда, когда переменная цикла целого типа и изменяется с шагом 1.

2. s:=1; i:=1;

Repeat

s:=s*i;

i:=i+1;

Until i>n;

3. s:=1; i:=1;

While i<=n do

Begin

s:=s*i;

i:=i+1;

End;

В конструкции (2,3) переменная цикла может быть вещественного типа. и изменятся с любым шагом.

! Если тело цикла содержит более одного действия, то необходимо использовать операторные скобки (Begin End).

Пример. Вывести на печать все цифры введенного целого числа.

Program Maс;

Var a,b: longint;

Begin

Read(a); {ввод целого числа}

Repeat

b:=a mod 10; {вычисление крайней правой цифры числа}

Writeln(b); {вывод цифры}

a:=a div 10; {переменная а без крайней правой цифры}

Until a=0;

End.

Пример. Возвести число а в степень n.

Program Work;

Var n,i: integer;

L,a: real;

Begin

Writeln(‘Введите число - a :’); Readln(a);

Writeln(‘Введите показатель степени - n :’); Readln(n);

L:=1; i:=1;

While i<=n do Begin

L:=a*L;

i:=i+1;

End;

Writeln(‘Число ‘,a,’ в степени ’,n,’ равно ’,L:6:4);

End.


Задания для практической работы.

Составить программы на языке Pascal.

1. Вычислить сумму первых К слагаемых ряда:

а) 1+1/2+1/3+…1/к;

б) 2+4+6+….2*к;

в) 1+1/22-1/32+1/42-…1/к2;

г) 1+(1+2)+(1+2+3)+…+(1+2+…+10).

2. Найти частное и остаток от деления натурального числа А на число В, используя только операции вычитания и сравнения двух чисел.

3. Дано натуральное число К. Найти :а) сумму цифр числа; б) кол-во цифр в числе.

4. Даны два числа А и В(положительные). Составить алгоритм нахождения:

а) наименьшего общего делителя;

б) наименьшего общего кратного.

5. Вычислить n! =1*2*3*4*…*n (факториал числа).

6. Даны два целых положительных числа А и В. Найти наибольшее число К такое, что А+А23+…+АК <=В.

7. Дано натуральное число К (K>0). Определить, является ли число простым (натуральные числа, которые имеет два натуральных делителя 1 и самого себя - 2,3,5,7…).

8. Дано натуральное число К (K>0). Определить, является ли оно совершенным. (число совершенное, если оно равно сумме своих делителей, 6=1+2+3).

9. Найти кол-во всех трехзначных чисел, сумма цифр которых равна числу К.

10. Сумма в S руб. положили в банк. При этом прибыль составляет k % в год от первоначальной суммы. Через какой срок сумма вклада увеличится в x раз.


8. Структурированный тип данных: массив


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

Массив - это пронумерованная последовательность величин одинакового типа, обозначаемая одним именем. Элементы массива располагаются последовательно в ячейках памяти, обозначаются именем массива и индексом. Каждое из значений, составляющих массив, называется его компонентой (или элементом массива).

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

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

Если за каждым элементом массива закреплен только один его порядковый номер, то такой массив называется линейным (одномерным). Количество индексов элементов массива определяет размерность массива. По этом признаку массивы делятся на одномерные (линейные), двумерные, трёхмерные и т.д. Проще всего представить себе массив в виде таблицы, где каждая величина находится в собственной ячейке. Положение ячейки в таблице должно однозначно определяться набором координат (индексов).

Одномерный массив - одномерная упорядоченная совокупность элементов некоторого типа, которые адресуются с помощью индекса.

Пример. Числовая последовательность четных натуральных чисел 2, 4, 6, ..., N представляет собой линейный массив, элементы которого можно обозначить А[1]=2,А[2]=4,А[3]=6, ..., А[К]=2*(К+1), где К - номер элемента, а 2, 4, 6, ..., N - значения. Индекс (порядковый номер элемента) записывается в квадратных скобках после имени массива.

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

Пример. Таблица умножения. На пересечении строки и столбца содержится результат произведения соответствующих чисел: A[i,j]=i*j, A[2,2]=4, A[3,2]=6. Первый индекс в записи таблиц обозначает строку, второй - столбец.

Форматы определения массивов для одномерного массива:

Var имя массива: array [начальный индекс .. конечный индекс] of тип данных;

Для двумерного массива:

Var имя массива: array [начальный индекс .. конечный индекс, начальный индекс .. конечный индекс] of тип данных;

Пример. Var massiv1: array [1..5] of real; - одномерный массив, состоящий из 5 элементов (чисел) действительного типа.

Var massiv2: array [1..10, 1..10] of integer; -двумерный массив из 100(10*10) целых чисел.

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

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

Пример. Заполнить одномерный массив элементами, отвечающими следующему соотношению:

a1=1; a2=1; ai=ai-2+ai-1 (i = 3, 4, ..., 20).

A[1]:= 1; A[2]:= 1;

For i := 3 to 20 do A[i] := A[i-1] + A[i-2];

Заполнить двумерный массив элементами таблицы умножения.

For i := 1 to 10 do

For j := 1 to 10 do A[i,j] := i*j;

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

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

Program M1;

Var A : Array [1..20] Of Integer; i : Integer;

Begin

For i:=1 to 20 do Begin

Write('Введите A[', i, '] ');

Readln(A[i]); {значениям индексов и вводим A[i] с клавиатуры }

For i:=20 downto 1 do Write(A[i],' ') {Распечатываем массив в обратном порядке}

End.

Еще один вариант присваивания значений элементам массива - с помощью датчика случайных чисел. В языке Паскаль случайные числа формирует функция Random. Числа получаются дробными, равномерно расположенными в интервале от 0 до 1. Выражение, дающее целое случайное число в интервале [-n,n] будет выглядеть так: Trunc(Random*n+1)-n.

Пример. Заполнить и вывести на печать одномерный массив из 40 чисел с помощью датчика случайных чисел из интервала [-50,50].

Program M2;

Const n=40; {Константа n - количество элементов массива}

Var A : Array [1..n] of Integer; i : Integer;

Begin

For i:=1 to n do Begin A[i]:= Trunc(Random*101)-50;

{заполнение массива случайными числами из интервала [-50,50]}

Write(A[i],' ') { вывод элементов массива в строку через пробел}

End

End.

Пример. Заполнить и вывести на печать двумерный массив с помощью датчика случайных чисел из интервала [0,1].

Program M3;

Const max=5;

Var a: array [1..max, 1..max] of real; i,j:byte;

Begin

For i:=1 to max do

For j:=1 to max do Begin

a[i,j]:=Random;

Writeln(‘a[‘,i,’,’,j,’]=’,a[i,j]);

End

End.



9. Реализация алгоритмов с массивами


Над элементами массивами чаще всего выполняются такие действия, как

поиск, подсчет, перестановка, вставка, удаление элементов в массиве, удовлетворяющих заданному условию, сортировка элементов в порядке возрастания или убывания;

Сумму элементов массива можно подсчитать по формуле s=s+a[i] первоначально задав s=0. Количество элементов массива можно подсчитать по формуле к=к+1, первоначально задав к=0. Произведение элементов массива можно подсчитать по формуле p=p*a[i], первоначально задав p=1. При работе с элементами массива часто приходится изменять значения некоторых элементов, а так же переставлять элементы в массиве. При перестановке необходимо вводить дополнительную переменную.

Рассмотрим фрагменты программ, реализующих поиск элементов с заданными свойствами:

  • поиск четных элементов.

For i:=1 to 10 do If a[i] mod 2=0 then write(a[i],' ');

  • поиск элементов с нечетными индексами.

For i:=1 to 10 do If i mod 2<>0 then write(a[i],' ');

  • подсчет количества элементов равных 0.

k:=0; For i:=1 to 10 do If a[i]=0 then k:=k+1;

  • нахождение суммы элементов массива, находящихся до первого отрицательного.

s:=0; i:=1;

While a[i]>=0 do Begin

s:=s+a[i]; i:=i+1;

End;

  • поиск максимального элемента в одномерном массиве.

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

For i :=1 to 5 do

If a [i] > max then Begin

max :=a [i];

i_max :=i;

End;

Рассмотрим фрагменты программ, реализующих замену, перестановку, вставку, удаление элементов в массиве.

  • замена положительных элементы на 1, отрицательных на 0.

For i:=1 to n do If a[i]>0 then a[i]:=1 else if a[i]<0 then a[i]:=0;

  • вставка числа х после всех элементов равных 0.

k:=0;

For i:=n downto 1 do

If a[i]=0 then Вegin

For j:=n+k downto i+1 do

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

a[i+1]:=x;

k:=к+1; Еnd;

  • удаление из массива всех отрицательных элементов.

k:=0;

For i:=n downto 1 do

If a[i]<0 then Вegin

For j:=i to n-1 do a[j]:=a[j+1];

a[n]:=0; k:=к+1;

Еnd;

  • перестановка минимального и максимального элементов

max:=a[1]; {присвоение максимуму значения первого элемента}

i_max:=1; {присвоение номеру максимального элемента 1}

For i:=1 to n do сравнение всех элементов с максимумом}

If a[i]>max then Вegin

max:=a[i]; {запоминаем значение максимального элемента}

i_max:=i; {запоминаем номер максимального элемента}

Еnd;

min:=a[i]; i_min:=i;

For i:=1 to n do {поиск минимального элемента}

If a[i]Вegin

min:=a[i];

i_min:=i;

Еnd; {конец поиска минимального элемента}

x:=a[i_max];{перестановка минимального и максимального элементов}

a[i_max]:=a[i_min];

a[i_min]:=x;

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

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

1) сортировка вставкой (включением);

2) сортировка выбором (выделением);

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

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

Сортировка простым включением: элементы массива просматриваются по одному, и каждый элемент вставляется в подходящее место, среди ранее упорядоченных.

Program Work_1;

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

Var i,d,j:integer;

Begin

For i:=1 to 10 do Read(a[i]);

For j:=2 to 10 do

Begin

i:=j-1;

d:=a[j];

While (i>0) and (d

Begin

a[i+1]:=a[i];

i:=i-1;

End;

a[i+1]:=d;

End;

For i:=1 to 12 do Write(a[i],' ');

End.

Сортировка простым выбором: Выбирается элемент с наименьшей величиной и меняется местами с первым. Затем эти операции повторяются с оставшимися элементами без первого пока не останется только один элемент - наибольший.

Program Work_2;

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

Var i,k,x,j,n:integer;

Begin

For i:=1 to 10 do read(a[i]);

For i:=1 to 9 do Begin

k:=i; x:=a[I];

For j:=i+1 to 10 do

If xBegin

x:=a[j]; k:=j;

End;

a[k]:=a[i]; a[i]:=x

End;

For i:=1 to 10 do Write(a[i],' ');

End.

Сортировка простым обменом (метод “пузырька”): Если два элемента массива расположены не по порядку, то они меняются местами. Процесс повторяется до тех пор, пока элементы не будут упорядочены.

Program Work_3;

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

Var i,k,x,j,n:integer;

Begin

For i:=1 to 10 do Read(a[i]);

For i:=2 to 10 do Begin

For j:=10 downto i do

If a[j-1]>a[j] then Begin

x:=a[j-1]; a[j-1]:=a[j];a[j]:=x;

End;

End;

For i:=1 to 10 do Write(a[i],' ');

End.

Задания для практической работы.

Составить программы на языке Pascal.

  1. Организовать ввод элементов одномерного массива размерностью n=10 с клавиатуры, заменить отрицательные элементы массива на их модули, а положительные увеличить на 1.

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

исходный массив - а[1],а[2],а[3],а[4],а[5]

итоговый - а[5],а[4],а[3],а[2],а[1]

  1. Удалить из массива элементы кратные 3 или 5.

  2. Информация о средней суточной температуре воздуха за n дней (n<=30) представлена в виде массива t из вещественных чисел. Определить номер дня, когда средняя суточная температура за n дней была наибольшей, и номер дня, когда средняя температура за сутки была второй по своей величине после наибольшей.

  3. Организовать ввод элементов одномерного массива размерностью n=10 с помощью функции случайных чисел, вставить число K в одномерный массив после первого элемента кратного 3.

  4. Поменять местами минимальный и максимальный элементы в массиве размерностью n=10.

  5. Даны два массива а(n) и в(m). Получить новый массив с(?), который содержит только четные числа двух массивов.

  6. Имеется n грузов весом a1, …, an и платформа грузоподъемностью r. Определить, какое максимальное количество грузов можно поместить на эту платформу. ( Сортировка простыми вставками).


10. Обработка символьной и строковой информации


Символьный тип Char - это тип данных, предназначенный для описания одного символа: буквы, цифры, знака или кода. В памяти компьютера переменная типа Char занимает 1 байт. Символьные переменные в языке Pascal задаются следующим образом: Var <идентификатор>:char;

Значения символьных переменных обычно заключаются в апострофы, например: ’A’,’+’, ’;’, ’W’. Однако они могут записываться с помощью знака решетки (#) и кода таблицы ASCII, например #67 соответствует символу ‘C’.

Пример.

Var Mv, kv, nv, cv:char;

rc:=’Q’; nv:=#0;{пустой символ}

При работе с переменными типа Char в языке Pascal используются следующие функции:

Chr(x:byte):char; - возвращает символ, соответствующий в ASCII-таблице коду числа х;

Ord(x:char):byte; - возвращает порядковый номер в ASCII-таблице символа х;

UpCase(x:char):char: - преобразует символы из строчных латинских букв в прописные;

Pred(x:char):char: - возвращает символ, который предшествует символу х в ASCII-таблице;

Succ(x:char):char: - возвращает символ, который следует за символом х в ASCII-таблице/

Пример.

Выражение

Результат

Chr(60)

<’

Ord(1’)

48

Chr(55)

7’

Pred(9’)

8’

Succ(5’)

6’

Символьные переменные можно сравнивать друг с другом. Большим считается тот символ, код которого больше по таблице ASCII.

Cтроковый тип данных String – структурированный тип данных, предназначенный для обработки строк. Строка - это последовательность символов. Каждый символ занимает 1 байт памяти (код ASCII). Количество символов в строке называется ее длиной. Длина строки может находиться в диапазоне от 0 до 255. Строковые величины могут быть константами и переменными. Особенностью строки в языке Pascal является то, что с ней можно работать как с массивом символов, так и с единым объектом.

Строковая константа - последовательность символов, заключенная в апострофы. Строковая переменная описывается в разделе описания переменных следующим образом:

Var <идентификатор> : string[<максимальная длина строки>];

Пример: Var Name : string[20].

Пустая строка изображается как ’’.

Тип string и стандартный тип char совместимы. Строки и символы могут употребляться в одних и тех же выражениях. Строковые выражения строятся из строковых констант, переменных, функций и знаков операций. Над строковыми данными допустимы операции сцепления и операции отношения.

Операция сцепления (+) применяется для соединения нескольких строк в одну результирующую строку. Сцеплять можно как строковые константы, так и переменные. Операции отношения: =, <, >, <=, >=, <>. Позволяют произвести сравнение двух строк, в результате чего получается логическое значение (true или false).

Пример.

Var S1:string[5]; S2:string[6];S3:string[11];

S1:=’инфор’;

S2:=’матика’;

S3:=S1+S3; {получим строку: ’информатика’}

Ввод и вывод строковых данных осуществляется с помощью стандартных процедур ввода и вывода. Обращение к отдельному символу строки выполняется с помощью индекса (номера) символа в квадратных скобках.

Строковые функции

Пусть S, S1, S2, sk - выражения строкового типа; poz, n, code - целого типа.

  1. Length(S): integer; - вычисляет длину строки S в символах;

  2. Concat(s1, s2,…,sk):string; - выполняет объединение строк s1, s2, …sk;

  3. Copy(s, poz, n):string: - выделяет из строки S подстроку , начиная с позиции pozл длиной n;

  4. Pos(s1, s2):byte; - отыскивает первое появление в строке s2 подстроки s1. Результатом работы этой функции становится номер (индекс) позиции в строке s2, с которой начинается строка s1. Если результат равен 0, то подстрока не найдена.

Строковые процедуры

  1. Delete(S, poz, n); - удаляет из строки S n символов, начиная с позиции poz;

  2. Insert(S1, S2, poz): - вставляет строку S1 в строку S2, начиная с позиции poz;

  3. Str(v, S):- преобразует числовое значение v в строковое представление; если v – целое число, то может быть указано общее число символов 1, например str(v:1:s); если v принимает вещественное значение, то дополнительно может быть указано число m символов после десятичной точки, например str(v:1:m:s);

  4. Val(S,v,code); - преобразует строку S в число, и переменной v присваивается это числоn; тип числа зависит от типа переменной v – целый или вещественный. Если такое преобразование выполнено успешно, то переменной code присваивается значение 0, в противном случае code содержит номер позиции первого ошибочного символа.

Пример.

Пусть st - строка типа string[6] и st=’klmn’, S – строка string[5]. x - переменная целого типа, fs – строкового типа.

Функция

Результат

X:=Leght(st)

4

Fs:=copy(st,2,2)

lm’

X:=pos(‘mn’,st)

3

Процедура

Результат

Delete(st,1,1)

lmn’

Insert(‘ab’,st,1)

abklm’

Str(15,s)

15’

Val(‘-3’, x, code)

-3 0


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

Var S, rs1, rs2, rs3, rs4, temp:string;

Begin

S:= ’золотопромышленник’;

Rs1:=Copy(s,1,6); {выделим слово ‘золото’}

Rs2:=Copy(s,length(rsl)+1,length(s)-length(rsl));{словопромышленник’}

Temp:=S;

Delete(temp,1,12); {оставим часть словаленник’}

Rs3:=S[7]+temp; {построим слово ‘пленник’}

Rs4:=S;

Delete(rs4,1,9); {оставим часть слова ‘мышленник’)

Delete(rs4,7,1); {оставим часть слова ‘мышленик’}

Rs4[length(rs4)]:=rs4[5]; {заменим ‘к’ на ‘е’, получим ‘мышление’}

Writeln(rs1,’’,rs2,’’,rs3,’’,rs4,);

End.

Пример. Дан текст, состоящий из слов, разделенных одним пробелом. Удалите все вхождения данного слова в строку.

Var K, M:byte; Sl, Wr:string;

Begin

Writeln(‘введите строку текста из слов’); Readln(Sl);

Sl:=’ ’+ Sl +’ ’;

Writeln(‘введите удаляемое слово’); Readln(Wr);

Wr:=’ ‘ + Wr + ‘ ‘ ;

K:=length(Wr); {определяем длину слова}

Repeat

M:=pos(Wr,Sl); {номер позиции удаляемого слова}

If (M<>0) then delete(Sl,M + 1,K-1) {удаляем слово из текста}

Until M:=0

Writeln(Sl)

End.

Пример. Дана слово. Необходимо определить, является ли это слово палиндромом. (потоп, Анна)

Var D, G:byte; Tet:string; F:boolean;

Begin

Writeln(‘введите слово’); Readln(Tet);

D:=length(Tet); {определим длину слова}

F:=true; {признак, фиксирующий, что слово является палиндромом}

G:= D div 2;

While G>=1 do Begin

If Tet[G]<>Tet[d – G + 1] then F:=false;

G:=G – 1

End;

If F Then Writeln(‘ слово является палиндромом’)

Else Writeln(‘слово не является палиндромом’)

End.

Задания для практической работы.

Составить программы на языке Pascal.

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

  2. Заменить в заданном тексте буквосочетание "min" на "ma".

  3. В заданном тексте подсчитать общее количество букв "x" и "y".

  4. Удвоить каждую букву в заданном тексте.

  5. Вычеркнуть из заданного слова все буквы "а".

  6. Заданную строку А переписать в обратном порядке в строку В.

  7. В заданной последовательности слов найти все слова, начинающиеся с заданной приставки.

  8. Найти самое длинное и самое короткое слово в заданном предложении.

  9. В заданном тексте подсчитать наибольшее количество подряд идущих пробелов.




11. Использование графических возможностей языка программирования


При работе в графическом режиме изображение на экране строится из точек (пиксель). Каждый пиксель на экране имеет координаты (X,Y), которые образуются номерами столбцов (Х) и строк (Y). Нумерация начинается в верхнем левом углу. Именно в этом углу расположен пиксель с координатами (0,0). Координата Х растет вправо, координата Y - вниз.

hello_html_m277d0aec.png

Любая графическая картинка формируется из простых геометрических фигур. Это точки, отрезки (линии), прямоугольники, окружности и т.д. Графические координаты принимают только целочисленные значения.

Рисование различных геометрических фигур осуществляется с помощью специальных стандартных команд (процедур). Команды для работы в графическом режиме хранятся в библиотечном модуле GraphAbc, который описывается в разделе описаний с помощью зарезервированного слова Uses. В модуле GraphAbc с помощью команды setwindowsize(X,Y) можно задавать размеры графического окна. По умолчанию графическое окно будет принимать размеры экрана компьютера

Пример.

Program t1;

uses graphabc; {подключение модуля GraphAbc}

Begin

setwindowsize(640,480); {устанавливает размеры графического окна}

End.

Команда setpixel(x,y,c) - рисует точку с координатами (х,у) цветом с. Стандартные цвета с задаются символическими константами:

clBlack

черный

clYellow

желтый

clWhite

белый

clNavy

темно-синий

clRed

красный

clMaroon

темно-красный

clGreen

зеленый

clPurple

фиолетовый

clBrown

коричневый

clCream

кремовый

clBlue

синий

clAqua

бирюзовый

clSkyBlue

голубой

clOlive

оливковый

clFuchsia

сиреневый

clTeal

сине-зеленый

clGray

темно-серый

clMedGray

серый

clLime

ярко-зеленый

clSilver

серебряный

Процедура Line(x1,y1,x2,y2) вычерчивает прямую линию из точки (х1,y1) в точку (x2,y2) цветом установленным процедурой SetPenColor(c).

Для задания стиля линии существует команда SetPenStyle (Style), где Style - стиль линии: psSolid - сплошная, psDash – штриховая, psDot – пунктирная, psClear – прозрачная.

Установить ширину текущего пера можно процедурой SetPenWidth(Width: integer).

Процедура Rectangle(x1,y1,x2,y2) рисует прямоугольник, где (х1,y1) координаты верхней левой точки, а (х2,y2) - правой нижней.

Процедура FillRect(x1,y1,x2,y2: integer) - заливает прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2), цветом текущей кисти.

Процедура Сircle(x,y,r) рисует окружность с центром в точке (х,y) и радиусом r.

Закрасить замкнутую фигуру можно с помощью процедуры FloodFill(х,у,c), (х,у) - координата точки внутренней области фигуры, c – цвет заливки.

Процедура СlearWindow(color) устанавливает цвет графического окна. Закрасить прямоугольник и круг можно, используя команду закраски кистью SetBrushColor (color).

SetBrushStyle(Style) - устанавливает стиль текущей кисти. Константы стилей кисти: bsSolid – сплошная, bsClear – прозрачная, bsHatch – штриховая, bsGradient – градиентная.

Процедуры для ввода текста:

TextOut(x,y: integer; s: string) - выводит строку s в позицию (x,y) (точка (x,y) задает верхний левый угол прямоугольника, который будет содержать текст из строки s);

SetFontSize(size: integer) - устанавливает размер текущего шрифта в пикселях;

SetFontColor(c: Color) - устанавливает цвет текущего шрифта;

SetFontStyle(fs: integer) - устанавливает стиль текущего шрифта.

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

Program L;

uses GraphAbc;

Begin

SetWindowsize(640,480);{устанавливает размеры графического окна в пикселах}

ClearWindow(clYellow); {устанавливает желтый цвет фона}

SetPenColor(clBlue);{устанавливает синий цвет пера}

SetPenWidth(10); {устанавливает ширину пера}

Line(250,250,300,100); {рисует линию}

Line (100,270,200,350); {рисует треугольник}

Line (200,350,300,270);

Line (300,270,100,270);

FloodFill(175,300,clgreen); {Закрашивает треугольник}

Setpencolor(clGreen); {устанавливает зеленый цвет пера}

SetPenWidth(5); {устанавливает ширину пера}

Rectangle(30,30,230,130);{рисует прямоугольник}

FloodFill(50,100,clSilver);

Setpencolor (clNavy); {устанавливает красный цвет пера}

Circle(460,260,70); {рисует окружность};

FloodFill(460,260,clSkyBlue);

SetFontStyle(fsbold); {устанавливает стиль шрифта}

SetFontSize(18); {устанавливает размер шрифта}

SetFontColor(clFuchsia); {устанавливает оливковый цвет шрифта}

TextOut(300,30,'Геометрические фигуры'); {делает надпись}

End.

hello_html_m25ea9311.png

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

  • закрашенную зеленым цветом елку;

  • лодку с парусом;

  • снеговика;

  • дом;

  • придумайте свой рисунок.



Приложение к главе 3

Таблица 1. Меню Правка

Команда

Назначение

Отменить CTRL+Z

Отмена последней операции редакти-рования текста программы

Восстановить Shift+Ctrl+Z

Восстановление предыдущей операции редактирования текста программы

Вырезать CTRL+X

Перемещение выделенного фрагмента текста из окна редактора в буфер обмена

Копировать CTRL+C

Копирование выделенного фрагмента текста из окна редактора в буфер обмена

Вставить CTRL+V

Вставка выделенного текста из буфера обмена в окно редактора

Найти CTRL+F

Поиск текста

Заменить CTRL+R

Поиск текста и замена его новым текстом

Найти далее CTRL+L

Дальнейший поиск текста


Таблица 2. Меню Файл

Команда

Назначение

Новый CTRL+N

Открытие окна для нового файла

Открыть CTRL+O

Открытие (загрузка) файла

Сохранить CTRL+S

Сохранение файла с прежним именем

Сохранить как …

Сохранение файла с новым именем

Закрыть CTRL+F4

Закрыть текущее окно файла

Выход

Выход из системы программирования


Таблица 3. Ошибки при работе в системе программирования Pascal ABC

Ошибка

Причина ошибки

Неожиданный символ

Символ введен не с регистра английских букв

Ожидался символ "точка"

После end нет точки

ожидалось begin

Нет слова begin

Ожидалась "точка с запятой"

Нет символа «;» либо неверно расставлены скобки в команде

Ожидался идентификатор

Не указано имя программы

Ожидалась команда

Отсутствует end

Неизвестное имя

Неправильно написано название команды

Ожидадось «)»

Не закрыта скобка в конце команды

Ожидался конец файла

Неверно написано слово end либо есть лишние символы после слова end в конце программы

ожидался идентификатор, но ... обнаружено зарезервированное слово

Например, вместо val1 написано var

Ошибка ввода. Программа завершена

Неверно указано имя файла с задачей (‘begin’)


Графические примитивы Модуля GraphABC

procedure SetPixel(x,y,color: integer);

Закрашивает один пиксел с координатами (x,y) цветом color.

procedure MoveTo(x,y: integer);

Передвигает невидимое перо к точке с координатами (x,y); эта функция работает в паре с функцией LineTo(x,y).

procedure LineTo(x,y: integer);

Рисует отрезок от текущего положения пера до точки (x,y); координаты пера при этом также становятся равными (x,y).

procedure Line(x1,y1,x2,y2: integer);

Рисует отрезок с началом в точке (x1,y1) и концом в точке (x2,y2).

procedure Circle(x,y,r: integer);

Рисует окружность с центром в точке (x,y) и радиусом r.

procedure Ellipse(x1,y1,x2,y2: integer);

Рисует эллипс, заданный своим описанным прямоугольником с координатами противоположных вершин (x1,y1) и (x2,y2).

procedure Rectangle(x1,y1,x2,y2: integer);

Рисует прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2).

procedure TextOut(x,y: integer; s: string);

Выводит строку s в позицию (x,y) (точка (x,y) задает верхний левый угол прямоугольника, который будет содержать текст из строки s).

procedure FloodFill(x,y,color: integer);

Заливает область одного цвета цветом color, начиная с точки (x,y).

procedure FillRect(x1,y1,x2,y2: integer);

Заливает прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2), цветом текущей кисти.

Процедуры для работы с пером

Рисование линий осуществляется текущим пером.




procedure SetPenColor(c: Color);
        Устанавливает цвет текущего пера

procedure SetPenWidth(Width: integer);
         Устанавливает ширину текущего пера

procedure SetPenStyle(style: DashStyle);
         Устанавливает стиль текущего пера. Константы стилей пера приведены ниже.

procedure SetPenMode(m: integer);
         Устанавливает режим текущего пера

Стили пера

Стили пера определены следующими константами:

psSolid = DashStyle.Solid;

        Сплошное перо

psDash = DashStyle.Dash;

        Штриховое перо

psDot = DashStyle.Dot;
        

Пунктирное перо

psDashDot = DashStyle.DashDot;

        Штрихунктирное перо

psDashDotDot = DashStyle.DashDotDot;
        

Альтернативное штрихунктирное перо

psClear = DashStyle.Clear;

Прозрачное перо

процедуры для работы с графическим окном

procedure SetWindowWidth(w: integer);
        Устанавливает ширину клиентской части графического окна в пикселах

procedure SetWindowHeight(h: integer);
        Устанавливает высоту клиентской части графического окна в пикселах

procedure SetWindowLeft(l: integer);
        Устанавливает отступ графического окна от левого края экрана в пикселах

procedure SetWindowTop(t: integer);
        Устанавливает отступ графического окна от верхнего края экрана в пикселах

procedure SetWindowCaption(s: string);
        Устанавливает заголовок графического окна

procedure SetWindowTitle(s: string);
        Устанавливает заголовок графического окна

procedure SetWindowSize(w,h: integer);
        Устанавливает размеры клиентской части графического окна в пикселах

procedure SetWindowPos(l,t: integer);
        Устанавливает отступ графического окна от левого верхнего края экрана в пикселах

procedure ClearWindow;
        Очищает графическое окно белым цветом

procedure ClearWindow(c: Color);
        Очищает графическое окно цветом c

procedure SaveWindow(fname: string);
        Сохраняет содержимое графического окна в файл с именем fname

procedure LoadWindow(fname: string);
        Загружаает содержимое графического окна из файла с именем fname

procedure FillWindow(fname: string);
        Заполняет содержимое графического окна обоями из файла с именем fname

procedure CloseWindow;
        Закрывает графическое окно и завершает приложение

procedure CenterWindow;
        Центрирует графическое окно по центру экрана

procedure MinimizeWindow;
        Сворачивает графическое окно

procedure NormalizeWindow;
        Возвращает графическое окно к нормальному размеру

Процедуры для работы с кистью

Рисование внутренностей замкнутых областей осуществляется текущей кистью.

Procedure SetBrushColor(c: Color);
         Устанавливает цвет текущей кисти

procedure SetBrushStyle(bs: BrushStyleType);
   Устанавливает стиль текущей кисти. Константы стилей кисти

приведены ниже.

procedure SetHatchBrushBackgroundColor(c: Color);
         Устанавливает цвет заднего плана текущей штриховой кисти

procedure SetGradientBrushSecondColor(c: Color);
         Устанавливает второй цвет текущей градиентной кисти

Стили кисти

bsSolid         Сплошная кисть (по умолчанию)

bsClear         Прозрачная кисть

bsHatch         Штриховая кисть

bsGradient  Градиентная кисть

Процедуры для работы со шрифтом

Вывод текста осуществляется текущим шрифтом.

Procedure SetFontSize(size: integer);
         Устанавливает размер текущего шрифта в пикселях

Procedure SetFontColor(c: Color);
         Устанавливает цвет текущего шрифта

Procedure SetFontStyle(fs: integer);
        Устанавливает стиль текущего шрифта











Название документа ОПЕРАТОРЫ_ВЕТВЛЕНИЯ_ЦИКЛ_С_ПАРАМЕТРОМ.pptx

Поделитесь материалом с коллегами:

Условные операторы 09. 10.2014г.
Оператор ветвления- это оператор, обеспечивающий выполнение определенной кома...
Полная форма условных операторов IF  THEN  ELSE ; Для наглядности программы о...
Операции отношения: >	- больше <	- меньше =	- равно >=	- больше или равно 5 B...
PROGRAM zadacha1; VAR A,B:INTEGER; BEGIN WRITE(‘A=’); READLN(A); WRITE(‘B=’);...
НЕ Полная форма условных операторов IF  THEN  ; Пример: Удвоить число Х, есл...
Сложные условия В сложных условиях используются логические выражения, записан...
Оператор цикла с параметром
Операторы цикла используются для многократного повторения входящих в их соста...
For := to  do ; Задача. Напечатать 5 раз слово «молодец». Program а; var i:i...
1 из 11

Описание презентации по отдельным слайдам:

№ слайда 1 Условные операторы 09. 10.2014г.
Описание слайда:

Условные операторы 09. 10.2014г.

№ слайда 2 Оператор ветвления- это оператор, обеспечивающий выполнение определенной кома
Описание слайда:

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

№ слайда 3
Описание слайда:

№ слайда 4 Полная форма условных операторов IF  THEN  ELSE ; Для наглядности программы о
Описание слайда:

Полная форма условных операторов IF <условие> THEN <оператор1> ELSE <оператор2>; Для наглядности программы операторы можно писать в несколько строк Перед словом Else, знак ; отсутствует. Если (IF) условие истинно, тогда (THEN) выполняется оператор1, иначе (ELSE) выполняется оператор2. После слов Then и Else можно использовать только один оператор.

№ слайда 5 Операции отношения: &gt;	- больше &lt;	- меньше =	- равно &gt;=	- больше или равно 5 B
Описание слайда:

Операции отношения: > - больше < - меньше = - равно >= - больше или равно <= - меньше или равно <> - не равно Условие – это логическое выражение, которое может быть записано в операторе явно или вычислено в программе Условие Примеры: A>5 B<-4 A=B X>=0 S<=D+3 A-5<>B*2

№ слайда 6 PROGRAM zadacha1; VAR A,B:INTEGER; BEGIN WRITE(‘A=’); READLN(A); WRITE(‘B=’);
Описание слайда:

PROGRAM zadacha1; VAR A,B:INTEGER; BEGIN WRITE(‘A=’); READLN(A); WRITE(‘B=’); READLN(B); WRITE (‘Большее число : ‘); IF A>B THEN WRITELN (A) ELSE WRITELN (B); END. Задача. Из двух чисел А и В найти большее и вывести его на экран. Описываем переменные А и В целыми числами Вводим числа А и В Если А>В, то выводим на экран А, иначе выводим В

№ слайда 7 НЕ Полная форма условных операторов IF  THEN  ; Пример: Удвоить число Х, есл
Описание слайда:

НЕ Полная форма условных операторов IF <условие> THEN <оператор1> ; Пример: Удвоить число Х, если оно положительное: IF X>0 THEN X:=X*2;

№ слайда 8 Сложные условия В сложных условиях используются логические выражения, записан
Описание слайда:

Сложные условия В сложных условиях используются логические выражения, записанные с помощью логических операций. Логические операции: Not - Не And - И Or - Или Мультипликативные операции: Div - целая часть от деления Mod - остаток от деления Примеры: Определить, есть ли среди чисел a, b хотя бы одно равное нулю. IF (a>0) Or (b=0) THEN WRITELN(‘YES’) ELSE WRITELN(‘NO’); Определить, является ли число а – нечетным. IF a Mod 2<>0 THEN WRITELN(‘YES’) ELSE WRITELN(‘NO’); Каждое простое условие заключается в скобки

№ слайда 9 Оператор цикла с параметром
Описание слайда:

Оператор цикла с параметром

№ слайда 10 Операторы цикла используются для многократного повторения входящих в их соста
Описание слайда:

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

№ слайда 11 For := to  do ; Задача. Напечатать 5 раз слово «молодец». Program а; var i:i
Описание слайда:

For <счетчик цикла>:=<начальное значение> to <конечное значение> do <оператор>; Задача. Напечатать 5 раз слово «молодец». Program а; var i:integer; begin For i:=1 to 5 do writeln (‘Молодец’); end. Цикл for

Название документа ПАСКАЛЬ_УСЛОВНЫЙ_ОПЕРАТОР.docx

Поделитесь материалом с коллегами:

КОНСПЕКТ УРОКА

«Паскаль. Операторы ветвления. Полный и неполный условный оператор »


Дата проведения: 09.10.2014

Учебный предмет: Информатика и ИКТ.

Учебный класс: 10 Б.

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

Тип урока: Изучение нового материала.

Продолжительность урока: 40 мин.


Цели урока:

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

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

Воспитательные: воспитать умение слушать и слышать, самооценку у обучающихся.


Оборудование: компьютер со средой программирования Pascal ABC, интерактивная доска, презентация,


Структура урока:

  1. Организационный момент (2 мин.)

  2. Самостоятельная работа (5 мин.)

  3. Актуализация знаний (2 мин.)

  4. Сообщение темы урока (2 мин.)

  5. Изложение нового материала (14 мин.)

  6. Рефлексия (14 мин.)

  7. Подведение итогов урока (1 мин.)


1.Организационный момент (2 мин.)

Приветствие учащихся. Проверка готовности учащихся к уроку. Сбор домашней работы.


2.Самостоятельная работа (5 мин.)

Вариант 1

Фамилия Имя ______________________________________________________

  1. Как записывается заголовок программы на Паскале?_______________________________________________________________________________________

  2. Как с чего начинается запись тела программы?

_______________________________________________________________________________________

  1. Из чего состоит алфавит Паскаля? _______________________________________________________________________________________

  2. Как записываются квадрат числа на языке Паскаль? _______________________________________________________________________________________

  3. Как записывается оператор вывода? _______________________________________________________________________________________






Вариант 2

Фамилия Имя ______________________________________________________

  1. Как записывается раздел описания переменных? ________________________________________________________________________________________

  2. Каким словом заканчивается программа? ________________________________________________________________________________________

  3. Из чего состоит алфавит Паскаля? __________________________________________________________________________________________

  4. Как записывается оператор присваивания? ___________________________________________________________________________________________

  5. Как записывается оператор ввода? ___________________________________________________________________________________________




3.Актуализация знаний (2 мин.)

Учитель: На прошлых уроках мы писали программы для решения задач с использованием линейных операторов. Напишите схему общую схему программы?

Ученики: (ответы/ Program <Имя программы>;
var <Список однотипных переменных>: <тип переменных>;
begin 
<Тело программы>;
еnd.
)

Учитель: Напомните какими операторами ввода и вывода мы пользуемся?

Ученики: (ответы / Оператор вывода Write, Writeln ; Операторы ввода.

Read(список переменных);ReadLn(список переменных))

Учитель: Какие виды алгоритмов вы помните?

с/ линейные, алгоритмы в ветвлением, с циклом)

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


3.Сообщение темы урока (2 мин.)

Учитель: Запишите число 9 октября и тему урока: Паскаль. Условные операторы. (Слайд 1)


4.Изложение нового материала (14 мин.)

Учитель: Оператор ветвления (или условный оператор) - это оператор, обеспечивающий выполнять определенные команды (набор команд), только при условии истинности некоторого логического выражения, либо выполнение одной из нескольких команд в зависимости от значения некоторого выражения (Слайд 2)

Условные операторы бывают двух видов: полные и неполные (Слайд 3). Давайте рассмотрим их.

(Слайд 4)

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

IF <условие> THEN <оператор1>

ELSE <оператор2>;

Если (IF) условие истинно, тогда (THEN) выполняется оператор1, иначе (ELSE) выполняется оператор2.


Такой оператор можно изобразить, как

hello_html_m19adfdb2.png

Для наглядности программы операторы можно писать в несколько строк. Перед словом Else, знак ; отсутствует. После слов Then и Else можно использовать только один оператор.

Здесь возникает вопрос: что же такое условие?

Ученики: (ответы)


Учитель: (Слайд 5)Условие – это логическое выражение, которое может быть записано в операторе явно или вычислено в программе.

Операции отношения:

> - больше

< - меньше

= - равно

>= - больше или равно

<= - меньше или равно

<> - не равно


Примеры:

A>5

B<-4

A=B

X>=0

S<=D+3

A-5<>B*2


Если по условию задачи после THEN или ELSE необходимо выполнить больше одного оператора, то тогда используют операторные скобки BEGINEND

К примеру задача такого типа: (Слайд 6) Из двух чисел А и В найти наибольшее и вывести его на экран.


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


PROGRAM zadacha1;

VAR A,B:INTEGER;

BEGIN

WRITE(‘A=’);

READLN(A);

WRITE(‘B=’);

READLN(B);

WRITE (‘Большее число : ‘);

IF A>B THEN WRITELN (A)

ELSE WRITELN (B);

END.


(Слайд 7) Неполная форма условного оператора

IF <условие> THEN <оператор1> ;

hello_html_5dc05e2c.png


Пример:

Удвоить число Х, если оно положительное:

IF X>0 THEN X:=X*2;


Запишите. Как будет выглядеть программа целиком.

(ученик вызывается к доске)


Ответ:

program g;

var x: real;

begin

writeln ('запишите число Х');

readln (x);

if x>0 then x:=x*2;

write (x);

end.


Сложные условия (Слайд 8)

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

Логические операции:

Not - Не

And - И

Or - Или

Мультипликативные

операции:

Div - целая часть от деления

Mod - остаток от деления


Примеры:

Определить, есть ли среди чисел a, b, c хотя бы одно равное нулю.

IF (a>0) Or (b=0) THEN WRITELN(‘YES’) ELSE WRITELN(‘NO’);

Определить, является ли число а – нечетным.

IF a Mod 2<>0 THEN WRITELN(‘YES’) ELSE WRITELN(‘NO’);


5.Рефлексия (14 мин.)


Давайте теперь напишем программу для решения квадратного уравнения. (Слайд 9)

Как на уроках математики мы его решаем?


Ученики: (ответы)


Учитель: Правильно. Мы находим дискриминант, если он положительный – то находим два корня уравнения, если он равен нулю – то один, если дискриминант меньше нуля – то корней нет.

Учитель: (Слайд 10) Перечертите себе в тетрадь блок-схему, которая поможет вам в написании данной программы.

hello_html_5d4e23ff.jpg

А теперь давайте запишем программу для решения квадратных уравнений.

(5 минут решают самостоятельно, затем проверяют свое решение с решение на слайде) (Слайд 11)

PROGRAM zadacha2;

VAR a,b,c,D,x,x1,x2:REAL;

BEGIN

WRITE(‘a=’); READLN(a);

WRITE(‘b=’); READLN(b);

WRITE(‘c=’); READLN(c);

D:= b*b - 4*a*c;

WRITE (‘Корни уравнения: ‘);

IF D>0 THEN

BEGIN

x1:=(-b+SQRT(D))/(2*a);

x1:=(-b-SQRT(D))/(2*a);

WRITELN (‘x1= ‘,x1:5:2,’x2= ‘,x2:5:2);

END

ELSE

IF D=0 THEN

BEGIN

x:= -b/(2*a);

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

END

ELSE

WRITELN (‘Корней нет’);

END.

(Следующий урок начнется с написания этой программы в среде программирования Pascal ABC)


5.Организационный момент (5 мин.)


Учитель: с каким видом алгоритмов мы сегодня работали?

Ученики: (ответы)

Учитель: Каких видов бывают условные операторы?

Ученики: (ответы)

Учитель: Охарактеризуйте их?

Ученики: (ответы)

Учитель: Как записывается в программе оператор ветвления?

Ученики: (ответы)

6.Организационный момент (2 мин.)

Учитель: на следующем уроке мы продолжим решать задачи с использованием условных операторов. Спасибо за этот урок, можете идти на перемену.


Название документа практика.docx

Поделитесь материалом с коллегами:

КОНСПЕКТ УРОКА

«Паскаль. Операторы ветвления. Полный и неполный условный оператор »


Дата проведения: 09.10.2014

Учебный предмет: Информатика и ИКТ.

Учебный класс: 10 Б.

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

Тип урока: Изучение нового материала.

Продолжительность урока: 40 мин.


Цели урока:

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

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

Воспитательные: воспитать умение слушать и слышать, самооценку у обучающихся.


Оборудование: компьютер со средой программирования Pascal ABC, интерактивная доска, презентация,


Структура урока:

  1. Организационный момент (2 мин.)

  2. Самостоятельная работа (5 мин.)

  3. Актуализация знаний (2 мин.)

  4. Сообщение темы урока (2 мин.)

  5. Изложение нового материала (14 мин.)

  6. Рефлексия (14 мин.)

  7. Подведение итогов урока (1 мин.)


1.Организационный момент (2 мин.)

Приветствие учащихся. Проверка готовности учащихся к уроку. Сбор домашней работы.


2.Самостоятельная работа (5 мин.)

Вариант 1

Фамилия Имя ______________________________________________________

  1. Как записывается заголовок программы на Паскале?_______________________________________________________________________________________

  2. Как с чего начинается запись тела программы?

_______________________________________________________________________________________

  1. Из чего состоит алфавит Паскаля? _______________________________________________________________________________________

  2. Как записываются квадрат числа на языке Паскаль? _______________________________________________________________________________________

  3. Как записывается оператор вывода? _______________________________________________________________________________________






Вариант 2

Фамилия Имя ______________________________________________________

  1. Как записывается раздел описания переменных? ________________________________________________________________________________________

  2. Каким словом заканчивается программа? ________________________________________________________________________________________

  3. Из чего состоит алфавит Паскаля? __________________________________________________________________________________________

  4. Как записывается оператор присваивания? ___________________________________________________________________________________________

  5. Как записывается оператор ввода? ___________________________________________________________________________________________




3.Актуализация знаний (2 мин.)

Учитель: На прошлых уроках мы писали программы для решения задач с использованием линейных операторов. Напишите схему общую схему программы?

Ученики: (ответы/ Program <Имя программы>;
var <Список однотипных переменных>: <тип переменных>;
begin 
<Тело программы>;
еnd.
)

Учитель: Напомните какими операторами ввода и вывода мы пользуемся?

Ученики: (ответы / Оператор вывода Write, Writeln ; Операторы ввода.

Read(список переменных);ReadLn(список переменных))

Учитель: Какие виды алгоритмов вы помните?

с/ линейные, алгоритмы в ветвлением, с циклом)

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


3.Сообщение темы урока (2 мин.)

Учитель: Запишите число 9 октября и тему урока: Паскаль. Условные операторы. (Слайд 1)


4.Изложение нового материала (14 мин.)

Учитель: Оператор ветвления (или условный оператор) - это оператор, обеспечивающий выполнять определенные команды (набор команд), только при условии истинности некоторого логического выражения, либо выполнение одной из нескольких команд в зависимости от значения некоторого выражения (Слайд 2)

Условные операторы бывают двух видов: полные и неполные (Слайд 3). Давайте рассмотрим их.

(Слайд 4)

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

IF <условие> THEN <оператор1>

ELSE <оператор2>;

Если (IF) условие истинно, тогда (THEN) выполняется оператор1, иначе (ELSE) выполняется оператор2.


Такой оператор можно изобразить, как

hello_html_m19adfdb2.png

Для наглядности программы операторы можно писать в несколько строк. Перед словом Else, знак ; отсутствует. После слов Then и Else можно использовать только один оператор.

Здесь возникает вопрос: что же такое условие?

Ученики: (ответы)


Учитель: (Слайд 5)Условие – это логическое выражение, которое может быть записано в операторе явно или вычислено в программе.

Операции отношения:

> - больше

< - меньше

= - равно

>= - больше или равно

<= - меньше или равно

<> - не равно


Примеры:

A>5

B<-4

A=B

X>=0

S<=D+3

A-5<>B*2


Если по условию задачи после THEN или ELSE необходимо выполнить больше одного оператора, то тогда используют операторные скобки BEGINEND

К примеру задача такого типа: (Слайд 6) Из двух чисел А и В найти наибольшее и вывести его на экран.


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


PROGRAM zadacha1;

VAR A,B:INTEGER;

BEGIN

WRITE(‘A=’);

READLN(A);

WRITE(‘B=’);

READLN(B);

WRITE (‘Большее число : ‘);

IF A>B THEN WRITELN (A)

ELSE WRITELN (B);

END.


(Слайд 7) Неполная форма условного оператора

IF <условие> THEN <оператор1> ;

hello_html_5dc05e2c.png


Пример:

Удвоить число Х, если оно положительное:

IF X>0 THEN X:=X*2;


Запишите. Как будет выглядеть программа целиком.

(ученик вызывается к доске)


Ответ:

program g;

var x: real;

begin

writeln ('запишите число Х');

readln (x);

if x>0 then x:=x*2;

write (x);

end.


Сложные условия (Слайд 8)

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

Логические операции:

Not - Не

And - И

Or - Или

Мультипликативные

операции:

Div - целая часть от деления

Mod - остаток от деления


Примеры:

Определить, есть ли среди чисел a, b, c хотя бы одно равное нулю.

IF (a>0) Or (b=0) THEN WRITELN(‘YES’) ELSE WRITELN(‘NO’);

Определить, является ли число а – нечетным.

IF a Mod 2<>0 THEN WRITELN(‘YES’) ELSE WRITELN(‘NO’);


5.Рефлексия (14 мин.)


Давайте теперь напишем программу для решения квадратного уравнения. (Слайд 9)

Как на уроках математики мы его решаем?


Ученики: (ответы)


Учитель: Правильно. Мы находим дискриминант, если он положительный – то находим два корня уравнения, если он равен нулю – то один, если дискриминант меньше нуля – то корней нет.

Учитель: (Слайд 10) Перечертите себе в тетрадь блок-схему, которая поможет вам в написании данной программы.

hello_html_5d4e23ff.jpg

А теперь давайте запишем программу для решения квадратных уравнений.

(5 минут решают самостоятельно, затем проверяют свое решение с решение на слайде) (Слайд 11)

PROGRAM zadacha2;

VAR a,b,c,D,x,x1,x2:REAL;

BEGIN

WRITE(‘a=’); READLN(a);

WRITE(‘b=’); READLN(b);

WRITE(‘c=’); READLN(c);

D:= b*b - 4*a*c;

WRITE (‘Корни уравнения: ‘);

IF D>0 THEN

BEGIN

x1:=(-b+SQRT(D))/(2*a);

x1:=(-b-SQRT(D))/(2*a);

WRITELN (‘x1= ‘,x1:5:2,’x2= ‘,x2:5:2);

END

ELSE

IF D=0 THEN

BEGIN

x:= -b/(2*a);

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

END

ELSE

WRITELN (‘Корней нет’);

END.

(Следующий урок начнется с написания этой программы в среде программирования Pascal ABC)


5.Организационный момент (5 мин.)


Учитель: с каким видом алгоритмов мы сегодня работали?

Ученики: (ответы)

Учитель: Каких видов бывают условные операторы?

Ученики: (ответы)

Учитель: Охарактеризуйте их?

Ученики: (ответы)

Учитель: Как записывается в программе оператор ветвления?

Ученики: (ответы)

6.Организационный момент (2 мин.)

Учитель: на следующем уроке мы продолжим решать задачи с использованием условных операторов. Спасибо за этот урок, можете идти на перемену.


Название документа проверочная.docx

Поделитесь материалом с коллегами:

Вариант 1

Фамилия Имя ______________________________________________________

  1. Как записывается заголовок программы на Паскале?

_______________________________________________________________________________________

  1. Как с чего начинается запись тела программы?

_______________________________________________________________________________________

  1. Из чего состоит алфавит Паскаля? _______________________________________________________________________________________

  2. Как записываются квадрат числа на языке Паскаль? _______________________________________________________________________________________

  3. Как записывается оператор вывода? _______________________________________________________________________________________

  4. Напишите общую схем программы с использованием линейного оператора.



Вариант 1

Фамилия Имя ______________________________________________________

  1. Как записывается заголовок программы на Паскале?

_______________________________________________________________________________________

  1. Как с чего начинается запись тела программы?

_______________________________________________________________________________________

  1. Из чего состоит алфавит Паскаля? _______________________________________________________________________________________

  2. Как записываются квадрат числа на языке Паскаль? _______________________________________________________________________________________

  3. Как записывается оператор вывода? _______________________________________________________________________________________

  4. Напишите общую схем программы с использованием линейного оператора.




Вариант 1

Фамилия Имя ______________________________________________________

  1. Как записывается заголовок программы на Паскале?

_______________________________________________________________________________________

  1. Как с чего начинается запись тела программы?

_______________________________________________________________________________________

  1. Из чего состоит алфавит Паскаля? _______________________________________________________________________________________

  2. Как записываются квадрат числа на языке Паскаль? _______________________________________________________________________________________

  3. Как записывается оператор вывода? _______________________________________________________________________________________

  4. Напишите общую схем программы с использованием линейного оператора.



Вариант 2

Фамилия Имя ______________________________________________________

  1. Как записывается раздел описания переменных? ________________________________________________________________________________________

  2. Каким словом заканчивается программа? ________________________________________________________________________________________

  3. Из чего состоит алфавит Паскаля? __________________________________________________________________________________________

  4. Как записывается оператор присваивания? ___________________________________________________________________________________________

  5. Как записывается оператор ввода? ___________________________________________________________________________________________

  6. Напишите общую схем программы с использованием линейного оператора.


Вариант 2

Фамилия Имя ______________________________________________________

  1. Как записывается раздел описания переменных? ________________________________________________________________________________________

  2. Каким словом заканчивается программа? ________________________________________________________________________________________

  3. Из чего состоит алфавит Паскаля? __________________________________________________________________________________________

  4. Как записывается оператор присваивания? ___________________________________________________________________________________________

  5. Как записывается оператор ввода? ___________________________________________________________________________________________

  6. Напишите общую схем программы с использованием линейного оператора.

Вариант 2

Фамилия Имя ______________________________________________________

  1. Как записывается раздел описания переменных? ________________________________________________________________________________________

  2. Каким словом заканчивается программа? ________________________________________________________________________________________

  3. Из чего состоит алфавит Паскаля? __________________________________________________________________________________________

  4. Как записывается оператор присваивания? ___________________________________________________________________________________________

  5. Как записывается оператор ввода? ___________________________________________________________________________________________

  6. Напишите общую схем программы с использованием линейного оператора.



Название документа Карточки_с_заданиями.docx

Поделитесь материалом с коллегами:

Карточка с заданиями.

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


Program pokupka;

a, b, d, den: real,

ostatok: real;

begin

write («введите стоимость перчаток, портфеля и галстука»);

readln (a, b, d);

write («введите количество имеющихся у вас денег»);

readln (den);

oststok:=den – a - b-с;

writeln ('после покупки у вас останется ',oststok, 'руб. ');

readln;

end.


2. Напишите программу которая будет высчитывать стоимость1 килограмма 750 грамм яблок с указанием определенной цены за один килограмм.

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

4. Напишите программу для решения уравнения х равняется у в квадрате плюс пять z. Y и z задаются с клавиатуры.

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

6. У Анны 2500 рублей. Мама попросила ее купить 3 тетради по фиксированной цене и 5 ручек. Сколько денег останется у девочки после покупки? Цены за тетрадь и ручку вводятся с клавиатуры.

7. Напишите программу для решения уравнения х равняется корень квадратный из у умноженный на сумму 34,5 и z. Y и z задаются с клавиатуры.

8. Напишите программу для решения уравнения hello_html_m2e4aba03.gif. Значение у вводится с клавиатуры. Ответ должен выключать в себя фразу «При у= {ваше значение}, х=»

















Карточка с заданиями.

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


Program pokupka;

a, b, d, den: real,

ostatok: real;

begin

write («введите стоимость перчаток, портфеля и галстука»);

readln (a, b, d);

write («введите количество имеющихся у вас денег»);

readln (den);

oststok:=den – a - b-с;

writeln ('после покупки у вас останется ',oststok, 'руб. ');

readln;

end.


2. Напишите программу которая будет высчитывать стоимость1 килограмма 750 грамм яблок с указанием определенной цены за один килограмм.

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

4. Напишите программу для решения уравнения х равняется у в квадрате плюс пять z. Y и z задаются с клавиатуры.

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

6. У Анны 2500 рублей. Мама попросила ее купить 3 тетради по фиксированной цене и 5 ручек. Сколько денег останется у девочки после покупки? Цены за тетрадь и ручку вводятся с клавиатуры.

7. Напишите программу для решения уравнения х равняется корень квадратный из у умноженный на сумму 34,5 и z. Y и z задаются с клавиатуры.

8. Напишите программу для решения уравнения hello_html_m2e4aba03.gif. Значение у вводится с клавиатуры. Ответ должен выключать в себя фразу «При у= {ваше значение}, х=»





Название документа ПАСКАЛЬ_УСЛОВНЫЙ_ОПЕРАТОР_ПРАКТИКА.docx

Поделитесь материалом с коллегами:

КОНСПЕКТ УРОКА

«Паскаль. Решение задач с использованием условных операторов»


Дата проведения: 092.10.2014

Учебный предмет: Информатика и ИКТ.

Учебный класс: 10 Б.

Тема урока: Паскаль. Решение задач с использованием условных операторов.

Тип урока: Урок проверки знаний и умений.

Продолжительность урока: 40 мин.


Цели урока:

Образовательные: применить на практике знания о среде программирования Pascal ABC, способе построения программ, решить задачи с использованием условных операторов.

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

Воспитательные: воспитать умение слушать и слышать, самооценку у обучающихся.


Оборудование: компьютеры со средой программирования Pascal ABC, интерактивная доска, презентация, карточки с заданиями.


Структура урока:

  1. Организационный момент (2 мин.)

  2. Актуализация знаний (4 мин.)

  3. Сообщение темы урока (2 мин.)

  4. Самостоятельная работа обучающихся (25 мин.)

  5. Рефлексия (5 мин.)

  6. Подведение итогов урока и выдача домашнего задания (2 мин.)


1.Организационный момент (2 мин.)

Приветствие учащихся. Проверка готовности учащихся к уроку.


2.Актуализация знаний (4 мин.)

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

Ученики: (ответы)

Учитель: структура неполного условного оператора?

Ученики: (ответы)


3.Сообщение темы урока (2 мин.)

Учитель: Запишите в тетрадь тему урока: Паскаль. Решение задач с использованием условных операторов.


4.Самостоятельная работа обучающихся (25 мин.)


Учитель: Посмотрите внимательно на слайд. (Слайд 10) .

PROGRAM zadacha2;

VAR a,b,c,D,x,x1,x2:REAL;

BEGIN

WRITE(‘a=’); READLN(a);

WRITE(‘b=’); READLN(b);

WRITE(‘c=’); READLN(c);

D:= b*b - 4*a*c;

WRITE (‘Корни уравнения: ‘);

IF D>0 THEN

BEGIN

x1:=(-b+SQRT(D))/(2*a);

x1:=(-b-SQRT(D))/(2*a);

WRITELN (‘x1= ‘,x1:5:2,’x2= ‘,x2:5:2);

END

ELSE

IF D=0 THEN

BEGIN

x:= -b/(2*a);

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

END

ELSE

WRITELN (‘Корней нет’);

END.


Еще раз вспомним какую задачу мы решаем?

Ученики: (ответы)

Учитель: Объясните значения, функции каждой строчки.

Ученики: (отвечают, что обозначает каждая строчка.)


Учитель: Молодцы. Сейчас я выдам вам карточки с заданиями. Подписываем на них Фамилию и Имя. После того как решите задачу. Поднимаем руку – я подойду проверю, а вы начинаете решить следующую задачу.



Карточка с заданиями.

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

  2. Написать программу, проверяющую, принадлежит ли число интервалу (0;5].

  3. Написать программу, проверяющую, принадлежит ли число интервалу (a;b).

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

  5. Написать программу, которая определит, имеете ли Вы право голосовать: если Вам 18 и более лет – имеет право голосовать, если менее 18 лет – не имеет право голосовать.

  6. Напишите программу для решения системы уравнений:


hello_html_55cb94fe.gif






5. Рефлексия (5 мин.)


Учитель: Останавливается на той задаче на которой вы сейчас находитесь и садимся за столы. Программу выключаем.

Учитель: Сколько задач успели решить?

Ученики: (ответы)

Учитель: с какими сложностями столкнулись во время решения задач?

Ученики: (ответы)

6.Выдача домашнего задания (2 мин.)

Учитель: дома решаем оставшиеся задачи, скопируйте решение в один файл и распечатайте его, не забудьте подписать фамилию. Спасибо за урок, можете быть свободными.


Название документа практическая работа.docx

Поделитесь материалом с коллегами:

Карточка с заданиями.

Фамилия Имя_____________________________________________________________________________________

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

  2. Напишите программу, итогом которой будет 8 надписей с вашими именем и фамилией.

  3. Написать программу, проверяющую, принадлежность числа к интервалу (0;5].

  4. По заданному целому неотрицательному значению n вычислить n! = 1*2*3*…n

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

  6. Вычислить сумму натурального ряда чисел от 1 до N.

  7. Написать программу, которая определит, имеете ли Вы право голосовать: если Вам 18 и более лет – имеет право голосовать, если менее 18 лет – не имеет право голосовать.

  8. Вычислить сумму n слагаемых вида x+i, где x – данное число, а i меняется от 1 до n

  9. Напишите программу для решения системы уравнений:

hello_html_55cb94fe.gif

Карточка с заданиями.

Фамилия Имя_____________________________________________________________________________________

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

  2. Напишите программу, итогом которой будет 8 надписей с вашими именем и фамилией.

  3. Написать программу, проверяющую, принадлежность числа к интервалу (0;5].

  4. По заданному целому неотрицательному значению n вычислить n! = 1*2*3*…n

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

  6. Вычислить сумму натурального ряда чисел от 1 до N.

  7. Написать программу, которая определит, имеете ли Вы право голосовать: если Вам 18 и более лет – имеет право голосовать, если менее 18 лет – не имеет право голосовать.

  8. Вычислить сумму n слагаемых вида x+i, где x – данное число, а i меняется от 1 до n

  9. Напишите программу для решения системы уравнений:

hello_html_55cb94fe.gif

Карточка с заданиями.

Фамилия Имя_____________________________________________________________________________________

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

  2. Напишите программу, итогом которой будет 8 надписей с вашими именем и фамилией.

  3. Написать программу, проверяющую, принадлежность числа к интервалу (0;5].

  4. По заданному целому неотрицательному значению n вычислить n! = 1*2*3*…n

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

  6. Вычислить сумму натурального ряда чисел от 1 до N.

  7. Написать программу, которая определит, имеете ли Вы право голосовать: если Вам 18 и более лет – имеет право голосовать, если менее 18 лет – не имеет право голосовать.

  8. Вычислить сумму n слагаемых вида x+i, где x – данное число, а i меняется от 1 до n

  9. Напишите программу для решения системы уравнений:

hello_html_55cb94fe.gif

Карточка с заданиями.

Фамилия Имя_____________________________________________________________________________________

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

  2. Напишите программу, итогом которой будет 8 надписей с вашими именем и фамилией.

  3. Написать программу, проверяющую, принадлежность числа к интервалу (0;5].

  4. По заданному целому неотрицательному значению n вычислить n! = 1*2*3*…n

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

  6. Вычислить сумму натурального ряда чисел от 1 до N.

  7. Написать программу, которая определит, имеете ли Вы право голосовать: если Вам 18 и более лет – имеет право голосовать, если менее 18 лет – не имеет право голосовать.

  8. Вычислить сумму n слагаемых вида x+i, где x – данное число, а i меняется от 1 до n

  9. Напишите программу для решения системы уравнений:

hello_html_55cb94fe.gif

Карточка с заданиями.

Фамилия Имя_____________________________________________________________________________________

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

  2. Напишите программу, итогом которой будет 8 надписей с вашими именем и фамилией.

  3. Написать программу, проверяющую, принадлежность числа к интервалу (0;5].

  4. По заданному целому неотрицательному значению n вычислить n! = 1*2*3*…n

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

  6. Вычислить сумму натурального ряда чисел от 1 до N.

  7. Написать программу, которая определит, имеете ли Вы право голосовать: если Вам 18 и более лет – имеет право голосовать, если менее 18 лет – не имеет право голосовать.

  8. Вычислить сумму n слагаемых вида x+i, где x – данное число, а i меняется от 1 до n

  9. Напишите программу для решения системы уравнений:

hello_html_55cb94fe.gif

Карточка с заданиями.

Фамилия Имя_____________________________________________________________________________________

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

  2. Напишите программу, итогом которой будет 8 надписей с вашими именем и фамилией.

  3. Написать программу, проверяющую, принадлежность числа к интервалу (0;5].

  4. По заданному целому неотрицательному значению n вычислить n! = 1*2*3*…n

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

  6. Вычислить сумму натурального ряда чисел от 1 до N.

  7. Написать программу, которая определит, имеете ли Вы право голосовать: если Вам 18 и более лет – имеет право голосовать, если менее 18 лет – не имеет право голосовать.

  8. Вычислить сумму n слагаемых вида x+i, где x – данное число, а i меняется от 1 до n

  9. Напишите программу для решения системы уравнений:

hello_html_55cb94fe.gif

Название документа 544182.pptx

Поделитесь материалом с коллегами:

Паскаль. Оператор цикл с предусловием. 16.10.2014г.
Цикл с предусловием – цикл, в котором условие его выполнения проверяется пере...
Оператор цикла в Паскале While  do  Операция выполняется до тех пор, пока ист...
Если операция состоит не из одной команды, а из нескольких, то их следует зак...
Блок-схема
Задача 1. Распечатать квадраты чисел, находящихся в диапазоне от 0 до 1 с шаг...
program q; var k, s : real; begin s := 0; while s
задачу 2: Вывести на экран таблицу умножения на 5.
1 из 11

Описание презентации по отдельным слайдам:

№ слайда 1
Описание слайда:

№ слайда 2 Паскаль. Оператор цикл с предусловием. 16.10.2014г.
Описание слайда:

Паскаль. Оператор цикл с предусловием. 16.10.2014г.

№ слайда 3 Цикл с предусловием – цикл, в котором условие его выполнения проверяется пере
Описание слайда:

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

№ слайда 4 Оператор цикла в Паскале While  do  Операция выполняется до тех пор, пока ист
Описание слайда:

Оператор цикла в Паскале While <условие> do <операция> Операция выполняется до тех пор, пока истинно условие, указанное в операторе while

№ слайда 5 Если операция состоит не из одной команды, а из нескольких, то их следует зак
Описание слайда:

Если операция состоит не из одной команды, а из нескольких, то их следует заключить в операторные скобки begin и end. Пример: while <условие> do begin <команда 1>; <команда 2>; <команда 3>; …. end;

№ слайда 6 Блок-схема
Описание слайда:

Блок-схема

№ слайда 7 Задача 1. Распечатать квадраты чисел, находящихся в диапазоне от 0 до 1 с шаг
Описание слайда:

Задача 1. Распечатать квадраты чисел, находящихся в диапазоне от 0 до 1 с шагом 0,2.

№ слайда 8
Описание слайда:

№ слайда 9 program q; var k, s : real; begin s := 0; while s
Описание слайда:

program q; var k, s : real; begin s := 0; while s <= 1 do   begin k := sqr(s); writeln (k); s := s + 0.2; end;   end.  

№ слайда 10 задачу 2: Вывести на экран таблицу умножения на 5.
Описание слайда:

задачу 2: Вывести на экран таблицу умножения на 5.

№ слайда 11
Описание слайда:

Название документа pril3.doc

Поделитесь материалом с коллегами:

Е.Н. Колдашова (218-805-151)


Приложение 3

Задачи

Вариант 1

1. По заданному целому неотрицательному значению n вычислить n! = 1*2*3*…n. Учтите, что по определению 0!=1.

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

Вариант 2

1. Составить таблицу значений функции y = –2,4x2 +5x – 3 в диапазоне от –2 до 2 с шагом 0,5.

2. Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый день он увеличивал дневную норму на 10% нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 7 дней?

Вариант 3

1. Вычислить сумму натурального ряда чисел от 1 до N.

2. Одноклеточная амёба каждые 3 часа делится на 2 клетки. Определить, сколько будет амёб через 3,6,9,12,…24 часа.

Вариант 4

1. Вычислить сумму n слагаемых вида x+i, где x – данное число, а i меняется от 1 до n.

2. Распечатать числа Фибоначчи от 1 до n. (Каждое число в последовательности, начиная с третьего, получается сложением двух предыдущих чисел: 1,1,2,3,5,8,13…)

Вариант 5

1. Подсчитать сумму всех нечетных чисел от 101 до 301.

2. Даны действительное число a, натуральное число n. Вычислить:
Р=а*(a-n)*(a-2n)*…*(a-n2).


Вариант 6

1. Определить, сколько из n заданных точек принадлежат графику функции y=|x|.

2. Дано натуральное n. Вычислить y=1*3*5*…*(2n-1).


Вариант 7

1. Составьте таблицу значений функции y=5x2–2x + 1 на отрезке
[–5;5] с шагом 2.

2. Дано натуральное n. Вычислить S= 2/1 + 3/2 + 4/3 + … + (n+1)/n.


Вариант 8

1. Напечатать таблицу значений функции y=x3 на отрезке [–1;1] с шагом 0,1.

2. Напечатать таблицу перевода 1,2,…, 20 долларов США в рубли по текущему курсу (значение курса вводится с клавиатуры).



Название документа Цикл_с_предусловием.docx

Поделитесь материалом с коллегами:

КОНСПЕКТ УРОКА

«Паскаль. Цикл с предусловием »


Дата проведения: 16.10.2014

Учебный предмет: Информатика и ИКТ.

Учебный класс: 10 Б.

Тема урока: Паскаль. Цикл с предусловием.

Тип урока: Изучение нового материала.

Продолжительность урока: 40 мин.


Цели урока:

Образовательные: познакомить учащихся с построением программ с использованием цикла с предусловием. Рассказать, как записывается цикл WHILE, уметь решать задачи с его использованием

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

Воспитательные: воспитать умение слушать и слышать, самооценку у обучающихся.


Оборудование: компьютер со средой программирования Pascal ABC, интерактивная доска, презентация,


Структура урока:

  1. Организационный момент (2 мин.)

  2. Актуализация знаний (10 мин.)

  3. Сообщение темы урока (2 мин.)

  4. Изложение нового материала (15 мин.)

  5. Рефлексия (10мин.)

  6. Подведение итогов урока (1 мин.)




Ход урока:

1.Организационный момент (2 мин.)

Приветствие учащихся. Проверка готовности учащихся к уроку. Сбор домашней работы.


2.Актуализация знаний (6 мин.)

Учитель: На прошлых уроках мы учились составлять в Паскале программы с использованием линейного оператора и условного. Давайте решим задачу: Вычислить сумму натурального ряда чисел от 1 до N. Один человек – к доске остальные пишем в тетради.

Учитель: проверьте, правильно ли написана программа на доске? Какие есть ошибки?


2.Сообщение темы урока (2 мин.)


Учитель: Сегодня мы рассмотрим цикл с предусловием. Запишите в тетради сегодняшнее число: 16 октября и тему урока: Паскаль. Операторы цикла с предусловием. (Слайд 1)


3.Изложение нового материала (15 мин.)

Учитель: (Слайд 2) Цикл с предусловием – цикл, в котором условие его выполнения проверяется перед выполнением тела цикла. Цикл с предусловием вообще может ни разу не выполниться, если условие его выполнения изначально не соблюдается.


(Слайд 3) Запись оператора выглядит следующим образом

While <условие> do <операция>. И читается : Операция выполняется до тех пор, пока истинно условие, указанное в операторе while

Что значит пока истинно условие?


Ученики: (ответы)

Учитель: правильно, истинно – то есть пока условие выполняется.

(Слайд 4)Операция может состоять из нескольких команд, в таком случае необходимо перед командами поставить слово begin, а после end;.

Например:

while <условие> do

begin

<команда 1>;

<команда 2>;

<команда 3>;

.

end;

Блок схема данного оператора будет выглядеть следующим образом, зарисуйте ее к себе в тетради: (Слайд 5)

Безымянный.png


Давайте для примера разберем задачу 1, с карточек с заданиями. (учитель раздает карточки с заданиями.


(Слайд 6) Задача 1. распечатать квадраты чисел, находящихся в диапазоне от 0 до 1 с шагом 0,2.


В первой строчке пишем название программы:

program q;

Далее перечисляем переменные, которые будем использовать и их тип. Нам нужны две переменные – одна это само число, вторая это квадрат. Так как числа используем не целые, то какой тип будем указывать?


Ученики: (ответы)

Учитель: Молодцы! Значит вторая строчка выглядит следующим образом:

var k, s : real;


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

begin

s – это само число, для начала присвоим ему значение 0

s := 0;

и записываем оператор цикла с предусловием. Условие sнаходится в диапазоне от о до 1, то есть оно больше или равно 1. Так и запишем:


while s <= 1 do


Операция будет состоять из нескольких действий, значит опять пишем :


begin

к – это квадрат числа. Каким словом в паскале пишется квадрат?


Ученики: (ответы)

Учитель: Хорошо. Значит, следующая строчка выглядит данным образом:

k := sqr(s);


Теперь необходимо вывести на экран получившийся квадрат:

writeln (k);


Тем самым мы нашли квадрат 0, а нам надо всех чисел стоящих в диапазоне от 0 да 1, да еще и с шагом 0,2. Для этого необходимо нашу s увеличить на 0,2.


s := s + 0.2;

На этом наш цикл заканчивается. В конце необходимо поставить

end;


Не забываем, что каждому записанному begin в программе должно стоять в конце действия end, для завершения нашей программы необходимо поставить end с точкой в конце.


Итак общий вид программы

(Слайд 7)

program q;

var k, s : real;

begin

s := 0;

while s <= 1 do


begin

k := sqr(s);

writeln (k);

s := s + 0.2;

end;


end.





5.Рефлексия (10 мин.)

Учитель: Возьмите карточку с заданиями. Прочитайте задачу 2: Вывести на экран таблицу умножения на 5. Один человек к доске.

Ответ на задачу:


program q;

var k, s : real;

begin

s := 0;

while s <= 10 do


begin

k := s*5;

writeln (s,'*5=',k);

s := s + 1;

end;


end.


6.Подведение итогов урока (1 мин.)

Учитель: на уроке мы рассмотрели, как строятся программы с использованием оператора цикла с предусловием. На следующем уроке мы продолжим решать аналогичные задачи.

Название документа с_предусловием.pptx

Поделитесь материалом с коллегами:

1 из 1

Описание презентации по отдельным слайдам:

№ слайда 1
Описание слайда:

Выберите курс повышения квалификации со скидкой 50%:

Краткое описание документа:

Архивный файл содержит комплект презентаций, карточек с заданиями и наработки для проведения уроков по теме "Паскаль" в 10-х классах.

Материал расчитан для обучающихся 10 класса.

УМК Л.Л.Босовой

Первая версия языка Паскаль была разработана в 1968 году. Ее разработчиком является швейцарский ученый Никлаус Вирт. Свое название язык получил в честь создателя первой механической вычислительной машины француза Блеза Паскаля. На основе языка Паскаль в 1985 г. фирма Borland выпустила версию Turbo Pascal версии 3.0. С этого времени язык Паскаль используется во всем мире в учебных заведениях в качестве первого изучаемого языка программирования.

 

 

Автор
Дата добавления 27.05.2015
Раздел Информатика
Подраздел Конспекты
Просмотров2984
Номер материала 546849
Получить свидетельство о публикации

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