NetNado
  Найти на сайте:

Учащимся

Учителям



1. /основы программирования и бд/Лабораторная работа ь4.doc
2. /основы программирования и бд/Лабораторная работа ь5.doc
3. /основы программирования и бд/практические Основы программирования и баз данных>.docx
Лабораторная работа №4 Основы алгоритмизации и технологии программирования
Лабораторная работа №5 Основы работы в Microsoft Office Access
Тема программы

скачать docx

Практические занятие №1 «Составление алгоритма работы программы с использованием ветвления и цикла»

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

Цель работы: отработать навыки в составлении алгоритма; научиться ориентироваться в конструкции алгоритмического языка.

Время выполнения: 2 часа

Теоретические основы

1. Понятие алгоритма

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

Требования к алгоритмам

  1. Ориентированность на конкретного исполнителя.

  2. Понятность для исполнителя (алгоритм составляется в соответствии с системой команд исполнителя).

  3. Точность (каждая команда должна определять однозначное действие исполнителя).

  4. Конечность (наличие конца алгоритма через конечное число шагов).

  5. Результативность (получение нужного результата по окончанию алгоритма).

  6. Массовость (применимость для широкого класса задач).

  7. Формальность исполнения (во время исполнения алгоритма исполнитель не должен задумываться над сутью выполняемых действий).

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

  1. Словесный (описание алгоритма с помощью слов русского языка).

Пример. Алгоритм включения компьютера.

Подойти к компьютеру.

Включить монитор.

Включить системный блок.

  1. Запись на алгоритмическом языке

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

Начало

Ввод числа х

Ввод числа у

Если х<у

То Вывод х

Иначе Вывод у

Все

Конец

  1. Блок-схема (Графическое представление алгоритма)

(будет рассмотрен ниже)

  1. Программа (запись алгоритма на языке программирования)

Пример. Определение четности введенного числа.

BASIC

Pascal

INPUT “Введите целое число”; X

A$=”четное”

IF X MOD 2<>0 THEN A$=”не”+A$

PRINT “Введенное число ”, A$

Var x: Integer;

Str: String;

Begin

Write(‘Введите целое число’);

ReadLn(x);

If x Mod 2 <> 0

Then Str:=’не’+Str;

WriteLn(‘Введенное число ‘, Str);

End.

Блок-схемы

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

Действие 2.

Действие 1.

Рис.1.

2. Алгоритмические конструкции

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

Рис.2.

Действие 2

Действие 1

Условие

да

нет

Ветвление представляет собой алгоритмическую конструкцию, в которой выполнение того или иного шага зависит от истинности условия. Говорят, что конструкция «ветвление» записана в полной форме, если в ней присутствуют команды как для случая истинного условия, так и для его ложности. На рис.2 приведена блок-схема ветвления в полной форме.

Действие

Условие

да

Действие

Условие

нет

Рис.3.

Конструкция ветвления в полной форме реализуется следующим образом. Если условие истинно, то выполняется действие 1, если условие ложно, то выполняется действие 2.

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

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

Тело цикла

Задание новых значений параметров

Задание начальных параметров цикла

Условие окончания цикла

Да

Нет

Выход из цикла

Рис.4.

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

Различают два вида циклов: циклы с заранее известным числом повторений и циклы с заранее неизвестным числом повторений. Цикл с заранее известным числом повторений называют циклом с параметром. Блок-схема цикла с параметром помещена на рис.4.

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

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

Рис.5.

Действие

Условие

да

нет

Рис.6.

Действие

Условие

да
нет
Различают циклы с проверкой условия перед выполнением очередной итерации и циклы с проверкой условия после выполнения очередной итерации. Первые называются циклами с предусловием (рис. 5), вторые – с постусловием (рис. 6).

Рис.7.

нет

y:=y-x

x:=x-y

да

x>y

x<>y

нет

да

Алгоритмическая конструкция называется вложенной, если она содержится внутри другой алгоритмической конструкции. На рис. 7 команда ветвления вложена в цикл.

Рис.8.

серия 2

серия 1

Условие

да

нет

Задание 1. (Задание А8 демоверсии 2004 г.)

Алгоритмическая конструкция какого типа изображена на фрагменте блок-схемы (см. рис. 8):

  1. линейная;

  2. циклическая;

  3. разветвляющаяся;

  4. вспомогательная.

Решение. На рис. 8 изображен ромб, внутри которого записано условие, и две исходящие из него стрелки. Фрагмент условия представляет собой блок ветвления в полной форме.

Рис.9.

Серия 3

Серия 2

нет

да

Усл. 2

Усл.1.

Серия 1

да

нет

Ответ: №3.

Задание 2. (Задание А6 демоверсии 2005 г.)

Фрагмент блок-схемы (см. рис. 9) представляет алгоритм, который содержит команды ветвления:

  1. команду ветвления в сокращенной форме, в которую вложена команда ветвления в полной форме;

  2. две команды ветвления в полной форме, одна из которых вложена в другую;

  3. две команды ветвления в сокращенной форме, одна из которых вложена в другую;

  4. команду ветвления в полной форме, в которую вложена команда ветвления в сокращенной форме.

Решение. Обе команды ветвления, входящие в блок-схему на рис. 9, - полные, при чем одна из них вложена в другую. Поэтому верным будет вариант ответа №2.

Ответ: 2.

Рис.10.

нет

y:=y-x

x:=x-y

да

x>y

x<>y

x:=55;

y:=75

нет

да

Задание 3. (Задания А29 демоверсии 2005 г., А6 демоверсии 2006 г.)

Определите значение целочисленной переменной х после выполнения следующего фрагмента блок-схемы (см. рис.10)

  1. 1;

  2. 5;

  3. 10;

  4. 15.

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

Таблица 1.

№ итерации

Значение х

Значение у

x<>y

x>y

0

55

75

55<>75 – да

Выполняем тело цикла

55>75 – нет,

y:=y-x=75-55=20

1

55

20

55<>20 – да

Выполняем тело цикла

55>20 – да

x:=x-y=55-20=35

2

35

20

35<>20 – да

Выполняем тело цикла

35>20 – да

x:=x-y=35-20=15

3

15

20

15<>20 – да

Выполняем тело цикла

15>20 – нет,

y:=y-x=20-15=5

4

15

5

15<>5 – да

Выполняем тело цикла

15>5 – да

x:=x-y=15-5=10

5

10

5

10<>5 – да

Выполняем тело цикла

10>5 – да

x:=x-y=10-5=5

6

5

5

5<>5 – нет

Выход их цикла; завершение алгоритма




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

Ответ: 2.

3. Исполнение фрагментов программ

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

Задание 4. (Задание А9 демоверсии 2004 г.)

Определите значение целочисленных переменных x, y и t после выполнения фрагмента программы (ниже представлена одна и та же программа, представленная на разных языках программирования):

Бейсик

Паскаль

Алгоритмический

x=5

y=7

t=x

x=y MOD x

y=t

x:=5;

y:=7;

t:=x;

x:=y Mod x;

y:=t;

x:=5

y:=7

t:=x

x:=mod (x,y)

y:=t

  1. x=2; y=5; t=5;

  2. x=7; y=5; t=5;

  3. x=2; y=2; t=2;

  4. x=5; y=5; t=5.

Решение. Для решения этого задания удобно составить таблицу:

Шаг

Значение х

после шага

Значение y

после шага

Значение t

после шага

x=5

5

Не определено

Не определено

y=7

5

7

Не определено

t=x

5

7

5

x=y MOD x

2

7

5

y=t

2

5

5

Таким образом, верным является вариант ответа №1.

Ответ: 1.

Задание 5. (Задание А7 демоверсии 2006 г.)

Определите значение целочисленных переменных a и b после выполнения фрагмента программы (ниже представлена одна и та же программа, представленная на разных языках программирования):

Бейсик

Паскаль

Алгоритмический

a=42

b=14

a=a\b

b=a*b

a=b\a

a:=42;

b:=14;

a:=a Div b

b:=a*b

a:=b Div a

a:=42

b:=14

a:=Div (a,b)

b:=a*b

a:=Div (b,a)

  1. a=42; b=14;

  2. a=1; b=42;

  3. a=0; b=588;

  4. a=14; b=42.

Решение. Для решения этого задания удобно составить таблицу:

Шаг

Значение a

после шага

Значение b

после шага

a=42

42

Не определено

b=14

42

14

a=a\b

3

14

b=a*b

3

42

a=b\a

14

42

Таким образом, верным является вариант ответа №4.

Ответ: 4.

4. Анализ фрагментов программ. Обработка двумерных массивов

Двумерный массив А размером N*M можно изобразить в виде таблицы, состоящей из N строк и M столбцов. Обращение к каждому элементу в массиве осуществляется указанием имени массива (в нашем случае - А) и двух чисел - номера строки и номера столбца, на пересечении которых он находится. Эти числа называются индексами элемента в массиве, записываются через запятую в круглых (для языка Бейсик) или в квадратных (для языков Паскаль и алгоритмического) скобках.

Задание 6. (Задание А10 демоверсии 2004 г.)

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

Бейсик

Паскаль

Алгоритмический

FOR n=1 TO 5

FOR k=1 TO 5

B(n,k)=n+k

NEXT k

Next n

For n:=1 To 5 Do

For k:=1 To 5 Do

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

н.ц. для n от 1 до 5

н.ц. для k от 1 до 5

B[n,k]:=n+k

к.ц.

к.ц.

Чему будет равно значение B(2,4)?

  1. 9;

  2. 8;

  3. 7;

  4. 6.

Решение.

1-й способ. Для выполнения поставленного задания можно заполнить таблицу в соответствии с представленной программой:




k= 1

2

3

4

5

n= 1

2

3

4

5

6

2

3

4

5

6

7

3

4

5

6

7

8

4

5

6

7

8

9

5

6

7

8

9

10

Элемент В(2,4) находится на пересечении 2-й строки и 4-го столбца, его значение равно 6, что соответствует варианту ответа №4.

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

2-й способ. Из текста программы следует, что значение каждого элемента равно сумме его индексов, поэтому В(2,4)=2+4=6.

Ответ: 4.

Задание 7.

Все элементы двумерного массива А размером 4*4 элемента первоначально были равны 0. Затем значения элементов меняются с помощью вложенного оператора цикла в представленном фрагменте программы (ниже приводится одна и та же программа, записанная на разных языках программирования):

Бейсик

Паскаль

Алгоритмический

FOR n=1 TO 4

FOR k=n TO 4

A(n,k)=1

NEXT k

Next n

For n:=1 To 4 Do

For k:=n To 4 Do

A[n,k]:= 1;


н.ц. для n от 1 до 4

н.ц. для k от n до 4

A[n,k]:=1

к.ц.

к.ц.

Сколько элементов массива в итоге будут равны 1?

Решение.

Для выполнения задания составим таблицу:

n

k

Значения A[n,k]=1

1

1,2,3,4

A[1,1]

A[1,2]

A[1,3]

A[1,4]

2

2,3,4

A[2,2]

A[2,3]

A[2,4]

3

3,4

A[3,3]

A[3,4]

4

4,4

A[4,4]

Из таблицы видно, что количество элементов, равных 1 в массиве А равно 4+3+2+1=10.

Ответ: 10.

Задание 8. (Задание А8 демоверсии 2006 г.)

Все элементы двумерного массива А размером 10*10 элементов первоначально были равны 0. Затем значения элементов меняются с помощью вложенного оператора цикла в представленном фрагменте программы (ниже приводится одна и та же программа, записанная на разных языках программирования):

Бейсик

Паскаль

Алгоритмический

FOR n=1 TO 4

FOR k=n TO 4

A(n,k)=A(n,k)+1

A(k,n)=A(k,n)+1

NEXT k

Next n

For n:=1 To 4 Do

For k:=n To 4 Do

Begin

A[n,k]:=A[n,k]+1;

A[k,n]:=A[k,n]+1;

End;

н.ц. для n от 1 до 4

н.ц. для k от n до 4

A[n,k]:=A[n,k]+1

A[k,n]:=A[k,n]+1

к.ц.

к.ц.

Сколько элементов массива в итоге будут равны 1?

  1. 0;

  2. 16;

  3. 12;

  4. 4.

Решение.

Для выполнения поставленного задания заполним таблицу:

n

k

Вычисление A[n,k]

Значение A[n,k]

1

1

A[1,1]= A[1,1]+1=0+1=1

A[1,1]= A[1,1]+1=1+1=2

A[1,1]=2

1

2

A[1,2]= A[1,2]+1=0+1=1

A[2,1]= A[2,1]+1=0+1=1

A[1,2]=1

A[2,1]=1

1

3

A[1,3]= A[1,3]+1=0+1=1

A[3,1]= A[3,1]+1=0+1=1

A[1,3]=1

A[3,1]=1

1

4

A[1,4]= A[1,4]+1=0+1=1

A[4,1]= A[4,1]+1=0+1=1

A[1,4]=1

A[4,1]=1

2

2

A[2,2]= A[2,2]+1=0+1=1

A[2,2]= A[2,2]+1=1+1=2

A[2,2]=2

2

3

A[2,3]= A[2,3]+1=0+1=1

A[3,2]= A[3,2]+1=0+1=1

A[2,3]=1

A[3,2]=1

2

4

A[2,4]= A[2,4]+1=0+1=1

A[4,2]= A[4,2]+1=0+1=1

A[2,4]=1

A[4,2]=1

3

3

A[3,3]= A[3,3]+1=0+1=1

A[3,3]= A[3,3]+1=1+1=2

A[3,3]=2

3

4

A[3,4]= A[3,4]+1=0+1=1

A[4,3]= A[4,3]+1=0+1=1

A[3,4]=1

A[4,3]=1

4

4

A[4,4]= A[4,4]+1=0+1=1

A[4,4]= A[4,4]+1=1+1=2

A[4,4]=2

Исходя из таблицы видно, что 4 элемента массива А будут равны 2, 12 элементов будут равны 1, все остальные – равны нулю. Следовательно, правильным будет вариант ответа №3.

Ответ: 3.

5. Оценка скорости работы алгоритмов

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

Задание 9.

Следующий фрагмент программы записывает в переменную Max максимальный элемент в двумерном массиве Dist размера N*N, наполненном неотрицательными числами:

For i:=1 to N Do

For j:=1 to N Do

If Dist[I,j]>Max Then Max:= Dist[I,j];

На очень медленном компьютере эта программа при N=1000 работала 5 секунд. Определите время работу этой программе на том же компьютере при N=2000:

  1. 10 сек.;

  2. 20 сек.;

  3. 30 сек.;

  4. 40 сек.

Решение.

В данном алгоритме два вложенных оператора цикла. При увеличении N в два раза количество проверок (выполнений оператора If) возрастет в 22, т.е. в 4 раза, что соответствует варианту ответа №2.

Ответ: 2.

Задание 10. (Задание А19 демоверсии 2005 г.)

Стандартный алгоритм вычисления среднего арифметического элементов числового массива из миллиона элементов работает 0, 5 сек. Оцените время работы того же алгоритма на том же компьютере, если длина массива 3 миллиона.

  1. 1 сек.;

  2. 1,5 сек.;

  3. 3 сек.;

  4. 4,5 сек.

Решение.

Для вычисления среднего арифметического N чисел необходимо выполнить N операций сложения. При увеличении количества элементов в 3 раза время выполнения алгоритма возрастает линейно - так же в 3 раза. Следовательно, время будет равно 0,5*3=1,5(сек), что соответствует варианту ответа №2.

Ответ: 2.

6. Работа с исполнителями

Задание 11. (Задания А 23 демоверсии 2005, А20 демоверсии 2006 г.)

Исполнитель Черепашка перемещается на экране компьютера, оставляя след виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существуют две команды:

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

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

Запись Повтори 5 [Команда1 Команда2] означает, что последовательность команд в скобках выполняется 5 раз.

Черепашки был дан для исполнения следующий алгоритм:

Повтори 5 [вперед 10 направо 72]

Какая фигура появится на экране?

  1. Незамкнутая ломаная линия

  2. Правильный треугольник

  3. Квадрат

  4. Правильный пятиугольник.

Решение.

Исполнитель Черепашка прочертит на экране 5 линий, угол между соседними из которых будет равен 72(=360/5). Поэтому в результате получится правильный пятиугольник, что соответствует варианту ответа №4.

Ответ: 4.

Практическое задание

I. Используя оператор цикла с предусловием найти произведение первых N:

II. Используя цикл с параметром найдите:

вариант № 1,3.
Наименьшее двухзначное число, сумма кубов цифр которого равна 730.
вариант № 2,4.
Наибольшее двухзначное число, сумма кубов цифр которого равна 730.

III. Используя цикл с постусловием найдите сумму и произведение

вариант № 1.
Целых положительных чисел больших 13 и меньших 100 и кратным 4.
вариант № 2.
Целых положительных чисел больших 20, меньших 70 и кратным 3.
вариант № 3.
Целых положительных чисел больших 28, меньших 100 и кратным 13.
вариант № 4.
Целых положительных чисел больших 47, меньших 100 и кратным 11.

Контрольные вопросы

        1. Как понимаете «По алгоритму выполнить работу»?

        2. Что называют служебными словами в алгоритмическом языке?

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

Практические занятие №2 «Проектирование программы с использованием операций языка»

Тема программы: Технология структурного программирования.

Цель работы: отработать навыки в проектировании программ.

Время выполнения: 2 часа

Теоретические основы

Основные этапы проектирования программ

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

2. Обоснованный выбор средств разработки (программирования). Разрабатываются форматы ввода исходных данных и отображения результатов.

3. Выбор метода решения задачи. Анализ возможности использования ранее разработанного и доступного для программиста ПО.

4. Разработка алгоритма решения задачи. Декомпозиция задачи на подзадачи. Определение последовательности решения подзадач. Разработка структуры программы.

5. Кодирование средствами выбранного языка программирования.

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

7. Тестирование программы. Разработка тестов и контрольных примеров. Сопоставление реальных и ожидаемых результатов.

8. Отладка программы в случае обнаружения ошибок. Локализация обнаруженных ошибок. Коррекция ошибок. Возврат к этапу тестирования.

9. Разработка документации. Текстовое описание программы. Разработка инструкций пользователю – лицу, применяющему разработанную программу в своей работе. Разработка инструкций по эксплуатации, содержащих информацию, требующуюся программистам, ответственным за нормальное функционирование программы.

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

11.Промышленная эксплуатация. Сопровождение программы. Обработка требований к новым версиям программы.

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

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

Такие комплексы, как правило, включают следующие программные модули.

  • Текстовые редакторы, служащие для создания текстов исходных программ.

  • Компиляторы, предназначенные для перевода исходного текста на входном языке в язык машинных кодов.

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

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

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

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

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

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

Таблица 2

Вариант

Функция

Условие

Исходные данные

Диапазон и шаг изменения аргумента

1









2









3









4









5









6









7









8










9









10









11









12









13









14









15










2. Выполнить программу на ЭВМ и протестировать все ветви алгоритма.
Задание Б.

1. Модифицировать программу таким образом, чтобы вычислялось многократно значение функции при изменении аргумента в указанном диапазоне и с заданным шагом (табл. 2). Организовать вывод значения аргумента и вычисленного значения функции в виде таблицы.
ТАБЛИЦА ФУНКЦИИ Y(X)
X Y

******* *******

******* *******

2. Выполнить на ЭВМ модифицированную программу.

Пример выполнения работы

Задание А. Вычислить на ЭВМ значение функции

для a = 1,3; b = 1,29; t = 0,38.

Схема алгоритма решения представлена на рис.2а. Блоки 3,5,7 осуществляют проверку условия - at меньше, равно или больше единицы – и в зависимости от результата сравнения направляют вычисления по одной из ветвей - 4, 6 или 8. Блок 9 выводит на печать полученное значение функции S совместно с введенными исходными данными

Представленная схема алгоритма не является единственной. Число проверок можно сократить до двух (рис.2б).

Программа, реализующая схему алгоритма, представленную на рис.2б, имеет вид:

PROGRAM LAB2A(INPUT,OUTPUT);

{Лабораторная работа 2А}

{Студент группы Г-11 Иванов А.В.}

VAR

A,B,T,S :REAL;

BEGIN

WRITELN('Введите A,B,T');

READ(A,B,T);

S:= A*T+B;
IF A*T=1 THEN S:=COS(A*T);

IF A*T>1 THEN S:=EXP(-A*T)*COS(A*T);

WRITELN('A= ',A:8:3,' B= ',B:8:3,' T= ',T:8:3);

WRITELN('Результат = ',S:8:3)

END.
Программа на языке

В качестве тестовых наборов исходных данных примем следующие тесты:

1) a=1, b=1, t=0,5, s = 1* 0,5 + 1= 1,5;

2) a=1, b=1, t=1, s = cos(1)= 0,5403;

3) a=2, b=1, t=1, s = e 5-2 0 cos(2)= - 0,0563.


начало

a,b,c

at<1

S=at+b

at=1

S=cos at

at>1

a,b,t,s

конец

да

нет

да

нет

да

нет

начало

a,b,c

S=at+b

at=1

S=cos at

at>1

a,b,t,s

конец

да

нет

да

нет

Рис. 2б

Рис. 2а
ЗАДАНИЕ Б.

Вычислить на ЭВМ значение функции, указанной в задании А при изменении аргумента t в диапазоне t 7е 0[0,1;2,1] с шагом 0,1. Вывод значений t и s выполнить в виде таблицы.

Схема алгоритма решения приведена на рис. 3а. Блоки 5,6 выполняют собственно расчет значений функции с выдачей их на печать. Это рабочая часть цикла. Блоки 4,7,8 являются вспомогательными и служат для организации циклического повторения рабочей части цикла. Блок 4 задает начальное значение параметра цикла t, т.е. осуществляет подготовку цикла. Блок 7 вычисляет текущее значение параметра цикла, увеличивая

значение аргумента (параметра цикла) на величину заданного шага. Блок 8 проверяет условие окончания цикла. Для печати заголовка таблицы служит блок 3.

Для цикла с известным числом повторений программа получается более компактной и наглядной, если для его организации использовать оператор цикла, который выполняет функции блоков 4,7,8.


заголовок

Рис. 3б

конец

t,S

S=f(t)

начало

нет

заголовок

конец

t,S

S=f(t)

начало
Схеме алгоритма решения с использованием блока модификации (цикла) представлена

на рис.3б.


Рис. 3a



Программа, реализованная в соответствии со схемой алгоритма

(рис.3б), имеет вид:
PROGRAM LAB2B;

{Лабораторная работа 2Б}

{Студент группы Г-11 Иванов А.В.}

VAR

A,B,T,S,T0,Tk,dT :REAL;

BEGIN

WRITELN('Введите A,B,T0,Tk,dT');

READ(A,B,T0,Tk,dT);

WRITELN('ТАБЛИЦА ФУНКЦИИ S(T)');

WRITELN(' T S(T) ');

t:=T0;

REPEAT

S:= A*T+B;

IF A*T=1 THEN S:=COS(A*T);

IF A*T>1 THEN S:=EXP(-A*T)*COS(A*T);

WRITELN(T:10:3,' ',S:10:3);

T:=T+dT

UNTIL T>Tk

END.
Контрольные вопросы
1. Что такое вычислительный процесс разветвляющейся структуры? Как организовать ветвление вычислений: а) на две ветви; б) на три ветви?

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

3. Какие действия выполняются оператором перехода?

4. Составить последовательность операторов для вычисления величины z=0, если x<-2; z=1, если -2  7, 0 x < 2; z=-1, если x>2.

5. Зачем необходимо при отладке программы тестировать все ветви алгоритма?

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

7. Указать назначение и правила организации цикла.

8. Перечислить возможные способы организации цикла с заданным числом повторений в изучаемом языке программирования.
Лабораторная работа №1. «Организация вывода данных на экран». «Организация ввода данных в программу».

Тема программы: Технология структурного программирования.

Цель работы: выработать практические навыки использования системы программирования Borland Pascal или Delphi, научиться создавать, вводить, отправлять на выполнение и исправлять простейшие программы на языке Паскаль, познакомиться с диагностическими сообщениями компилятора об ошибках на примере программ, реализующих линейные алгоритмы; отработать навыки в применении операторов ввода и вывода данных.

Время выполнения: 2 часа.

Теоретические основы

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

Перед выполнением работы необходимо ознакомиться с теоретическим материалом по темам «Описание языка Паскаль», «Простые операторы. Ввод/вывод данных».

Пример. Определить расстояние на плоскости между двумя точками с заданными координатами M1(x1,y1) и M2(x2,y2).

Решение задачи.

В этом примере проведем полный разбор решения задачи.

Математическая модель: расстояние на плоскости между двумя точками M1(x1,y1) и M2(x2,y2) высчитывается по формуле:

Составим блок-схему алгоритма, а затем уточним содержимое блоков "Вычисление расстояния" и "Вывод расстояния" (см. рис.1):


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

program example1;

var x1, x2, y1, y2: Integer;

d:Real;

begin

Writeln('Эта программа вычисляет расстояние между двумя точками на плоскости');

Writeln('Введите координаты двух точек:');

Write('x1= '); Readln(x1);

Write('y1= '); Readln(y1);

Write('x2= '); Readln(x2);

Write('y2 ='); Readln(y2);

d:=sqrt(sqr(x2-x1)+sqr(y2-y1));

Writeln('d= ',d:6:2);

Writeln('нажмите Enter для завершения работы программы');

Readln;

end.

Варианты заданий

Задание 1. Даны x, y. Составить программу вычисления значения выражения:

a)



b)



c)



d)



Задание 2. Составить программу для решения следующей задачи:

  1. Дана длина ребра куба. Найти объем куба и площадь его боковой поверхности.

  2. Известна длина окружности. Найти площадь круга, ограниченного этой окружностью.

  3. Вычислить высоту треугольника, опущенную на сторону а, по известным значениям длин его сторон a, b, c.

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

Задание 3. Вывести значение true, если приведенное высказывание для предложенных исходных данных является истинным, и значение false в противном случае (все числа, для которых не указано иное, являются действительными):

  1. данное число x принадлежит отрезку [-a, a];

  2. данное число x не принадлежит интервалу (a, b);

  3. данное целое число x является нечетным;

  4. данное число x является корнем уравнения: ax2+bx+c=0;

Дополнительные задания

  1. Ученик начал решать задачи данного урока программирования, когда электронные часы показывали h1 часов и min1 минут, а закончил, когда было h2 часов и min2 минут. Составьте программу, позволяющую определить, сколько времени (в часах и минутах) ученик решал эти задачи.

  2. Дано действительное число а. Не пользуясь никакими другими операциями, кроме умножения, получить: а) а4 за две операции; б) а6 за три операции; в) а7 за четыре операции; г) а8 за три операции.

Контрольные вопросы

  1. Каковы назначение и возможности системы программирования?

  2. Как запустить программу на трансляцию и выполнение?

  3. Как обозначается начало и конец программы?

  4. Из каких разделов состоит программа на языке Паскаль?

  5. Как в языке Паскаль осуществляется вывод на экран?

  6. Для чего предназначен оператор присваивания?

  7. Как вывести на экран значение переменной?


Лабораторная работа №2. «Организация математических операций в программе и операции преобразования типа в программе»

Тема программы: Технология структурного программирования.

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

Время выполнения: 2 часа.

Теоретические основы

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

Приоритет операции

Условный знак

Выражение

Название операции

Тип переменных в выражении

Тип результата выполнения опрации

 

 

 

ЛОГИЧЕСКИЕ ОПЕРАЦИИ

1

not

not A

Логическое "не"

Логический целый

Логический целый

2

and

A and b

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

Логический целый

Логический целый

3

or

A or B

Логическое "или"

Логический целый

Логический целый

3

xor

A xor B

Логическое исключающее "или"

Логический целый

Логический целый

 

 

 

МАТЕМАТИЧЕСКИЕ ОПЕРАЦИИ

2

*

x*y

Умножение

Целый

Целый при умножении

2

/

x/y

Деление

Смешанный вещественный

Целых чисел, иначе вещественный

2

div

N div M

Деление

Цлый

Целый

2

mod

N mod M

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

Целый

Целый

3

+

x + y

Сложение

Целый вещественный

Целый при операции с целыми числами, иначе вещественный

 

 

 

ОПЕРАЦИИ СРАВНЕНИЯ

4

=

x=y

Равно

Число=число

Логический

4

<>

X<>y

Не равно

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

Логический

4

>

x>y

Больше

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

Логический

4

<

x

Меньше

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

Логический

4

>=

x>=y

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

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

Логический

4

<=

x<=y

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

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

Логический


Отметим, что операции в скобках имеют высший приоритет, т. е. сначала выполняются операции в скобках, в том числе вычисление аргументов и значения функции. Операции одинакового приоритета выполняются слева направо, например a/c*b соответствует (a/c)*b.

Приоритет операции

Условный знак

Выражение

Название операции

Тип переменных в выражении

Тип результата выполнения операции

 

 

 

СПЕЦИФИЧЕСКИЕ ОПЕРАЦИИ

1

@

@x

Адрес переменной

Любой

Указатель

2

chl

y chl n

Сдвиг влево

Целый

Целый

2

shr

y chr n

Сдвиг вправо

Целый

Целый

2

*

c * D

Пересечение

Множество

Множество

3

+

c + d

Обьединение

Множество

Множество

3

-

c - d

Вычитание

Множество

Множество

3

+

s + t

Сложение

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

Строковый

4

in

e in d

Вхождение в множество

Элемент множество

Логический


Под смешанным типом переменных в выражении подразумевается операция с целым и вещественным типом переменных.