62135

Основы пограммирования

Книга

Педагогика и дидактика

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

Русский

2014-06-05

78.36 KB

4 чел.

ГАОУ СПО Салаватский колледж образования и

профессиональных технологий

Рабочая тетрадь

«Основы пограммирования»

Автор:

Буранбаева А.Б.

Научный руководитель:

Насырова Р.Т

Салават 2012

ПРЕДИСЛОВИЕ

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

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

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


СОДЕРЖАНИЕ

§1. Начальные сведения 4

Практические задания §1 4

§2. Типы численных переменных 5

Практические задания §2 6

§3. Арифметические операции и функции 7

Практические задания §3 8

§4. Операторы ввода и вывода информации 8

Практические задания §4 9

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

Практические задания §5 10

§6. Оператор «выбор» 10

Практические задания §6 11

§7. Циклы. Оператор цикла с предусловием 13

Практические задания §7 14

§8. Циклы. Оператор цикла с постусловием 15

Практические задания §8 16

§9. Циклы. Оператор цикла с параметром 18

Практические задания §9 19

§10. Массивы. Одномерные массивы 19

Практические задания §10 21

§11. Массивы. Двухмерные массивы. 22

Практические задания §11 23

СПИСОК ЛИТЕРАТУРЫ 24


§1. Начальные сведения

Текст программы в системе программирования Pascal представляет собой  обычный  текстовый   файл, который Вы будете составлять в текстовом редакторе. 

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

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

Program <имя>;

<раздел описаний>;

Begin

<раздел операторов>;

End.

 Раздел описаний предназначен для объявления всех встречающихся в программе данных и их характеристики (имена данных, их тип, возможные значения. Он состоит из объявления меток (label), констант (const), типов (type), переменных (var), процедур (procedure), функций (function).

Var

<список переменных 1>: <тип 1>;

<список переменных 2>: <тип 2>;

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

    Идентификатор - это имя, свободно избираемое программистом для элементов программы (Процедур,  Функций, Констант, Переменных и Типов данных). Идентификатор должен удовлетворять следующим условиям:

- должен начинаться с латинской буквы;

- Паскаль не различает большие и малые буквы;

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

- пробел в Паскаль является разделителем и не может присутствовать внутри  идентификатора.

 - зарезервированные слова такие как begin, end, program и др. в качестве

идентификатора не допускаются;

Тело программы начинается словом begin, а заканчивается словом end с точкой, которая является признаком конца программы.

В конце каждого оператора ставится ;

Арифметические операции допустимые операции в Pascal:

+   сложение

-    вычитание

*   умножение

/   деление

Некоторые стандартные функции:

sin(x)    синус

cos(x)    косинус

sqrt(x)   корень квадратный

sqr(x)   квадрат числа

Практические задания §1

Задание 1.

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

5Summa  

Begin  

D'Artanyan  

Сумма  

Dohod  

A*B  

Nomer.Doma  

Задание 2.   

С помощью стрелки сопоставьте арифметические операции и стандартные функции:

+         корень квадратный

-          косинус

*        деление

/         квадрат числа

sin(x)         синус

cos(x)         сложение

sqrt(x)       умножение

sqr(x)         вычитание

Задание 3.   

Установите соответствие (стрелками) между служебными словами и названиями разделов  программы:

  1.  Var                                
  2.  Program
  3.  Uses
  4.  Begin … end
  1.  Раздел операторов
  2.  Раздел имени программы
  3.  Раздел описания переменных
  4.  Раздел описания библиотечных модулей

§2. Типы численных переменных

Любая переменная (или константа, или др. объект) в PASCAL характеризуется своим типом. Тип – множество значений, которые может принимать переменная.

Типы данных

Простые

Сложные

Стандартные: 

Действительный (Real)

Целый (Integer)

Символьный (String, Char)

Логический (Boolean)

Нестандартные:

Перечисляемый

Ограниченный 

Сложные:

Массивы

Множества

Записи

Файлы

 

  

Целые типы

Тип                                         Диапазон                       Размер в байтах

Shortint                                   -128..127                                   1

Integer                                -32768.. 32767                              2

Longint                        -2147483648.. 2147483647                 4

Byte                                           0.. 255                                    1

Word                                        0 .. 65535                                2

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

Тип                               Диапазон            Количество цифр          Размер в байтах

Real                       2.9E-39 .. 1.7E+38               11-12                                      6

Single                     1.5E-45.. 3.4E+38                 7-8                                        4

Double                  5.0E-324.. 1.7E+308             15-16                                     8

Extended             3.4E-4932.. 1.1E+4932           19-20                                    10

Comp                      E-263+1 .. E263-1               19-20                                    8

Extended             3.4E-4932.. 1.1E+4932           19-20                                   10

Базовыми являются простые типы.

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

Этот раздел начинается служебным словом Var.

Var

<список переменных 1>: <тип 1>;

<список переменных 2>: <тип 2>;

Например:

 Var a: integer; b: real;

Практические задания §2

Задание 1.

Подберите подходящий тип данных:

Количество учеников в классе

Площадь круга

Количество автомобилей в регионе

Количество автомобилей у одного владельца_

Первая буква фамилии

Количество жителей в государстве

Плотность населения в государстве

Произведение цифр двузначного числа

Произведение цифр трехзначного числа

Фамилия сотрудника фирмы  

Заработная плата сотрудника фирмы_____________

Задание 2.

Определить тип результата, если:  X-integer, Y-real.

A:=sqrt(X)+Y      Ответ:_____

B:=X- sqrt(Y)        Ответ:_____

D:=2.5*X  Ответ:_____

Задание 3.

Найдите значение d после выполнения следующих операторов:

1

a:= 2;
b:= 3;
c:= 2*a+b;
d:=a+b+c;

Ответ:_______

2

b:= 25;
c:=b+b;
b:= b+c
d:=c+b;

Ответ:_______

3

a:= 4;
b:=a*a;
c:= a+b;
d:=a+c;

Ответ:_______

4

b:= 6;
c:=b*5;
c:= c+b;
d:=c;

Ответ:_______

§3. Арифметические операции и функции

При работе с численными переменными допускаются следующие арифметические операции и функции.

div деление целых чисел

Например:

a div b   

если

а=10 и b=3

то результат =3. {a, b - они только целого типа, иначе программа выдаст ошибку}

mod остаток от деления целых чисел

Например:

a mod b    

если

а=10 и b=3

то результат =1.

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

Abs(x)           абсолютная величина (модуль)

Arctan(x)      арктангенс

Sin(x)           синус

Cos(x)          косинус

Frac(x)        дробная часть числа

Int(x)           целая часть вещественного числа

round(x)      округление числа X по математическим правилам

Pi                 число пи Pi=3.1415926535897932385

Sqr(x)          квадрат

Sqrt(x)        квадратный корень

Примечание: все тригонометрические функции используют радианную меру угла. Перевод радианную меру угла в градусной: grad:=rad* 180/Pi.

Функции преобразования типов данных

Round(x) - округление вещественного числа до ближайшего целого. Аргумент функции - величина вещественного типа, а результат - округлённая до ближайшего целого числа величина типа Longint. Если результат выходит за диапазон значений Longint, то при выполнении программы возникает ошибка.

Тrunс(х) - получение целой части вещественного числа. Тип результата - Longint. Если результат выходит за диапазон значений Longint, то при выполнении программы возникает ошибка. Вещественные числа содержат в своём изображении точку и показатель степени (символ Е или е).

Практические задания §3

Задание 1.

 Найти значение выражения:

  1.  25/2= _________  9) 220 div 10 mod 3  = ________
  2.  25 div 2 = ______  10) 220 mod 10 div 3 = ________
  3.  25 mod 2 = ______ 11) -16 mod 11 * 3 = __________
  4.  15+21 div 2= ____  12) 3 div (5+3) = __________
  5.  2 div 3 = _______  13) 3 div 5 + 3 = _________
  6.  2 mod 3 = _______ 14) (-19+9) div -5 = ________
  7.  11 mod 5 = _____  15) (16 mod 6) / (2 div 1) = ____

8)   14 mod (5 + 3) = ____ 16) 16 mod 6 / 2 div 1 __________

 

Задание 2.     

Зачеркните числа, записанные не по правилам языка Pascal:

1)3.14159 5)16. 9) 12.SE.3

2)150 6)15.0Е-04 10) 12Е+5

3)0,005 7)2.345Е2 11) Л23ЕЗ

4).12345 8) 1.15Е-3 12) 1.15Е-3

§4. Операторы ввода и вывода информации

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

 write( ‘f=);  read(f);

Оператор read(f) предназначен для ввода значения переменной f (целую и дробную часть числа в Паскале следует разделять точкой: 45.78). После ввода пользователь должен нажать клавишу Enter. Оператор write(‘f=’) выводит на экран два символа f=, которые подсказывают пользователю, что он должен ввести значение переменной f.

write(‘b=’);

read(b); 

Эти два оператора выводят подсказку «b=» и осуществляют ввод значения b. Проведите эксперимент по использованию этих операторов.

program eksp;

var s,d,f,g,h: integer;

begin

write(‘введите значения s, d, f, g, h’);

read(s, d, f, g, h);

write(‘значения s, d, f, g, h’, s,d,f,g,h);

write(‘значения s=’,s);

write(‘значения d=’, d);

write(‘значения f=’f);

write(‘значения g=’,g);

writeln(‘значения s= ‘, s);

writeln(‘значения d= ‘, d);

writeln(‘значения f= ‘, f);

writeln(‘значения g=’, g);

end.

Выражения в тексте программы взятые в фигурные скобки, являются комментариями и компилятором игнорируются. Например: {заголовок программы},{раздел объявления переменных}.

Практические задания §4

Задание 1.

Расставь строки программы в правильном порядке, чтобы получилась программа, которая находит значение x уравнение  ах=b:

1)  writeln(‘Введите действительные числа a,b’ );

2)  Var a,x,b:real;

3)  x:=b/a;

4)  writeln(‘x=’,x);

6)   begin

8)   read(a,b)

9)   end.

Задание 2.

Укажи ошибки в заголовках программ:

  1.  programma proba;
  2.  program write;
  3.  program слово;
  4.  program z_1.

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

Условный оператор реализует алгоритмическую конструкцию «развилка» (ветвление) и изменяет порядок выполнения операторов в зависимости от истинности или ложности некоторого условия. Существует два варианта оператора.

Полная форма:

if <условие> then <оператор 1>

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

и краткая форма:

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

В этих операторах: <условие> - некоторое логическое выражение, истинность которого проверяется; <Oператор 1 > - оператор, который выполняется, если логическое выражение <условие> истинно; <Oператор 2> - оператор, который выполняется, если логическое выражение <условие> ложно.

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

Примеры:

 a>b,  r+1< 5,  (u >7) and (p <=n),   n<>m,  (n>9) or (m+7)

В качестве операторов после служебных слов then и else может применяться любой оператор языка.

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

if a>0 then if a<2 then а:=2 else a:=3;

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

Практические задания §5

Задание 1.

Напишите код программы на языке Pascal.

Даны 2 числа. Если эти числа равны, то вычислить их сумму, если нет, то произведение.

______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Задание 2.

Что будет выведено на экран, после выполнения данной программы:

a=8, n=5

a=3, n=3

a=9, n=2

a=7, n=4

Program  Primer;

Var  x, y:integer;

Begin

 Read(a,n);

if a<=10 then writeln(a*2)

else writeln(n*2);

End.

Program  Primer;

Var  x, y:integer;

Begin

 Read(a,n);

If a mod 3<>0

then writeln(a+5)       

else writeln(n+2);

End.

Program  Primer;

Var  x, y:integer;

Begin

 Read(a,n);

If (a mod  2=0) and  (n<>2)

then writeln(a*5)       

else writeln(n*5);

End.

Program  Primer;

Var  x, y:integer;

Begin

 Read(a,n);

If (a mod  2=0) or  (n<>2)

then writeln(a*5)       

else writeln(n*5);

End.

Ответ: __________

Ответ: __________

Ответ: __________

Ответ: __________

§6. Оператор «выбор»

Для описания алгоритма на языке программирования можно использовать вложенное ветвление (оператор If...Then) или оператор варианта (Case)

Оператор варианта (выбора) позволяет сделать выбор из произвольного числа имеющихся вариантов.

Формат оператора:

CASE <выражение> OF

<список 1>:   <блок операторов 1 ;>

<список 2>:   < блок операторов 2;>

<список N>:   < блок операторов N;>

ELSE < блок операторов >

END;

Список1, список2,..., список N - это списки предполагаемых значений (меток), которые может принимать выражение/

Алгоритм работы оператора CASE:

  1.  Сначала вычисляется значение выражения, затем происходит переход к метке, равной значению выражения.
  2.  Если ни одна метка не равна значению селектора, выполняется оператор после ELSE.
  3.  Если ELSE нет, то к оператору после END.
  4.  Список может состоять из произвольного количества значений или диапазонов, отделённых друг от друга запятыми. Например: 2, 4, 8.
  5.  Границы диапазона записываются двумя константами через разграничитель «..». Например: 2..6, 8.. 19. 

Пример: Вывести на печать название дня недели, соответствующее заданному числу D, при условии, что в месяце 31 день и 1-е число - понедельник.

program z4_l;

var D, n: byte;

begin

write('Введите число D='); read(D);

n:= D mod 7 { Вычисляется остаток от деления D на 7.}

case n of

1: writeln(‘ПОНЕДЕЛЬНИК’);

2: written(‘BTOPHHK’);

3: writeln(‘СРЕДА’);

4: writeln(‘ЧETBEPГ’ );

5: writeln(‘ПЯТНИЦА’);

6: writeln(‘СУББОТА’);

0: writeln(‘ВОСКРЕСЕНЬЕ’ );

end;

end.

Практические задания §6

Задание 1.

а) Ввести номер месяца и вывести соответствующее ему название на русском языке.

б) Введите номер месяца. Напечатайте соответствующее месяцу время года: «зима», «весна», «лето», «осень».

Задание 2.

Запишите оператор CASE, эквивалентный следующему оператору IF:

if (x>=a) and (x<=b) then writeln ('Хорошо')

else  if (x = d) or (x = f) then writeln ('Плохо')

else writeln ('Неверный ввод');

Задание 3.

Составьте  программы для следующих задач:

  1.  По введенному году обучения в школе (числу от 1 до 11) вывести сообщение «Привет, k-классник!». Например, если k=1, «Привет, первоклассник!»

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

  1.  Определить подходящий возраст кандидатуры для вступления в брак, используя следующие соображения: возраст девушки равен половине возраста мужчины плюс 5, возраст мужчины определяется соответственно, как удвоенный возраст девушки минус 14.

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

  1.  Заданы три стороны треугольника a,b,c. Определить, является ли этот треугольник прямоугольным и какая сторона является гипотенузой.

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

  1.  Вывести заданное натуральное число (до 2000) римскими цифрами (I-1, V-5, X-10, L-50, C-100, D-500, M-1000)

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

  1.  По введённому натуральному числу, вывести его название на естественном языке. Например, 7 семь, 204 двести четыре, 52 пятьдесят два.

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

§7. Циклы. Оператор цикла с предусловием

Цикл – это такая структура, которая позволяет многократно повторять одни и те же действия

Тело цикла – последовательность повторяемых операторов.

Параметр цикла (счётчик цикла) – переменная.

Для программной реализации таких вычислений в Pascal ABC.NET имеется несколько типов операторов цикла.

Оператор цикла с предусловием (Цикл ПОКА):

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

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

Тело цикла

Условие

да

нет

WHILE <условие>DO

BEGIN

<тело цикла>

END;

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

В этой структуре:

<условие> - логическое выражение, истинность которого проверяется вначале выполнения циклического оператора;

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

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

Пример: Составить программу нахождения НОД и НОК двух чисел а и b.

program z6_3;

var  a, b, p: real;

nod, nok: real;

begin

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

write( 'b=' ); readln(b);

p:=a*b;

while a<>b do

if a>b then a:=a-b else b:=b-a;

nod:=a;  

nok:=p/nod;

writeln('HOД:', a);

write('HOK:', nok);

end.

Практические задания §7

Задание 1.

Составьте программы к следующим задачам:

  1.  Вычислить значения 1*2*3*4* ..*n для n введённого с клавиатуры.

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

  1.  Ввести числа а, b. Вывести на экран последовательность чисел а, а2, а3,... меньшие b.

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

Задание 2.

а) Выполните трассировку и определите значение переменной S после выполнения фрагмента программы.

S:=0;

I:=0;

While I< 5 do

I:=I+1;

S:=S+I*I;

Ответ: _____________

I

S

I<5?

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

S:=0;

I:=0;

While I<=3 do

Begin

I:=I+1;

S:=S+I*I;

End;

Ответ: _____________

I

S

I<=3?

§8. Циклы. Оператор цикла с постусловием

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

Цикл с последующим условием (Цикл ДО):

Тело цикла

Условие

да

нет

REPEAT

<тело цикла>

UNTIL <условие>;

Повторять тело цикла до тех пор, пока НЕвыполнится условие.

В этой структуре: <Оператор 1>; <Оператор 2>;... <Оператор N>; - тело цикла; <условие> - логическое выражение, ложность которого проверяется после выполнения тела цикла.

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

Пример: Составить программу, вычисляющая сумму двух чисел.

program z6_1;

var х, у, sum: real;   t: byte;

begin 

repeat

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

readln(x, у);

sum:= x + у;

writeln(‘Сумма чисел равна ', sum);

write('Завершить программу? 1-да, 2-нет :')

readln(t);

until t = 1;

end.

Практические задания §8

Задание 1.

Выполните трассировку и определите значение переменной S и I после выполнения фрагмента программы.

S:=0;

I:=0;

Repeat

I:=I+5;

Until I<=5;

S:=S+I*I;

S _____________

I _____________

Тело цикла выполняется____раз

I

S

I<=5?

Задание 2.

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

S:=0;

I:=0;

Repeat

I:=I-1;

S:=S+1/I;

Until I<=1;

S:=0;

I:=1;

Repeat

I:=I+1;

Until I>2;

S:=S+1/I;

S:=0;

I:=1;

Repeat

S:=S+1/I;

I:=I+1;

Until I<1;

Ответ:

Ответ:

Ответ:

Задание 3.

Составьте  программы для следующих задач:

  1.  Выведите на экран 10 раз имя и фамилию.

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

  1.  Выведите таблицу степеней двойки (от нулевой до десятой).

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

  1.  Выведите на экран таблицу умножения на заданное с клавиатуры число.

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

  1.  Выведите таблицу перевода температуры из градусов по школе Цельсия (С) в градусы шкалы Фаренгейта (F) для значений от 150С до 300С с шагом 10С (F=1.8C+32).

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

  1.  Выведите все чётные числа в диапазоне от 2 до 100.

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

______________________________________________________

§9. Циклы. Оператор цикла с параметром

Цикл с параметром используется, когда известно число повторений тела цикла и параметр цикла изменяется с шагом  +1 или –1

Параметр, нач.зн., кон.зн, шаг

Тело цикла

Если шаг +1:

FOR <параметр>:=<начальное зн.> TO <конечное зн> DO

BEGIN

<тело цикла>

END;

Если шаг -1:

FOR <параметр>:=<начальное зн.> DOWNTO <конечное зн> DO

BEGIN

<тело цикла>

END;

В этой структуре: <параметр> - имя переменной целого типа; <нач.зн.>,<кон.зн.> - константы, переменные, арифметические выражения целого типа.

Пример: Напечатать таблицу квадратов для чисел от 1 до 10.

Program  primfor;

var k,i:integer;

begin

for i:=1 to 10 do

  begin

      k:=i*i;

     writeln(i:15, k:15);

  end;

end.

Практические задания §9

Задание 1.

Запишите заголовки цикла For для изменения параметра из диапазонов:

от -10 до +10_______________________________________________

от 100 до 1_________________________________________________

от 15 до 25_______________________________________________

от -10 до -20_______________________________________________

Задание 2.

Выполните трассировку (пошаговое выполнение алгоритма вручную на бумаге). Определите значение переменной Х после выполнения фрагмента программы.

X:=10;

For I:=1 to 5 do

Begin

Writeln (I,X);

X:=X-2;

End;

Ответ: _____________

I

X

Экран

результата

Задание 3.

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

K:=0;

For I:=1 to K+3 do

K:=K+1;

K:=0;

For I:=1 to 9 do

K:=K+sqr(I);

K:=0;

For I:=9 to 1 do

K:=K+1;

K:=0;

For I:=1 to 1 do

K:=K+1;

Ответ:

Ответ:

Ответ:

Ответ:

Определить значение переменной S после выполнения следующих операторов:

S:=1;

For I:=2 to 4 do

S:=S+I;

S =_____________

S:=1;

I:=1;

For I:=2 to -5 do

S:=S+I;

S =_____________

S:=1;

For I:=2 downto 1 do

S:=S+I;

S =_____________

§10. Массивы. Одномерные массивы

В Pascal могут использоваться также объекты, содержащие множество однотипных элементов. Массивы - это формальное объединение нескольких однотипных элементов (чисел, символов, строк и т.п.), рассматриваемых как единое целое. Например, результаты многократных замеров температуры воздуха в течение одного года удобно рассматривать как совокупность вещественных чисел, объединенных в один сложный объект, - массив измерений.

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

Например:

var mas: array [1..20] of integer {одномерный массив из 20 элементов целого типа),

var f: array[ 1..10, 1..5] of real; {двумерный массив, состоящий из 50 элементов (10 строк, 5 столбцов) вещественного типа}.

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

Обратите внимание, что величины, обозначающие «начальный индекс» и «конечный индекс», в квадратных скобках разделяются двумя (!) точками, причем перед этими двумя точками и после них допускаются пробелы.

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

for i:=l to 25 do mas[i]:=0; всем элементам массива присваивается значение «0».

Пример. Дана последовательность реальных чисел s1... s30. Определить сумму этих элементов.

program z_1;

var m: array[1..30] of real;    {объявление массива}

i: integer;                {параметр цикла FOR}

s: real;    {сумма элементов}

begin

for i:=l to 30 do           {заполнение массива}

begin

write(‘Введите элемент последовательности N’,i);

readln(m[i]);

end;

s:=0;  {обнуление счётчика суммы}

for i:=l to 30 do

s:=s+m[i]; {вычисление суммы}

write(‘Сумма элементов последовательности равна', s);

end.

Случайные числа

Генерация случайных чисел производится оператором random(n). Например: y:=random(100). Значение случайного числа (оно целое положительное) лежит в пределах от 0 до 99.

Пример: Создать одномерный массив ms из случайных 20 целых чисел, лежащих в пределах от -50 до +70 и выводить на экран.

program z_2;

var  ms: array[l..20] of integer;

t: byte;

begin

randomize;

for t:=l to 20 do

begin

ms[t] :=random( 121 )-50;

write(ms[t],’ ‘); {после элемента массива ms[t] внутри апострофов вставили пробел, чтобы при выводе значений массива, между элементами был пробел}

end;

end.

Алгоритм решения задачи следующий. Пусть в переменной с именем Мах хранится значение максимального элемента массива, а в переменной с именем Nmax - его номер. Предположим, что первый элемент массива является максимальным, и запишем его в переменную Мах, а в Nmax- его номер. Затем все элементы, начиная со второго, сравниваем в цикле с максимальным. Если текущий элемент массива оказывается больше максимального, то записываем его в переменную Мах, а в переменную Nmax - текущее значение индекса i. Массив X создадим генератором случайных чисел.

program z_3;

var  X: array[1..15] of integer;

Max, Nmax, i: integer;

begin

randomize;

for i:=l to 15 do

begin

X[i]:=random (51);

write (X[i],' ');

end;

Max:=X[l]; Nmax:=l;

for i:=2 to 15 do

if X[i]>Max then

begin

Max:=X[i];

Nmax:=i;

end;

writeln('Max=', Max:1:3,   ' Nmax=', Nmax);

end.

Алгоритм поиска - минимального элемента в массиве будет отличаться от приведенного выше лишь тем, что в условном блоке и, соответственно, в конструкции if текста программы знак поменяется на <

Практические задания §10

Задание 1.

Определите количество элементов в массиве:

Var A: array [6..7] of integer;

____________

Var C: array [5..13] of real;

____________

Var K: array [0..19] of integer;

____________

Var A: array [1..8] of real;

____________

Var D: array [-8..15] of integer;

 ____________

Задание 2.

Укажите числовой диапазон:

  1.  A[i]:=random(61)____________________
  2.  B[j]:=random(35)____________________
  3.  C[5]:=random(14)___________________
  4.  B[z]:=random(45)___________________
  5.  A[k]:=random(28)___________________

Задание 3.

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

1)  массив состоял из 15 элементов вещественного типа;

2) значения элементов массива должны меняться в интервале от 0 до 5;

3) в результате выполнения программы должно быть найдено произведение всех элементов массива, а не их сумма.

Program massiv;

Const n=10;

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

           s,i: integer;

Begin

   WriteLn('Исходный массив:');

For i:=1 to n do

    begin

     a[i]:=random(10);

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

     WriteLn (' ');

end;

s:=0;

For i:=1 to n do

   s:=s+a[i];

  WriteLn('Сумма всех элементов массива S=',s);

  end.

§11. Массивы. Двухмерные массивы.

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

a11 a12 a13

а21 а22 а23

а31 а32 аЗЗ

Первый индекс - номер строки, второй - номер столбца; а13 читается «а один три», а не «а тринадцать».

Про таблицу (матрицу) имеющую m строк и п столбцов, говорят, что она имеет размер m х n («м на н»). Если m=n, то таблица (матрица) называется квадратной. Для квадратной матрицы элементы с одинаковыми индексами для строк и столбцов составляют главную диагональ матрицы. Для изображённой выше матрицы это элементы all, a22, аЗЗ. Противоположная диагональ называется побочной диагональю. К ней относятся элементы а13, а22, а31.

Объявляются двумерные массивы так же, как и одномерные массивы. Например, целочисленный числовой массив mas , содержащий 9 строк и 8 столбцов, объявляется следующим образом:

Var mas:[1..9, 1..8 ] of integer;

Ниже приведен пример программы ввода-вывода матрицы 20 х 20:

Program zll;

Var  a: array [1.20,1. .20] of real;

i,n,j,m:integer;

begin

writeln («Введите количество строк п и количество столбцов m»);

readln(n,m); {ввод элементов матрицы. }

for i:=l to N do

for j:=l to M do

begin

write ("Введите a(‘i,’,’ j,' ) = );

readln(a[i,j]);

end;

{ Вывод элементов матрицы. }

writeln( "матрица :' );

for i:=1 to N do

begin

for j :=1 to M do

write(a[i,j] :8:2,' '), { печатается строка.}

Writeln;    { переход на новую строку }

end;

end.

Практические задания §11

Задание 1.

      Как выглядит массив А, состоящий из 4 строк и 5 столбцов, если А(i,j) = i*j (выбери вариант ответа)?

  1.                                              2)                                              3)

1

1

1

1

1

2

2

2

2

2

3

3

3

3

3

4

4

4

4

4

1

2

3

4

5

1

2

3

4

5

1

2

3

4

5

1

2

3

4

5

1

2

3

4

5

2

4

6

8

10

3

6

9

12

10

4

88

12

16

20

Задание 2.

Значения двумерного массива задаются с помощью вложенного оператора цикла в представленном фрагменте программы.  Чему будет равно значение B(2,4)?

………..

for n:=1 to 5 do

for k:=1 to 5 do

         B[n,k]:=n+k;

…………..

Ответ: ________________________

Дан фрагмент программы, обрабатывающей двухмерный массив A размера n×n. Выберите правильный ответ, когда данный алгоритм меняет местами:

…………

k:=1;

for i:=1 to n do begin

c:=A[i,i];

A[i,i]:=A[k,i];

A[k,i]:=c;

end ;

………..

Ответ: ________________________


СПИСОК ЛИТЕРАТУРЫ

  1.  Абрамов С.А., Гнездилова Г.Г. Задачи по программированию. -М.: Наука, 1988
  2.  Абрамов С.А., Зима Е.В. Начала программирования на языке Паскаль. -М.: Наука, 1987
  3.  Савельева А.Я. Алгоритмизация и основы программирования. - М.: Высшая школа, 1993
  4.  Быля Т.Н., Быля Д.И. Изучаем информатику. - М: Айрис Рольф, 1996
  5.  Васюкова Н.Д., Тюляева В.В. Практикум по основам программирования. - М.: Высшая школа, 1991
  6.  Вьюкова Н.И., Галатенко В.А., Ходулев А.Б. Систематический подход к программированию. - М.: Наука, 1988
  7.  Гейн А.Г., Житомирский В.Г., Липецкий Е.В. Основы информатики и вычислительной техники. - М.: Просвещение, 1993
  8.  Савельева А.Я. Задачи и упражнения по программированию. - М: Высшая школа, 1989
  9.  Златопольский Д.М. Я иду на урок информатики: Задачи по программированию. 7-11 классы: Книга для учителя. -М.: Издательство "Первое сентября", 2002
  10.  Зубов B.C. Программирование на языке Turbo Pascal. - М.: Филинъ, 1997
  11.  Зуев Е.А. Turbo Pascal 6.0 7.0. - М.: Радио и связь, 1993
  12.  Коффман Эллиот Б. Turbo Pascal, 5-е издание.: Пер. с англ. - М.: Издательский дом "Вильяме", 2003
  13.  Лазарева Н.В. Информатика. Рабочая тетрадь с печатной основой.- Заречный, 2005
  14.  Марченко А.И., Марченко Л.А. Программирование в среде Turbo Pascal 7.0. - М.:Бином Универсал, 1997
  15.  Пильщиков В.Н. Сборник упражнений по языку Паскаль. - М.: Наука, 1989
  16.  Поддубная Л.М., ШаньгинВ.Ф. Мне нравится Паскаль. - М.: Радио и связь, 1992
  17.  Попов В.Б. TURBO PASCAL для школьников. - М.: Финансы и статистика, 1996
  18.  Савельева А.Я.Практикум по программированию. - М.: Высшая школа, 1993
  19.  Шаньгин В.Ф., Поддубная Л.М. Программирование на языке Паскаль. - М.: Высшая школа, 1991
  20.  Эрбс Х.Э., Штольц О. Введение в программирование на языке Паскаль. - М.: Мир, 1989


 

А также другие работы, которые могут Вас заинтересовать

73539. Заряд внутри диэлектрика, Теорема Гаусса для вектора напряжённости в диэлектрике 146.5 KB
  Выберем на этой поверхности некоторую площадку, малую настолько, что её можно считать частью плоскости и поле на ней можно считать однородным. Построим цилиндр, проходящий через эту площадку с направляющими параллельно вектору напряжённости внешнего поля.
73540. ЭЛЕКТРИЧЕСКИЕ ФИЛЬТРЫ 168.5 KB
  Фильтры применяются для выделения или подавления определенных колебаний разделения частотных каналов формирования спектра сигналов. По расположению на шкале частот полосы пропускания различают следующие фильтры: а нижних частот...
73541. Параллельный колебательный контур и резонанс токов 193.5 KB
  Параллельный колебательный контур с потерями и векторные диаграммы Комплексная входная проводимость такого контура: комплексные проводимости ветвей с индуктивностью и емкостью соответственно...
73542. Простые колебательные контуры 106 KB
  Цепи в которых возникает явление резонанса называют колебательными контурами или резонансными цепями. изображена схема последовательного контура с реактивными элементами L и С и активным сопротивлением R характеризующим потери в контуре. Комплексное входное сопротивление контура на данной частоте определяется согласно уравнению...
73544. Методы и средства защиты растений от болезней 89.5 KB
  Внесение удобрений в высоких дозах часто приводит к тому что возрастает восприимчивость растений к патогенам. Мероприятия по защите растений от болезней должны основываться на всестороннем изучении самой болезни биологических особенностей патогена и защищаемого растения. Система защиты сельскохозяйственной культуры от болезней включает научно обоснованные приемы обеспечивающие благоприятные условия для развития растений без снижения ими уровня устойчивости подавление возбудителей болезней или ограничение их развития.
73545. Сорняки. Биологические особенности сорняков 46 KB
  Паразитные сорняки это растения утратившие способность к фотосинтезу и питающиеся за счет растенияхозяина. Стеблевые паразитные сорняки присасываются к стеблю растенияхозяина. Корневые паразитные сорняки присасываются к корням растенияхозяина это заразихи подсолнечниковая конопляная капустная.
73546. Меры борьбы с сорняками 82.5 KB
  Гербициды от лат. По характеру действия на растения делятся на гербициды сплошного действия убивающие все виды растений и гербициды избирательного селективного действия поражающие одни виды растений и не повреждающие другие.