Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal

Раздел Информатика
Класс -
Тип Другие методич. материалы
Автор
Дата
Формат doc
Изображения Есть
For-Teacher.ru - все для учителя
Поделитесь с коллегами:

Гресева Т.В. МБОУ СОШ №22 г. Владикавказ








Алгоритмизация

и

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

на языке Pascal


Методическая разработка для учащихся

62 часа






























2015 г.

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

Трансляторы: компиляторы и интерпретаторы 3

Алфавит и словарь языка Паскаль 3

Некоторые зарезервированные слова 4

Правила написания идентификаторов 5

Урок 2. Типы данных: константы и переменные 6

Целочисленный тип 7

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

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

Строковый тип 8

Булевский тип 8

Урок 3. Решение задач 9

Урок 4, 5. Среда программирования Turbo Pascal 10

Правила пунктуации 11

Форматы вывода 12

Урок 6. Решение задач 15

Урок 7. Этапы решения задач на компьютере 16

Линейные алгоритмы 17

Урок 8, 9, 10. Решение задач 20

Урок 11. Контрольная работа №1 21

Урок 12, 13. Разветвляющиеся алгоритмы. 22

Оператор условия if 22

Урок 14, 15, 16, 17, 18. Решение задач 27

Урок 19. Контрольная работа №2 29

Урок 20, 21, 22. Циклические алгоритмы. 30

Организация циклов в Паскале 30

Урок 23 - 33. Решение задач 34

Урок 34. Контрольная работа №3 36

Урок 35, 36. Массивы 37

Урок 37-49. Решение задач 39

Урок 50. Контрольная работа №4 44

Урок 51. Строки 45

Операции над строками 45

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

Урок 52 - 54. Решение задач 47

Урок 55. Контрольная работа №5 48

Урок 56-60. Решение задач 48

Урок 61-62. Итоговая контрольная работа 48



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

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

Язык программирования Паскаль (назван в честь французского учёного Блеза Паскаля), разработан в 1968-1971 годах Никлаусом Виртом для обучения программированию, но вскоре стал использоваться для разработки программных средств в профессиональном программировании.

Для повышения качества и скорости разработки программ в середине 80-х годов была создана система программирования Turbo Pascal. Слово Turbo - это отражение торговой марки фирмы-разработчика Borland International Inc. (США).

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

Трансляторы: компиляторы и интерпретаторы

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

Существует три вида трансляторов: интерпретаторы, компиляторы и ассемблеры.

Интерпретатор - это транслятор, производящий пооператорную (покомандную) обработку и выполнение программы.

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

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

Алфавит и словарь языка Паскаль

Для написания программ можно использовать:

  1. Прописные строчные буквы латинского алфавита.

  2. Цифры от 0 до 9.

  3. Шестнадцатеричные цифры (строятся из десятичных цифр от 0 до 9 и латинских букв от A(a) до F(f)).

  4. Специальные символы

    +

    плюс

    #

    номер

    -

    минус

    =

    равно

    _

    подчеркивание

    ;

    точка с запятой

    ()

    круглые скобки

    ,

    запятая

    []

    квадратные скобки

    .

    точка

    {}

    фигурные скобки

    :

    двоеточие

    *

    умножить


    пробел

    /

    дробная черта

    $

    знак денежной единицы

    ''

    апострофы

    ^

    тильда

    <

    меньше

    @

    коммерческое а

    >

    больше



  5. Комбинации специальных символов

:=

присваивание

>=

больше или равно

<>

не равно

..

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

<=

меньше или равно



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

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

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

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

Некоторые зарезервированные слова

Absolute

Абсолютный

Not

Логическое НЕ

And

Логическое И

Or

Логическое ИЛИ

Array

Массив

Of

Из

Begin

Начало блока

Procedure

Процедура

Case

Вариант

Program

Программа

Const

Константа

Record

Запись

Div

Деление нацело

Repeat

Повторять

Do

Выполнять

String

Строка

Downto

Уменьшить до

Then

То

Else

Иначе

To

Увеличивая

End

Конец блока

Type

Тип

For

Для

Until

До

Function

Функция

Uses

Использовать

If

Если

Var

Переменная

Label

Метка

While

Пока

Mod

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

xor

Исключающее ИЛИ

Стандартные идентификаторы используются для обозначения заранее определенных разработчиками языка типов данных, констант, процедур и функций. Пример: integer, cos, sin, sqrt, read, write и т.д.

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

Правила написания идентификаторов

  1. Можно использовать как прописные, так и строчные буквы латинского алфавита.

  2. Идентификатор может начинаться только с буквы или знака подчеркивания.

  3. Идентификатор может состоять из букв, цифр и знака подчеркивания (пробелы, точки и другие специальные символы запрещены).

Правильно выбранные идентификаторы значительно облегчают чтение и понимание программы.

Русские буквы в программе должны заключаться в апострофы!

Упражнение

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

Rezultat_1, rezultat 1, 1_Rezultat, rezultat1, <=, #Doma, NDoma, nomer dom, nomer_doma, +, Сумма, SummaЭлементов, Y, XY, R, div, program, 2222, _1, Vova4uma, 'программа', Urok!, 'urok'.

Урок 2. Типы данных: константы и переменные

Любая программа имеет смысл, если она обрабатывает какие-либо данные. В Паскале данные разделяются на константы и переменные. В программе константы и переменные определяются идентификаторами (именами) пользователя. Каждая переменная и константа принадлежат к определенному типу данных.

Константы - данные, которые не меняют своего значения в процессе выполнения программы. Тип константы автоматически распознается компилятором. Все константы должны быть описаны в специальном разделе, который начинается зарезервированным словом const (constant - константа).

Формат: const

Имя = значение константы;

Пример: Const

MyName = 'Ваня Иванов';

J=5;

Max=1000;

Min=2;

Center=(max-min)/2;

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

Формат:

Var

Имя : тип переменной;

Пример: Var

A, d, c, r: integer;

Summa: real;

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

Формат:

Const

Имя : тип = значение;

Пример: Const

K: word = $B800;

Ocenka: byte = 4;

Predmet: string='информатика';

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

Целочисленный тип

Данные целочисленных типов могут быть представлены как в десятичной, так и в шестнадцатеричной системе. Если число представлено в шестнадцатеричной системе, перед ним без пробела записывается знак $. Диапазон изменений шестнадцатеричных чисел от $0000 до $FFFF.

Byte

0..255

1 байт

Word

0..65535

2 байта

Integer

-32768..32767

2 байта

longint

-2147483648.. 2147483647

4 байта

Арифметические операции над данными целого типа: +, -, *, /, div (деление нацело), mod (остаток от деления).

Операции отношения: =, <>, <, >, <=, =>.

Стандартные функции:

Abs (x)

Модуль х

Sqr (x)

Х2

Sqrt (x)

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

Sin (x)

Синус х

Cos (x)

Косинус х

Arctan (x)

Арктангенс х

Succ (x)

Следующее целое число (х+1)

Pred (x)

Предыдущее целое число (х-1)

Exp (x)

ex (e=2.7)

Ln (x)

Натуральный логарифм

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

Для записи вещественных чисел вместо запятой используется точка. Вещественные значения изображаются в форме с плавающей точкой, т.е. парой чисел вида <мантисса>Е<порядок>, и с фиксированной точкой. Например: 4.56Е-05, что означает 4.56*10-5

Real

2.9Е-39 .. 1.7Е+38

6 байт

single

1.5E-45 .. 3.4E+38

4 байта

double

5.0E-324 .. 1.7E+308

8 байт

extended

1.9E-4951 .. 1.1E+4932

10 байт

Арифметические операции над данными вещественного типа: +, -, *, /.

Операции отношения: =, <>, <, >, <=, =>.

Стандартные функции:

Abs (x)

Модуль х

Sqr (x)

Х2

Sqrt (x)

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

Sin (x)

Синус х

Cos (x)

Косинус х

Arctan (x)

Арктангенс х

trunc(x)

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

round(x)

Округление до целого

Exp (x)

ex (e=2.7)

Ln (x)

Натуральный логарифм

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

Порядок выполнения операций: действия в скобках, *, /, div, mod; +, -; =, <>, <, >, <=, =>.

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

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

Строковый тип

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

Булевский тип

Булевский тип данных представляется двумя значениями True (истина) и False (ложь). Применяется в логических выражениях и выражениях отношения. При описании величин этого типа указывают слово boolean. Для размещения в памяти переменной булевского типа требуется 1 байт.

Урок 3. Решение задач

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

2,14; 1,116; 7,09·10-8; 3С0А1; 3,98; -1,3·10-4; -461,05; 2,7·102; 0,5; 7,023; 8·505; 1,1·1010; -9,67·1040; -1,63·10-22; 2В; -5,42·10-6; 0,011; 0,74·108; 1АF; -871,43·1018; 6213175.

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

Пример: Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal = x/(1+sqr(x)/(5+x*sqr(x)))или x/(1+x*x/(5+x*x*x))

а) Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal

и) a+Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal

б) sin2|x3|

к) x-Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal

в) х4

л) |x|+|x+1|

г) mgcos x

м) x1x2+x1x3+x2x3

д) Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal

н) Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal

е) Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal

о) Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal

ж) Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal

п) |1-|x||

з) Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal

р) Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal

  1. Запишите в обычном виде:

а) sqr(x+y)

б) sqr(sin(alfa))

в) х+1/sqr(x)/(sqrt(x)-1)

г) a*n*n*m/sqr(m-2)

д)4*a*x*sqr(x)+8/sqr(b)*sqr(b)+3*a*(b-5.2)/(7*x-0.5*sqrt(a))

e) sqrt(abs(sqr(cos(a+b*sqr(x)))))

ж) g*m1*m2/sqr(r)

з) sin(pi/8)*sqr(cos(pi/8))

  1. Чему равно значение выражения:

    а) 10+6*2/2;

    д) 24/12;

    и) 2 div 3;

    б) (10+6)*2/2;

    е) 11 div 5;

    к) 15+21 div 2;

    в) (10+6*2)/2;

    ж) 10 div 3;

    л) 14 mod (5+3);

    г) 10+6*(2/2);

    з) 11 mod 5;

    м) Round (11/5)?

  2. Какой тип подходит для данных диапазона

а) 1..200;

г) 'a'..'z';

б) 0..7500;

д) -40..+45;

в)2.3476E-03..2.3475E+03;

е) +10..+65000?

Урок 4, 5. Среда программирования Turbo Pascal

Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal




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

Строка меню является основным доступом ко всем командам меню.

Меню File:

New - создать новую программу

Open - открыть программу, записанную на диске

Save - сохранить программу

Save as - сохранить программу под другим именем/в другом месте

Exit - выход из среды Turbo Pascal for Windows

Меню Edit:

Undo - отменить последнее действие

Redo - вернуть последнее действие

Cut - вырезать выделенный фрагмент

Copy - скопировать выделенный фрагмент

Paste - вставить фрагмент из буфера обмена

Clear - удалить выделенный фрагмент

Меню Run:

Run - запустить программу

Меню Compile:

Compile - выполнить компиляцию программы

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

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

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

program Имя; {заголовок программы}

uses …; {список подключаемых библиотечных модулей}

const …; {описания констант}

var …; {описания переменных}

begin {начало программы}

операторы;

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

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

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

Слова begin и end являются аналогом открывающей и закрывающей скобки.

Для лучшего понимания программы в ней записывается пояснительный текст - комментарий. Текст комментария ограничивается символами { } или (* *).

Правила пунктуации

При записи операторов необходимо соблюдать следующие правила пунктуации:

  1. Точка с запятой не ставится в разделах описаний после зарезервированных слов uses, const, var и ставится после завершения каждого описания.

  2. Точка с запятой не ставится после begin и перед end, т. к. эти слова являются операторными скобками, а не операторами.

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

  4. В операторах цикла точка с запятой не ставится после while, repeat, do и перед until.

  5. В условных операторах точка с запятой не ставится после then и перед else.

Оператор присваивания

Оператор присваивания (:=) предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, идентификатор которой расположен в левой части. Переменная и выражение должны быть совместимы по типу.

Формат:

Имя переменной := выражение;

Пример: х:=2.7;

У:=a+b;

Вещественной переменной можно присвоить целое значение, но не наоборот!

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

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

Формат:

Write (y1, y2, y3, …, yn);

Пример: Write (a+b-2); {выводится результат выражения}

Write ('Результат вычислений =', Rezult);

Оператор вывода Writeln аналогичен оператору Write, но после вывода последнего значения из списка текущего оператора происходит перевод курсора на новую строку.

Оператор Writeln, записанный без параметров, вызывает перевод строки.

Форматы вывода

Значение I

Выражение

Результат

134

Write (I)

134

134

Write (I,I,I)

134134134

511.04

Write (I)

5.1104000000E+02

511.04

Write (I:15)

5.110400000E+02

-511.04

Write (I:15)

-5.11040000E+02

511.04

Write (I:8:4)

511.0400

Пример:

program DemoWrite; {заголовок программы}

uses wincrt; {подключение модуля очистки экрана}

const {описание констант a и b}

a=4; b=6;

var {описание переменных}

c, s: byte; {переменные c, s - целые}

begin {начало программы}

c:=5; {присваивание переменной с значения равного 5}

write (a:3); write (b:3); write (c:3); {вывод значений переменных a, b и c в каждую третью позицию строки экрана}

writeln; {перевод строки}

S:=a+b+c; {вычисление переменной S}

{вывод значений переменных a, b и c в столбик}

writeln ('a=', a);

writeln ('b=', b);

writeln ('c=', c);

writeln ('Сумма ',a,'+',b,'+',c,' равна ', s) {вывод ответа}

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

Результат выполнения:

4 6 5

a=4

b=6

c=5

Сумма 4+6+5 равна 15

Упражнение. Загрузите TPascal for Windows, введите текст программы, откомпилируйте и проверьте ее действие.

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

Обеспечивает ввод данных оператор Read (читать).

Формат:

Read (х1, х2, х3,…, xn);

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

Оператор Readln аналогичен оператору Read, только после считывания последнего значения из списка текущего оператора, курсор переведется на новую строку.

Пример:

program DemoRead;

uses wincrt;

var x: word;

y: real;

begin

write ('Введите число х='); {вывод на экран запроса о вводе числа}

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

y:=sqrt(x);

write ('Квадратный корень из числа ', x,' равен ', y)

end.

Упражнение. Загрузите TPascal for Windows, введите текст программы, откомпилируйте и проверьте ее действие.

Урок 6. Решение задач

  1. Найдите ошибки в следующих программах:

    а)program MyProgram

    begin;

    writeln ('Здравствуй!')

    end.

    б)program First;

    begin

    y:=x+100

    end

    г)program ошибки2;

    var x: integer;

    const v=4; j=5.6;

    begin

    x:=v*j;

    write (x)

    end.

    д)program MyProgram 2;

    begin

    var y: real;

    y:=2;

    writeln ('y в квадрате =, у*у)

    end.

    в)program ошибки1;

    begin

    summa:=6+8;

    end;

  2. Напишите программу для вычисления и печати на экране значений выражений:

    1. y=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal, а=1, b=-1;

    2. z=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal;

    3. k=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal, x=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal, a=0,04, b=-1, c=a;

    4. f=sin x cos y + sin y cos x, x=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal, y=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal.

  3. Напишите программу, определяющую остаток от деления:

а) 45 на 13;

б) 123 на 14.

4. Напишите программу, определяющую целую часть от деления:

а) 125 на 12;

б) 24 на 5.

5. Программа запрашивает имя и затем приветствует его обладателя.

Урок 7. Этапы решения задач на компьютере

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

  1. Постановка задачи.

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

  1. Математическое или информационное моделирование.

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

  1. Алгоритмизация задачи.

На основе математического описания разрабатывается алгоритм решения.

  1. Программирование.

Программа - план действий, подлежащих выполнению некоторым исполнителем, например, компьютером.

V. Ввод программы и исходных данных в ЭВМ.

VI. Тестирование и отладка программы.

На этом этапе происходит исполнение алгоритма с помощью ЭВМ, поиск и исключение ошибок.

VII. Исполнение отлаженной программы и анализ результатов.

Для каждой задачи должны быть записаны:

  1. Условие.

  2. Переменные, используемые в программе с необходимыми пояснениями.

  3. Математическое решение задачи.

  4. Схема алгоритма.

  5. Программа.

Алгоритмы

Алгоритм - точное предписание исполнителю выполнить последовательность действий, направленных на решение данной задачи.

Свойства алгоритма:

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

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

  3. Результативность: выполнение алгоритма должно завершаться получением определённых результатов.

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

  5. Правильность, т.е. способность алгоритма давать правильные результаты решения.

Типы алгоритмов

  1. Линейный = алгоритм выполняется последовательно: один шаг за другим.

  2. Разветвляющийся - содержит одно или несколько условий и имеет несколько ветвей выполнения.

  3. Циклический - содержит повторяющиеся действия.

Способы задания алгоритмов

1. Словесный - с помощью слов.

2. Графический - из графических картинок - блоков.

3. Табличный - с помощью таблиц.

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

Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal

начало/конец алгоритма;

Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal

выполнение вычисления, действия

Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal

Ввод исходных данных, вывод результата

Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal

проверка условия

Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal

начало цикла

Линейные алгоритмы

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

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

I этап: Исходные данные: a, b - числа;

Результат: S - сумма чисел

II этап: S=a+b;

IМетодическая разработка для учащихся Алгоритмизация и программирование на языке PascalII этап:



IV этап:

program Summa;

uses wincrt;

var S, a, b: real;

begin

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

readln (a, b);

S:= a+b;

Write ('Сумма чисел ', a,' и ', b,' равна ', s)

end.

Упражнения:

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

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

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

  4. Найдите расстояние между двумя точками. Координаты точек ввести с клавиатуры по запросу программы.

Урок 8, 9, 10. Решение задач

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

  2. На площади S км2 проживает N тысяч человек. Какова плотность населения? Значения S и N ввести с клавиатуры по запросу программы. Результат округлить.

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

  4. Розничная цена мужского костюма составляет Х рублей. Торговая наценка в пользу магазина N% розничной цены. Какова оптовая цена костюма?

  5. Программа вычисляет среднее арифметическое трех натуральных чисел.

  6. Программа подсчитывает размер оплаты за электроэнергию по введенным значениям расхода электроэнергии и тарифа (тариф - стоимость 1 КВт).

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

Для человека ростом <результат> см, идеальный вес = <результат> кг.

  1. Вычислите диаметр, длину и площадь окружности. Радиус запросить с клавиатуры.

  2. Рассчитать стоимость путевки на три недели в рублях. Стоимость путевки на 1 неделю - 200$, вторая неделя на 10% дешевле, третья - еще на 10% дешевле. Значение курса доллара вводится с клавиатуры по запросу программы.

  3. Фирма приглашает сотрудника на работу с окладом 400$. За знание ПК к окладу прибавляется 15%, за знание иностранного языка - 20%. Какова зарплата в рублях?

  4. Вы положили деньги в банк на N месяцев из расчета 60% годовых. Напишите программу, которая вычислит причитающуюся вам через N месяцев сумму.

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

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

  7. Дано натуральное трехзначное число. Определите число, которое получится при перестановке цифр в обратном порядке.

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

  9. Определите процентное соотношение мальчиков и девочек в классе.

  10. С клавиатуры по запросу программы вводятся оценки ученика по пяти предметам (математика, русский язык, физика, литература, информатика). Вычислите средний балл ученика.

  11. Программа запрашивает имена, вес и рост трех ваших друзей, находит их суммарный вес и рост и выводит результат в виде:

Имя1+Имя2+Имя3=<результат> кг

Имя1+Имя2+Имя3=<результат> см

  1. Треугольник задан координатами своих вершин. Найти его периметр.

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

  3. Соотношение температур по Фаренгейту (F) и Цельсию (С) следующее F=1,8С +32, по Кельвину и Цельсию следующее К=С + 273. Подсчитать какова температура по Фаренгейту и Кельвину сегодня. Результат на экран вывести в виде:

температура по С = <результат>,

температура по F = <результат>,

температура по К = <результат>

Урок 11. Контрольная работа №1

Урок 12, 13. Разветвляющиеся алгоритмы.

Оператор условия if

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

Для программирования условий в Паскале используется оператор if. Он также существует в двух формах: полной и неполной.

Полная

Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal

Неполная

Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal

Формат полного условного оператора:

if условие then оператор1 else оператор2;

Перед словом else точка с запятой не ставятся!

Формат неполного условного оператора:

if условие then оператор;

Условие - выражение логического типа.

Правила записи условий

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

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

x

x

x>a

x>a

x=a

x=a

x≤a

x<=a

x≥a

x>=a

x≠a

x<>a

a

x>a and x>b

xили x>b

xb


Пример: Программа вычисляет частное двух чисел.

  1. Исходные данные: a - делимое, b - делитель;

Результат: c - частное.

  1. Если b=0, то решений нет, иначе c=a/b

IМетодическая разработка для учащихся Алгоритмизация и программирование на языке PascalII.

IV. program DemoIf;

uses wincrt;

var a, b: integer; c: real;

begin

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

readln (a, b);

if b=0 then writeln ('Нет решения')

else

begin

c:=a/b;

writeln ('Частное чисел ',a,' и ',b,'=', c)

end

end.

Упражнения.

1. Напишите условный оператор к фрагменту блок-схемы:

аМетодическая разработка для учащихся Алгоритмизация и программирование на языке Pascal)

бМетодическая разработка для учащихся Алгоритмизация и программирование на языке Pascal)

вМетодическая разработка для учащихся Алгоритмизация и программирование на языке Pascal)

2. Составьте программу по схеме алгоритма:

аМетодическая разработка для учащихся Алгоритмизация и программирование на языке Pascal)

бМетодическая разработка для учащихся Алгоритмизация и программирование на языке Pascal)

3. Составьте алгоритмы и программы для вычисления значения функции:

а) f=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal;

б) f=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal; m=7,5; y=3,2;

в) f=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal;

г) f=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal;

д) f=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal;

е) f=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal;

ж) y=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal;

з) y=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal, при x=cos3a2+sin2a3;

и) y=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal, где х=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal;

к) у=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal, где m=2ax, T=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal;

л) у=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal;

м) z=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal.

Урок 14, 15, 16, 17, 18. Решение задач

  1. Выяснить, принадлежит ли число промежутку (-1;1).

  2. Выяснить, принадлежит ли число промежутку [0;5].

  3. Даны два числа х и у. Если х<у, то z присвоить их сумму, иначе присвоить абсолютное значение их разности.

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

  5. Выбрать из трех чисел наибольшее.

  6. Даны три числа. Вывести те из них, которые принадлежат отрезку [-1;3].

  7. Верно ли, что введенное вами целое число является четным?

  8. Верно ли, что введенное вами целое число делится на 3 без остатка? Если не делится, то вывести остаток.

  9. Рис расфасован в два пакета. Вес первого - n кг, второго - m кг. Составьте программу, определяющую, какой пакет тяжелее - первый или второй и вес более тяжелого пакета.

  10. Составьте программу, определяющую, пройдет ли график функции у=5х2-7х+2 через точку с координатами (a,b).

  11. Составьте программу, определяющую, пройдет ли график функции у=х3-2х2 через точку с координатами (a,b).

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

  13. Программа запрашивает два расстояния: одно - в километрах, другое - в футах. Какое из расстояний меньше?

  14. Даны радиус круга и сторона квадрата. Площадь какой фигуры больше и на сколько?

  15. Даны три числа. Вывести на экран только отрицательные.

  16. Проверить, верно ли, что при делении неотрицательного целого числа А на положительное целое число В получается остаток, равный одному из заданных чисел С или D.

  17. Учащийся сдал пять экзаменов (оценки ввести с клавиатуры). Родители обещали ему, что если средний балл будет ≥4,5, то подарят плеер и роликовые коньки; если средний балл будет в пределах от 3,5 до 4,5, то подарят только плеер. В других случаях подарков не будет. Какой подарок получит учащийся?

  18. Выяснить, пройдет ли кирпич с ребрами a, b, c в квадратное отверстие со стороной x.

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

  20. Выяснить, есть ли в трехзначном числе данная цифра.

  21. Три точки плоскости заданы своими координатами. Выяснить, какая точка расположена ближе к началу координат.

  22. Для определения нормального веса человека из величины его роста вычитают 100. Вес считается нормальным, если он отличается от этой разности не более чем на 5 кг. Составить программу для определения находится ли вес обследуемого в пределах нормы или же является недостаточным или избыточным. Рост и вес ввести с клавиатуры.

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

  24. Программа для целого числа К (от 1 до 99), введенного с клавиатуры, печатает фразу «Мне К лет». При этом в нужных случаях слово «лет» заменяет на «год» или «года».

  25. Составьте программу решения полного квадратного уравнения ax2+bx+c=0, a≠0, b≠0, c≠0. Проверьте случаи, когда d>0, d=0 и d<0.

  26. Определите, является ли введенное вами число нечетным двузначным.

  27. Из трех введенных с клавиатуры чисел возведите положительные в квадрат.

  28. Сравнить длины двух отрезков, если известны координаты их концов.

  29. Если целое число M делится без остатка на целое число N, то вывести на экран частное от деления, в противном случае вывести сообщение об ошибке.

  30. Введите с клавиатуры два числа. Если их сумма положительна, то найдите сумму их квадратов, если отрицательна или равна нулю, то найдите квадрат суммы этих чисел.

  31. Прием на работу идет на конкурсной основе. Условия приема требуют 20 лет стажа и возраста не более 45 лет. Будет ли человек принят на работу?

  32. В баскетбольную секцию принимаются юноши, достигшие возраста 13 лет и ростом не ниже 165 см. Составьте программу зачисления юношей в секцию. Результат выдавать в виде: «Принят», «Не принят».

  33. Составьте программу для определения, кто из двух учащихся учится лучше. Фамилии учащихся и их оценки по трем предметам вводить с клавиатуры. Предусмотрите вариант, когда средние баллы одинаковы.

  34. Программа запрашивает три числа и выводит на экран разность между максимальным и минимальным числами.

  35. Составьте программу, реализующую эпизод из сказки. Программа спрашивает героя: «Куда пойдешь?» (налево, направо, прямо) и, в зависимости от ответа, печатает, что ждет героя выбранном пути. Тексты придумайте самостоятельно.

  36. Определите, какой четверти координатной плоскости принадлежит точка Т (х, у).

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

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

  39. Ввести две скорости. Одну в километрах в час, другую - в метрах в секунду. Какая из скоростей больше и на сколько?

  40. Дискета 3,5 дюйма вмещает 1,44 Мбайт информации. Рукопись содержит 450 страниц текста. На каждой странице 60 строк по 80 символов. Поместится ли рукопись на дискету? Сколько дискет потребуется?

Урок 19. Контрольная работа №2

Урок 20, 21, 22. Циклические алгоритмы.

Организация циклов в Паскале

Циклический алгоритм - алгоритм, содержащий повторяющиеся действия, - цикл. Цикл состоит из условий и тела цикла.

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

Тело цикла - набор действий (команд, операторов), которые выполняются несколько раз.

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

Существует несколько видов циклов: пока, до, для. В Паскале им соответствуют операторы while, repeat и for.

Цикл пока

Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal

Оператор while


while условие do

begin

тело цикла;

end;

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

ЦМетодическая разработка для учащихся Алгоритмизация и программирование на языке Pascalикл до


Оператор repeat


repeat

тело цикла;

until условие;

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

Цикл для

Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal

Оператор for

Прямой формат:

for i:=n1 to n do

begin

тело цикла;

end;


Обратный формат:

for i:=n1 downto n do

begin

тело цикла;

end;

i - переменная - параметр цикла; n1 и n2 - выражения, определяющие соответственно начальное и конечное значение параметра цикла.

Параметр цикла принимает начальное значение и затем сравнивается с конечным значением. Если конечное значение меньше значения параметра цикла, то происходит выполнение тела цикла, иначе цикл завершается и выполняется следующий за циклом оператор. Шаг изменения параметра цикла равен 1(to)или -1(downto).

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

Пример: Программа суммирует n-е количество вводимых с клавиатуры чисел.

С - параметр цикла (подсчитывает количество вводимых чисел); n - количество чисел; x - вводимое число; S - сумма чисел.

Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal

program DemoWhile;

var c, n: integer;

x, s: real;

begin

write ('Введите к-во чисел n=');

readln (n);

c:=0;

s:=0;

while c<=n do

begin

c:=c+1;

write (c,'-е число:');

readln (x);

s:=s+x

end;

write ('Сумма чисел =',s)

end.

Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal

program DemoRepeat;

uses wincrt;

var c, n: integer;

x, s: real;

begin

write ('Введите к-во чисел n=');

readln (n);

c:=0;

s:=0;

repeat

c:=c+1;

write (c,'-е число:');

readln (x);

s:=s+x

until c=n;

write ('Сумма чисел =',s)

end.

Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal

program DemoFor;

uses wincrt;

var c, n: integer;

x, s: real;

begin

write ('Введите к-во чисел n=');

readln (n);

s:=0;

for c:=1 to n do

begin

write (c,'-е число:');

readln (x);

s:=s+x

end;

write ('Сумма чисел =',s)

end.

Упражнения

  1. Загрузите Turbo Pascal, введите текст программы, откомпилируйте и проверьте ее действие.

  2. Напишите программу, которая 10 раз печатает ваше имя.

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

  4. Программа запрашивает возраст, а затем печатает на экране «Здравствуй!» столько раз, сколько лет введено.

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

а) у = хМетодическая разработка для учащихся Алгоритмизация и программирование на языке Pascal с шагом 0,2;

б) у = sin x, xМетодическая разработка для учащихся Алгоритмизация и программирование на языке Pascal с шагом Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal ;

в) у = Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal с шагом h;

г) у=3х2+х-4, хМетодическая разработка для учащихся Алгоритмизация и программирование на языке Pascal[a, b] с шагом 0,1;

д) у=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal, хМетодическая разработка для учащихся Алгоритмизация и программирование на языке Pascal[0; 5] с шагом 0,5.

Урок 23 - 33. Решение задач

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

  2. Расход бензина на 100 км пути в среднем составляет 9 л. Определить стоимость бензина для расстояния 200 км, 400 км, 600 км, 800 км, 1000 км, если цена одного литра равна х руб.

  3. Цена 1 кг сыра К рублей. Распечатать таблицу стоимости порций сыра по 100 г, 200 г, 300 г, 400 г, 500 г, 600 г, 700 г.

  4. Напечатать таблицу перевода температуры из градусов по шкале Цельсия (С) в градусы по шкале Фаренгейта (F) для значений температуры от 250С до 400С с шагом 10С. Формула перевода F=1,8С+32.

  5. Напечатать таблицу перевода миль в километры для расстояний от 5 до 75 миль с шагом 5. если 1 миля составляет 1,609 км.

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

  7. Составить программу, показывающую, как меняется объем вещества массой 0,45 кг при изменении его плотности от 0,5 до 1 кг/м3 с шагом 0,1 кг/м3.

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

а) а(а+1)(а+2)(а+3)…(а+n);

б) (х-1)(х-2)(х-3)…(х-n).

  1. Напишите программу, выводящую на экран все

а) четные числа из диапазона (m, n);

б) нечетные числа из диапазона (m, n);

в) отрицательные числа из диапазона (m, n).

  1. Программа вычисляет n факториал (n!). факториалом натурального числа n называется произведение всех чисел от 1 до n, включая n

  2. Составьте программу, вычисляющую an, где n - любое натуральное число.

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

  4. Программа находит сумму чисел от 1 до 100 кратных 3, но не кратных 6.

  5. У школьников было S рублей. Бутылка с соком стоит Р рублей, пустая бутылка - В рублей. Сколько бутылок сока выпили школьники, если они сдавали пустые бутылки и на вырученные деньги покупали новые?

  6. Для N, вводимого с клавиатуры (2≤N≤9), распечатать соответствующий столбик таблицы умножения.

  7. Распечатать все натуральные числа кратные 7 и не превосходящие 200.

  8. Найдите произведение всех положительных двузначных чисел.

  9. Спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивал дневную норму на 10% от нормы предыдущего дня. Найти: а) какой путь пробегал спортсмен за каждый день в течение недели; б) какой суммарный путь он пробежал за эту неделю?

  10. В первый час лыжник прошёл 8км. Каждый последующий час его скорость снижалась на 10%. Через какое время он преодолеет 33км?

  11. Росток появляется из земли, начинает расти, прибавляя в росте 40% от роста в предыдущий день. Нормальный рост равен 32см. Успеет ли росток за 13 дней набрать нормальный рост, если в первый день его высота 0,5см. Если не успеет, то посчитайте, за сколько дней он вырастет до нормы.

  12. Дано натуральное число n. Вывести на экран все его натуральные делители.

  13. Напишите программу печати таблицы перевода расстояний из дюймов в сантиметры (1 дюйм=2,5 см) для значений от 20 до 1 дюйма.

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

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

а) 10, 9, 8,…, 1;

б) 1, 1, 2, 3, 5, 8,…, 233;

в) 100, 81, 64,…, 1.

  1. Вычислите:

а) 22+24+26+…+210;

б) (2t+3)+(2t+6)+(2t+9)+…+(2t+30), где t - целое число;

в) 1∙2∙3+4∙5∙6+7∙8∙9+…+43∙44∙45;

г) 1+Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal;

д) Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal ;

е) Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal .

  1. Каждая бактерия делится на две в течение одной минуты. В начальный момент имеется одна бактерия. Составьте программу, которая рассчитывает количество бактерий на заданное вами целое значение момента времени (5 мин, 7 мин, 10 мин и т. п.).

  2. Составьте программу для проверки справедливости формул:

а) 1+2+3+…+n=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal;

б) 1+3+5+…+(2n-1)=n2;

в) 12+22+32+…+n2=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal;

г) 12+32+52+…+(2n-1)2=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal.

  1. Последовательно вводятся N целых чисел. Определите, каких среди них больше - положительных или отрицательных.

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

  3. В бригаде имеется n косилок. Первая из них работала m часов, а каждая следующая на 10 минут больше, чем предыдущая. Сколько часов проработала вся бригада?

  4. Составьте программу определения наибольшего общего делителя двух натуральных чисел.

  5. Составьте программу, которая печатает все натуральные числа меньше 100, для которых количество букв в записи числа русскими буквами равно его числовому значению. Например: 3 - три, 11 - одиннадцать и т. д.

  6. Найти все натуральные числа, меньшие 200, у которых сумма цифр равна 13.

  7. Вывести на экран все целые числа от 30 до 350, у которых сумма цифр равна 15.

  8. Чтобы сделать бусы, ювелир взял нить длиной D и жемчужины радиусом R. Определить, сколько жемчужин он сможет нанизать на эту нить.

  9. Вычислить площади N прямоугольных треугольников, катеты которых а и b водятся с клавиатуры. N ввести с клавиатуры.

  10. Составьте программу, вычисляющую сумму факториалов: 1!+2!+…+n!

Урок 34. Контрольная работа №3

Урок 35, 36. Массивы

Массив - именованный набор с фиксированным количеством однотипных данных.

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

Если элемент имеет один порядковый номер, то такой массив называется одномерным. Например:

Ai= (a1, a2, …, an).

Если элемент массива имеет два порядковых номера, то такой массив называется двумерным:

Aij=Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal.

Массив имеет три характеристики:

  1. Имя (формируется по правилам языка Паскаль);

  2. Тип (выбирается программистом в зависимости от типа величин, которые будут храниться в массиве);

  3. Размерность (количество элементов в массиве).

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

Так как массив - это одна переменная, в ячейках массива может храниться информация только одного типа.

Чтобы получить доступ к любой ячейке массива, необходимо указать имя массива и индекс нужной ячейки в квадратных скобках, например, R[6].

Для описания массива используется зарезервированное слово array (массив). Массив может быть описан как типизированная константа:

Имя массива: array [диапазон изменения индекса] of тип данных = (х1, х2, …, хn);

или как переменная:

Имя массива: array [диапазон изменения индекса] of тип данных;

Пример:

  1. const

V: array [1 .. 5] of byte=(6, 0, 4, 12, 4);

  1. var

A: array [1 .. 100] of real;

Если массив описан как переменная, то ввод элементов массива производится поэлементно с помощью оператора read или readln с использованием цикла (удобнее использовать оператор цикла for):

for i:=1 to 5 do readln (a[i]);

или задавая значение каждого элемента результатом случайной функции random:

Randomize;

for i:=1 to 10 do a[i]:=random(n);

Вывод элементов массива выполняется также в цикле, но с использованием операторов write или writeln:

for i:=1 to 5 do writeln (a[i]);

Упражнения:

  1. Программа запрашивает элементы массива М(15) и выводит их на экран в обратном порядке в строку.

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

  3. Дан массив Е(11, -3, 0, -1, -5, 0, 67, -3, -504, 43, 11). Составьте программу, выводящую на экран только положительные элементы массива.

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

  5. Дан массив из 20 чисел. Расположите элементы массива с 1 по 10 в порядке убывания их мест, а с 11 по 20 в порядке возрастания их мест. Выведите на экран полученный массив.

  6. Дан массив А(10). Образуйте массив В, состоящий из утроенных элементов массива А, и массив С, состоящий из увеличенных на 2 элементов массива А.

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

Урок 37-49. Решение задач

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

Пример 1: Вычисление суммы элементов массива.

program SummaElementov;

const n=7;

var A: array [1..n] of integer;

S, i: integer;

begin

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

for i:=1 to n do readln {a[i]);

s:=0;

for i:=1 to n do s:=s+a[i];

write ('Сумма элементов массива =',s)

end.

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

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

program Max_Element;

var M: array [1..20] of byte;

max, i, n: byte;

begin

randomize;

for i:=1 to 20 do

begin

m[i]:=random(40);

write (m[i],' ');

end;

writeln;

max:=m[1]; {считать 1-й элемент максимальным}

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

for i:=2 to 20 do {проверить все элементы, начиная со второго}

begin

if m[i]>max then {если очередной (i-й) элемент массива больше чем max}

begin

max:=m[i]; {то считать максимальным i-й элемент}

n:=i; {и запомнить его порядковый номер}

end;

end;

writeln ('Максимальный элемент: ',max);

writeln ('Он расположен на ',n,' месте')

end.

Пример 3: Упорядочивание массива.

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

i - индекс фиксируемого элемента; изменяется от 1 до (n-1);

j - индекс элементов, стоящих справа от фиксируемого и их всегда на 1 больше; изменяется от (i+1) до n;

с - переменная, используемая при перестановке двух элементов.

program Sortirovka;

const n=30;

var T: array [1..n] of integer;

c, i, j: integer;

begin

randomize;

for i:=1 to n do

begin

t[i]:=random(50);

write (t[i],' ');

end;

writeln;

for i:=1 to n-1 do

for j:=i+1 to n do

if t[i]>t[j] then

begin

c:=t[i];

t[i]:=t[j];

t[j]:=c;

end;

write ('Упорядоченный массив: ');

for i:=1 to n do write (t[i],' ');

end.

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

program Bascetball;

var Name: array [1..30] of string;

h: array [1..30] of word;

Cand: array [1..30] of string;

i, k: integer;

begin

writeln ('Введите фамилии и рост учеников');

for i:=1 to 30 do

begin

write (i,'. ');readln (Name[i]);

write ('Рост: '); readln (h[i]);

end;

k:=0;

for i:=1 to 30 do

if h[i]>170 then

begin

k:=k+1;

Cand[k]:=Name[i];

end;

if k=0 then writeln ('Кандидатов нет')

else

begin

writeln ('Кандидаты в команду:');

for k:=1 to k do writeln (Cand[k])

end

end.

  1. В массиве С(14) найти сумму отрицательных и среднее арифметическое положительных элементов.

  2. В массиве Т(15) найти количество положительных, отрицательных и нулевых элементов.

  3. Определите, есть ли в массиве элементы с одинаковыми значениями.

  4. В массиве Х(13) положительные элементы уменьшить вдвое, а отрицательные увеличить на 5. Вывести на экран полученный массив. В полученном массиве найти наименьший элемент.

  5. В массиве А(20) найти сумму наибольшего и наименьшего элементов.

  6. В массиве У(n) найдите количество элементов кратных 6 и их произведение.

  7. Даны два массива: А(10) и В(10). Образуйте массив С, состоящий из сумм корней соответствующих элементов массивов А и В.

  8. В одномерном массиве найти количество четных и нечетных элементов.

  9. Вычислите сумму квадратов всех элементов массива, исключая элементы кратные 5.

  10. Программа находит количество элементов одномерного массива, больших числа х (вводится с клавиатуры), и вычисляет среднее арифметическое найденных элементов.

  11. Массив R состоит из 20 целых положительных чисел. Образуйте массив R1 из четных элементов массива R, а массив R2 из нечетных элементов массива R.

  12. Дан массив Х(15). Образуйте массив У, в котором сначала идут отрицательные элементы, затем нулевые и затем положительные элементы из массива Х.

  13. Даны два массива А(10) и В(10). Создать массив С, в котором элементы из массива А стоят на четных местах, а элементы из массива В на нечетных местах.

  14. Вычислите сумму элементов массива, индексы которых составляют в сумме заданное число К.

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

  16. Дан список из 15 футбольных команд и количество очков, набранных каждой командой. Нет команд с равным количеством очков. Требуется:

а) вывести список команд, набравших более 15 очков;

б) вывести название команды-чемпиона;

в) вывести название команды-аутсайдера.

  1. Дан список класса и отметки каждого за контрольную работу. Требуется:

а) подсчитать количество работ, выполненных на «5», и вывести список этих учащихся;

б) подсчитать количество работ, выполненных на «4», и вывести список этих учащихся;

в) подсчитать количество работ, выполненных на «3», и вывести список этих учащихся;

г) подсчитать количество работ, выполненных на «2», и вывести список этих учащихся;

д) подсчитать успеваемость по формуле: Методическая разработка для учащихся Алгоритмизация и программирование на языке Pascal .

  1. Найти и напечатать номера элементов и элементы массива М(12), большие переменной R, вводимой с клавиатуры. Массив заполнить числами 33, 45, 12, 47, 21, 78, 43, 67, 26, 94, 80, 16

  2. Заполнить массив Р(15) с клавиатуры. Составить программу, которая:

а) печатает положительные элементы массива;

б) печатает номера положительных элементов массива;

в) заменит все отрицательные элементы нулями;

г) разделит на 5 все элементы массива;

д) удвоит элементы, меньшие 7.

  1. Имеется два массива: X и Y. Упорядочить их по убыванию и объединить в один массив Z.

  2. Сортировать массив: список участников соревнований ранятся в двух массивах FIO(10), REZ(10). Расположить участников в соответствии с занятыми местами.

  3. Вводится массив - список участников конференции. Расположить фамилии участников в алфавитном порядке.

  4. Результаты переписи населения хранятся в массивах F и GR. Составьте программу для вывода на экран фамилий людей, старше 50 лет. Для проверки работоспособности программы использовать 10 вымышленных фамилий. Годы рождения указать следующие: 1989, 1978, 1955, 1976, 1951, 1990, 1980, 1974, 1953, 1960.

  5. Составьте программу для вычисления функции:

z (x, y)=(2x2+3)Методическая разработка для учащихся Алгоритмизация и программирование на языке PascalМетодическая разработка для учащихся Алгоритмизация и программирование на языке Pascal,

если ряду значений х: 0,003; 0,51; 1,39; 2,99; 3,05 соответствует ряд значений у: 0,63; 5,81; 4,79; 0,55; 1,01. Результат вывести на экран в виде таблицы соответствия значений переменных значению функции.

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

Урок 50. Контрольная работа №4

Урок 51. Строки

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

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

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

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

Операции над строками

Над строковыми данными допустимы операции сцепления и операции отношения.

Операция объединения (+) применяется для объединения нескольких строк в одну, присоединяя начало второй строки к концу первой, начало третьей строки к концу второй и т. д. Для данной операции существует нейтральный элемент, не влияющий на ее результат, - это строка нулевой длины (пустая строка), обозначаемая двумя рядом стоящими апострофами (' '). Такую строку можно присоединить к любой строке справа или слева и строка не изменится. В операциях сцепления длина результирующей строки не должна превышать 255. Операция объединения строк некоммутативная, т. е. a+b≠b+a.

Операции отношения (=, <>, >, <, >=, <=) проводят сравнение двух строковых операндов и имеют приоритет более низкий, чем операция сцепления. Сравнение строк происходит слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в стандартной таблице обмена информацией. Например, 'program'>'PROGRAM', 'MS-DOS'<'MS-Dos'. Если строки имеют различную длину, но в общей части символы совпадают, то короткая строка меньше, чем длинная. Строки считаются равными, если они полностью совпадают по длине и имеют одни и те же символы.

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

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

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

Length (S) - вычисляет текущую длину в символах строки S. Результат имеет целочисленный тип, например:

Значение S

Выражение

Результат

'1234567'

Length (S)

7

'system 370'

Length (S)

10

Delete (S, P, N) - удаление N символов строки S, начиная с позиции Р. Если значение Р>255, возникает программное прерывание.

Значение S

Выражение

Результат

'абвгде'

delete (S, 4, 2)

'абве'

'река Волга'

delete (S, 1, 5)

'Волга'

Concat (S1, S2, …, SN) - выполняет сцепление строк S1, S2, …, SN в том порядке, в каком они указаны в списке параметров. Сумма всех сцепленных строк не должна превышать 255.

Insert (S1, S2, P) - вставка строки S1 в строку S2, начиная с позиции Р, например:

S1:='че';

S2:= 'знание';

Insert (S1, S2, 4);

В результате выполнения последнего выражения значение строки S2 станет равным 'значение'.

Copy (S, P, N) - выделяет из строки S подстроку длиной N, начиная с позиции Р. Если Р>length(S), то результатом будет пробел. Если Р>255, возникнет ошибка при выполнении. P, N - целочисленные выражения.

Pos (S1, S2) - обнаруживает первое появление строки S1 в строке S2. Результат имеет целочисленный тип и равен номеру той позиции, где находится первый символ строки S1.

Значение S2

Выражение

Результат

'abcdef'

pos ('de', S2)

4

'abcdef'

pos ('r', S2)

0

Val (S, i, c) - преобразует строковое значение S в величину целочисленного или вещественного типа и помещает результат в i. Значение S не должно содержать незначащих пробелов в начале и в конце. Если во время преобразования ошибки не обнаружено, значение с (целочисленная переменная) равно 0., если ошибка обнаружена (например, литерное значение переводится цифровое), с будет содержать номер позиции первого ошибочного символа, а значение i будет не определено.

Значение S

Выражение

Результат

'1450'

val (S, i, c)

i=1450 c=0

'14.2E+02'

val (S, i, c)

i=14.2E+02 c=0

'14.2A+02

val (S, i, c)

i=0 c=5

UpCase (S) - преобразует строчные буквы в прописные. Обрабатывает буквы только латинского алфавита.

Урок 52 - 54. Решение задач

  1. Используя строковые процедуры и функции, исправьте слово «вылысыпыдысты».

  2. Используя строковые процедуры и функции, преобразуйте слово «достопримечательность» в слово «мечта».

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

  4. Программа во введенном слове заменяет буквы «а» на «о».

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

  6. Является ли количество букв во введенном слове четным или нечетным?

  7. Во введенном тексте подсчитать количество слов. (Слова разделяются одним пробелом).

  8. Заданную последовательность слов переупорядочить в алфавитном порядке.

  9. Определите количество предложений во введенном тексте.

  10. Определите долю гласных букв во введенном тексте на русском языке.

  11. Каков процент пробелов во введенном тексте?

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

  13. Удалите из введенной строки все буквы «а».

  14. Программа вычеркивает те буквы в строке, которые стоят на четных местах.

  15. Составьте программу, которая обращает введенное слово, т е. переставляет символы в обратном порядке, например, мама - амам, папа - апап.

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

  17. Напишите программу, которая запрашивает строку и выводит ее, сокращая каждый раз на 1 символ до тех пор, пока в строке не останется 1 символ.

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

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

  20. Вычислите длину самого короткого и самого длинного слова в предложении из трех слов.

  21. Выясните, какая из букв первая или последняя встречается во введенном слове чаще.

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

  23. Сколько букв «у» стоит на четных местах?

  24. Составьте программу, выясняющую, на гласную или согласную букву оканчивается слово.

  25. Вычеркните из заданного слова все буквы, совпадающие с его последней буквой.

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

  27. Составьте программу, вычеркивающую каждую третью букву в слове.

  28. Составьте программу, вычеркивающую все согласные буквы в строке.

  29. Сложное слово состоит из двух частей одинаковой длины и соединительной гласной. Найдите обе части этого слова.

Урок 55. Контрольная работа №5

Урок 56-60. Решение задач

Урок 61-62. Итоговая контрольная работа

1

© 2010-2022