Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ПРАКТИЧЕСКИМ ЗАНЯТИЯМ Методические указания к практическим занятиям сод

Работа добавлена на сайт samzan.net:


2. МЕТОДИЧЕСКИЕ  УКАЗАНИЯ  К ПРАКТИЧЕСКИМ ЗАНЯТИЯМ

Методические указания к практическим занятиям содержат примеры решения восьми типовых задач. Решение состоит в построении по индивидуальному заданию (условию задачи) схемы алгоритма и написании текста программы на языке Borland Pascal 7.0 (BP). Условия задач берутся из соответствующих таблиц, приведенных в приложении. В приложения вынесены и схемы алгоритмов типовых задач.

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

Для некоторых задач приводятся дополнительные разъяснения по постановке задачи.

Зачет по практическому занятию предполагает успешное выполнение следующих действий:

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


Задача 1

1. Условие: Составить схему алгоритма и написать ВР-программу вычисления значения заданной функции по задаваемому в программе значению аргумента (см. табл. П. 1). Результат вычислений вывести на экран.

Пример: функция – sin2x; значение аргумента – 0.1.

2. Текст программы:

PROGRAM z1;

CONST

k=2;      (* поименованная константа *)

VAR

x,y:REAL; (* аргумент и функция *)

BEGIN

х:=0.1;

y:=SIN(k*x);

WRITE(x, y);

END.

3. Схема алгоритма задачи 1

Задача 2

1. Условие: Составить схему алгоритма и написать ВР-программу вычисления значения заданной функции (см. табл. П. 1) для значения аргумента, вводимого с клавиатуры. Значение функции вычисляется и выводится на экран, если значение аргумента принадлежит интервалу числовой оси от 0 до 1. Если введенное значение аргумента находится вне этого интервала, то программа должна выдать на экран соответствующее сообщение.

Пример: функция – sin2x.

2. Текст программы:

PROGRAM z2;

CONST

k=2;       (* поименованная константа *)

VAR

x,y:REAL;  (* аргумент и функция *)

BEGIN

WRITE(‘Введите значение аргумента — ’);

READ(x);

IF (x>=0) AND (х<=1) THEN

BEGIN

y:=SIN(k*x);

WRITELN(‘x=’,x, ‘y=’,y);

END 

ELSE

WRITELN(‘Значение аргумента вышло за интервал 0-1’);

END.

3. Схема алгоритма задачи 2

 


Задача 3

1. Условие: Составить схему алгоритма и написать ВР-программу вычисления и вывода на экран дисплея таблицы значений заданной функции (см. табл. П. 1) при изменении значения аргумента в интервале от 0 до 1 с шагом 0.1.

Пример: функция – sin2x.

Вид таблицы:

x

y

}  заголовок

0.0

0.541

таблица

0.1

0.123

·   ·   ·

1.0

0.789

}  окончание

2. Тексты программ:

PROGRAM z31;

(* 1-й способ с оператором цикла FOR *)

CONST

k=2; (* поименованная константа *)

str=‘*************************************’;

   (* строка символов *)

VAR

x,y:REAL; (* аргумент и функция *)

i:INTEGER; (* переменная цикла *)

BEGIN

WRITELN(str);

WRITELN(‘*        x         *        у        *’);

WRITELN(str);

х:=0.0;

FOR i:=1 TO 11 DO 

BEGIN

y:=SIN(k*x);

WRITELN (‘*’, x:17:8,‘*’, y:18:8,‘*’);

x:=x+0.1;

END;

WRITELN (str);

END.


3а)
 Схема алгоритма задачи 3 (1-й способ (цикл FOR))

PROGRAM z32;

(* 2-й способ с оператором цикла WHILE *)

CONST

k=2;       (* поименованная константа *)

str=‘*************************************’;

          (* строка символов *)

VAR 

x,y:REAL;  (* аргумент и функция *)

BEGIN

WRITELN(str);

WRITELN(‘*       x         *        у         *’);

WRITELN(str);

х:=0.0;

WHILE х<1.1 DO 

BEGIN

y:=SIN(k*x);

WRITELN(‘*’, x:17:8, ‘*’, y:18:8, ‘*’);

x:=x+0.1;

END;

WRITELN(str);

END.

3б) Схема алгоритма задачи 3 (2-й способ (цикл WHILE))

PROGRAM z33;

 (* 3-й способ с оператором цикла REPEAT *)

CONST

k=2;  (* поименованная константа*)

str=‘*************************************’;

 (* строка символов *)

VAR    

x,y:REAL;  (* аргумент и функция *)

BEGIN

WRITELN(str);

WRITELN(‘*       x         *        у         *’);

WRITELN(str);

х:=0.0;

REPEAT

y:=SIN(k*x);

WRITELN(‘*’, x:17:8, ‘*’, y:18:8, ‘*’);

x:=x+0.1;

UNTIL x>l.l;

WRITELN(str);

END.

3в) Схема алгоритма задачи 3 (3-й способ (цикл REPEAT))

Задача 4

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

Пример: значение переменной – 0.1;

Формула общего члена ряда  

2. Тексты программ:

PROGRAM z41;  (* 1-й способ с оператором перехода                  GOTO *)

CONST

k=2;        (* поименованная константа *)

LABEL 1;    (* метка *)

VAR

x,s,a:REAL; (* переменная, сумма, элемент суммы *)

i,j,znak,fakt:INTEGER; (* номер  элемента  суммы,                 переменная цикла, знак, факториал *)

BEGIN

s:=0.0;

i:=0;

znak:=1;

x:=0.1;

1: i:=i+1;

znak:=znak*(-1);

fakt:=1;

FOR j:=1 TO (k*i+1) DO fakt:=fakt*j;

a:=znak*EXP((k*i+1)*LN(k*x))/fakt;

s:=s+a;

IF ABS(a)>0.0001 THEN GOTO 1;

WRITE(‘При a= ’,a:9:7, ‘сумма= ’,s:9:7);

WRITELN(‘на’ 4:2,‘-ой итерации’);

END.

3а) Схема алгоритма задачи 4 (1-й способ (опера-торы IF и GOTO))

PROGRAM z42;

(* 2-й способ с оператором цикла WHILE *)

CONST

k=2;        (* поименованная константа *)

VAR

x,s,a:REAL; (* переменная, сумма, элемент суммы *)

i,j,znak,fakt:INTEGER;   (* номер элемента суммы,

             переменная цикла, знак, факториал *)

BEGIN

s:=0.0;

i:=0;

znak:=1;

x:=0.1;

a:=1;

WHILE ABS(a)>0.0001 DO 

BEGIN

i=i+1;

znak:=znak*(-1);

fakt:=1;

FOR j:=1 TO (k*i+1) DO

fakt:=fakt*i;

a:=znak*EXP((k*i+1)*LN(k*x))/fakt;

s:=s+a;       

END;

WRITE(‘При a= ’,a:9:7, ‘сумма= ’,s:9:7);

WRITELN(‘на ’i:2,‘-ой итерации’);

END.

3б) Схема алгоритма задачи 4 (2-й способ (цикл WHILE))

PROGRAM z43;

(* 3-й способ с оператором цикла REPEAT *)

CONST

k=2;        (* поименованная константа *) 

VAR

x,s,a:REAL; (* переменная, сумма, элемент суммы *)

i,j,znak,fakt:INTEGER;   (* номер элемента суммы,                 переменная цикла, знак, факториал *)

BEGIN

s:=0.0;

i:=0;

znak:=1;

x:=0.1;

REPEAT

i:=i+1;

znak:=znak*(-1);

fakt:=1;

FOR j:=1 TO (k*i+1) DO

fakt:=fakt*j;

a:=znak*EXP((k*i+1)*LN(k*x)/fakt;

s:=s+a:

UNTIL ABS(a)>0.0001;

WRITE(‘При а= ’,а:9:7, ‘сумма= ’,s:9:7);

WRITELN(‘на ’ i:2,‘-ой итерации’);

END.

3в) Схема алгоритма задачи 4 (3-й способ (цикл REPEAT))

PROGRAM z44; (* 4-й способ с операторами описания                 и вызова процедур и функций *)

CONST 

k=2;  (* поименованная константа )

VAR 

x,s,a,i:REAL; (* переменная, сумма, элемент суммы,

                номер элемента суммы *)

i1:INTEGER;  (* целый тип номера элемента суммы *)

FUNCTION fakt(f:INTEGER):INTEGER;    (* функция                                         факториал *)

VAR fak,j:INTEGER;        (* локальные переменные *)

BEGIN

fak:=1;

FOR j:=1 TO f DO

fak:=fak*j;

fakt:=fak;

END;

PROCEDURE summa(VAR,s:REAL; b:REAL);  (* процедура                                          суммы *)

BEGIN

s:=s+b;

END;

FUNCTION stepen(osn:REAL;step:INTEGER):RЕАL;                                (* функция степени *) 

VAR k:INTEGER;  (* локальные*)

st:REAL;    (* переменные *)

BEGIN

st:=1.0;

FOR k:=1 TO step DO

st:=st*osn;

stepen:=st;

END;

BEGIN 

s:=0.0;

i:=0;

x:=0.1;

REPEAT

summa(i,1.0);

i1:=TRUNC(i);

a:=stepen(-1.0,i1)* stepen(k*x,k*i1+1)/fakt(k*i1+1);

summa(s,a);

UNTIL ABS(a)<0.0001;

WRITE(‘При a= ’,a:9:7, ‘сумма= ’,s:9:7);

WRITELN(‘на ’,i1:2,‘-ой итерации’);

END.

3г) Схема  алгоритма  задачи  4  (4-й  способ (FUNCTION и PROCEDURE))

Функция FAKT

Процедура SUMMA

Функция STEPEN


Задача 5

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

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

2. Текст программы:

PROGRAM z5;

VAR mas:ARRAY[1..10] OF INTEGER;        (* массив *)

i,kol:INTEGER;             (* переменная цикла,                                   количество *)

BEGIN

WRITELN(‘Введите значения элементов массива’);

FOR i=1 TO 10 DO 

READ(mas[i]);

kol:=0;

FOR i:=1 TO 10 DO 

IF mas[i]>0 THEN kol:=kol+1;

IF kol>0 THEN

WRITELN(‘Кол-во положительных элементов в массиве =’,kol:2)

ELSE

WRITELN(‘Положительных элементов в массиве нет’)

END.


3.
 Схема алгоритма задачи 5

Задача 6

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

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

2. Текст программы:

PROGRAM z6;

VAR mas:ARRAY[1..3,1..3] OF INTEGER;    (* массив *)

i,j,s1,s2:INTEGER; (* 2 индекса циклов, 2 суммы *)

BEGIN

WRITELN(‘Введите значения элементов массива’);

FOR i:=1 TO 3 DO 

FOR j:=1 TO 3 DO

READ(mas[i,j]);

s1:=0;

s2:=0;

FOR i:=1 TO 3 DO 

BEGIN

j:=3-(i-1);

sl:=s1+mas[i,i];

s2:=s2+mas[i,j];

END;

IF s1>s2 THEN

WRITELN(‘Сумма элементов главной диагонали’)

ELSE

IF s2>s1 THEN

WRITELN(‘Сумма элементов обратной диагонали’)

ELSE

WRITELN(‘Суммы элементов диагоналей равны’);

END.

3. Схема алгоритма задачи 6

Задача 7

1. Условие: Составить схему алгоритма и написать ВР-программу обработки массива записей (вид обработки см. в табл. П. 3), каждая из которых содержит информацию об одном студенте. Расположение информации в каждой записи следующее:

  •  фамилия студента;
  •  год рождения;
  •  оценка сдачи 1-го экзамена;
  •  оценка сдачи 2-го экзамена;
  •  оценка сдачи 3-го экзамена;
  •  количество часов пропущенных занятий.

Результат вывести на экран.

Пример: вид обработки заключается в определении списка студентов, получивших в сумме по трем экзаменам 14 баллов.

2. Текст программы:

PROGRAM z7;

TYPE st=RECORD    (* запись*)

fam:STRING;    (* фамилия *) 

godr:INTEGER;   (* год рождения *)

otm:ARRAY[1..3] OF INTEGER; (* массив отметок *)

prop:INTEGER;   (* кол-во пропусков *)

END;

VAR  gr:ARRAY[1..5] OF st;  (* массив записей *)

i,j,ind: INTEGER; (* 2 индекса циклов,индикатор *)

BEGIN

WRITELN(‘Введите информацию о студентах’);

FOR i:=1 TO 5 DO 

BEGIN 

READ(gr[i].fam);

READ(gr[i].godr);

FOR j:=1 TO 3 DO READ(gr[i].otm[j]);

READLN(gr[i].prop);

END;

ind:=0;

FOR i:=1 TO 5 DO

IF (gr[i].otm[1]+gr[i].otm[2]+gr[i].otm[3])=14 THEN 

BEGIN 

IF md=0 THEN 

BEGIN 

WRITELN(‘Список студентов, получивших’);

WRITELN(‘14 баллов в сессию’);

END;

WRITELN(gr[i].fam);

ind:=1;

END;

IF ind=0 THEN 

WRITELN(‘Студентов, получивших 14 баллов в сессию нет’);

END.

3. Схема алгоритма задачи 7

Задача 8

1. Условие: Составить схему алгоритма и написать ВР-программу, которая:

  •  вводит с клавиатуры последовательность целых чисел;
  •  размещает их в файле;
  •  считывает их из файла в одномерный массив и обрабатывает его (вид обработки см. в табл. П. 2).

Результат вывести на экран дисплея.

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

2. Текст программы:

PROGRAM z8;

VAR mas:ARRAY[1..10] OF INTEGER;       (* массив *)

i,kol,buf:INTEGER; (* индекс цикла, количество,      буфер *) 

f:TEXT;  (* файл *)

BEGIN

ASSIGN(f,‘f.txt’);

REWRITE(f);

WRITELN(‘Введите значения элементов массива’);

FOR i:=1 TO 10 DO 

BEGIN 

READ(buf);

WRITELN(f,buf);

END;

RESET(f);

kol:=0;

FOR i:=1 TO 10 DO 

BEGIN

READLN(f,mas[i]);

IF mas[i]>0 THEN kol:=kol+1;

END;

CLOSE(f);

IF kol>0 THEN

WRITELN(‘Кол-во положительных эл-ов в массиве =’,kol:2)

ELSE

WRITELN(‘Положительных элементов в массиве нет’)

END.

3. Схема алгоритма задачи 8

Приложения

Основные символы схем алгоритмов

Выполнение схем алгоритмов регламентируется ГОСТ 19.008-80 «ЕСПД.  Схемы алгоритмов и программ.  Правила выполнения».

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

процесс – выполнение операций или  группы операций, в результате которых изменяются значения, форма представ-ления или расположение данных;

решение – выбор дальнейшего  направ-ления выполнения алгоритма в зависимости от заранее определенных условий;

модификация – выполнение операций, меняющих команду или группу команд, изменяющих программу;

предопределенный процесс – ис-пользование ранее созданных и отдельно описанных алгоритмов;

ввод-вывод – преобразование данных в форму, пригодную для обработки  (ввод) или отображения результатов обработки (вывод);

пуск-останов – начало,  конец,  пре-рывание процесса обработки данных

Таблица П. 1

№ п/п

Значение переменной

Заданное выражение

Формула общего члена ряда

1

0.9

exp(х)

2

0.6

cos(x)

3

0.5

4

0.2

5

0.2

6

0.4

7

0.7

8

0.4

9

0.4

10

0.6

11

0.3

12

0.2


Таблица П. 2

№ п/п

Результат обработки

1

Сумма всех положительных элементов массива

2

Количество элементов массива, больших 50

3

Среднее арифметическое значение всех отрицательных элементов массива

4

Сумма положительных элементов массива, имеющих нечетные номера

5

Количество элементов массива, значения которых делятся нацело на 2

6

Элементы массива, значения которых больше 50

7

Сумма всех отрицательных элементов массива, имеющих четные номера

8

Количество элементов массива, имеющих нечетные значения

9

Количество элементов массива, значения которых лежат в диапазоне от 25 до 75

10

Сумма элементов массива, значения которых по модулю меньше 25

11

Элементы массива, имеющие четные значения

12

Количество элементов массива, значения которых кратны 10

Таблица П. 3

№ п/п

Результат обработки

1

Фамилия самого старшего студента

2

Список отличников

3

Список студентов, не имеющих пропусков занятий

4

Список хорошистов

5

Список двоечников

6

Фамилия студента, имеющего наибольшее количество пропусков занятий

7

Список студентов, которым в этом году исполняется 20 лет

8

Средний бал сдачи студентами первого экзамена

9

Средний бал сдачи студентами сессии

10

Список студентов, получивших тройки по третьему экзамену

11

Средний возраст студентов группы

12

Список однофамильцев, при условии, что фамилия-эталон вводится с экрана дисплея




1. Ближнее зарубежье - сфера жизненных интересов России
2. в одной улыбке состоит то что называют красотою лица- если улыбка прибавляет прелести лицу то оно прекрас
3. отбор наиболее подходящих кандидатов при приеме на работу
4. О Конституционном Суде Российской Федерации пункт 1 параграфа 24 настоящего Регламента; 2 по вопросам при
5. Особенности управления компаниям
6. ТЕМА І ЗНАЧЕННЯ ОСОБЛИВОЇ ЧАСТИНИ КРИМІНАЛЬНОГО ПРАВА
7. словесная разведка тактический приём в ходе которого участники между собой обсуждают ход обыска а в это
8. на тему- Стратегия как системный подход к управлению перспективным развитием предприятия
9. Общие свойства информации
10. республиканская форма правления; 2 суверенитет РФ; 3 права и свободы личности; 4 источник власти много
11. производители. Главные районы и центры производства; факторы обусловившие размещение отрасли именно в э.html
12. Драматычныя і трагічныя калізіі ў беларускіх народных баладах
13. Способы управления рисками БИЛЕТ2 Природа и сущность управленческого решения Количеств
14. Тема- Транспортные и погрузочноразгрузочные работы Вопросы- 1
15. Статья- Включения ультрамафитов в базальтоидах островных дуг
16. Логические задачи и упражнения как средства развития мыслительных операций у старших дошкольников
17. В Совете Европы отдается предпочтение осуществлению борьбы с преступностью посредством международных дого.
18. Нефть
19. ЦНС Перечислите инфекционные заболевания ЦНС- спинная сухотка менингит энцефалит
20. правовая норма это правило поведения субъектов земельных отношений которым они должны руководствоватьс