Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка (исходник от Березкиной С.Ю.).doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
1 Мб
Скачать
☆

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

№ п.п

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

k

№ п.п

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

k

5

7

10

9

8

12

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

№ п.п

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

k

№ п.п

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

k

10

6

9

8

7

5

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

№ п.п

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

k

№ п.п

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

k

5

7

8

6

6

9

7

10

Лабораторная работа №6 Программы для обработки одномерных массивов

Цель работы: приобрести практические навыки в составлении программ для обработки одномерных массивов.

Задание

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

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

  3. Произвести на ЭВМ расчеты по разработанной программе для исходных данных приведенных в табл. 6.1.

  4. Получить распечатку программы и результатов расчета.

  5. Оформить отчет по лабораторной работе. Указания по выполнению работы

Массивом называется упорядоченная последовательность величий (элементов массива), обозначаемая одним именем. В одномерном массиве положение элемента определяется его номером или индексом массива. Для обозначения элементов одномерного массива в Бейсике служат переменные с индексом вида A(n), где A - имя переменной (массива) образуется с помощью буквы и цифры; n – индекс переменной (массива) может обозначаться числом, простой переменной или арифметическим выражением. Начинаются индексы с 0, наибольшее значение индекса 255. Например, A(4) – четвертый элемент массива A; B1(k) – k-й элемент массива B1.

Язык Бейсик не всегда требует объявления массива при использовании его в программе. Если массив содержит 11 элементов, то достаточно одного упоминания имени переменной, чтобы Бейсик автоматически выделил ячейки в памяти ПЭВМ для массива с 11 элементами и присвоил им нулевые значения. Первый элемент массива по умолчанию имеет ноль, а не 1, поэтому последний элемент будет иметь порядковый номер 10.

Если вы хотите работать с большими массивами, необходимо уведомить Бейсик с помощью оператора DIM. Общая форма данного оператора следующая:

DIM имя1 (индекс1) [, имя2(индекс2), …]

где имя1, имя2 – имена массивов переменных; индекс1, индекс2 – размерность массива, выражаемая следующим образом:

[нижний TO] верхний [, нижний TO] верхний …,

где нижний – нижнее значение индекса массива (по умолчанию ноль); верхний – верхнее значение индекса массива.

Оператор DIM резервирует в памяти ЭВМ место для описываемого массива. При описании одним оператором DIM нескольких массивов их описания располагаются в строке оператора через запятую. Например, оператор

DIM А(3),В(2)

резервирует в памяти ЭВМ места для четырех элементов А(0),А(1), А(2),А(3) массива А и трех элементов В(0),В(1),В(2) массива В.

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

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

В качестве примера на рис.6.1 приведены алгоритм и программа формирования одномерного массива В из элементов массива А размером n, удовлетворяющих условию .

Программа составлена в общем виде и может использоваться для массивов размером до 20, который задан оператором DIM в строке 20. Размер обрабатываемого массива А вводится в переменную N.

Операторы первого цикла обеспечивают поэлементный ввод массива А. При этом оператор INPUT выполняется N раз (по числу элементов массива) и при каждом его выполнении в цикле значение элемента массива вводится с клавиатуры. Оператор PRINT каждый раз выводит на дисплей запрос о вводе очередного элемента массива.

Операторы второго цикла с целью контроля ввода исходного массива А обеспечивают вывод его элементов на дисплей в плотном формате в одну строку с заголовком МАССИВ А:. Оператор PRINT без списка вывода осуществляет возврат каретки после вывода последнего элемента и выхода из цикла Выбор элементов массива А, удовлетворяющих заданному условию формирование из них и вывод элементов массива В совмещены в целях сокращения программы в третьем цикле. Управляющей переменной I этого цикла является индекс массива А. Индексом формируемого массива B служит переменная К, значение которой до входа в цикл задается равным нулю и увеличивается на единицу при каждом выполнении условия А(I)>С, проверяемого в цикле условным оператором IF. Вывод элементов массива В осуществляется оператором PRINT в плотном формате в одну строку с заголовком МАССИВ В.

REM Программа формирования массива

DIM А(20),В(20)

REM Ввод исходных данных

PRINT “Введите значение С=”;

INPUT С

PRINT “Введите размер массива A N=”

INPUT N

FOR 1=1 ТО N

PRINT “Введите значение A(“;I;”)=”;

INPUT A(I)

NEXT I

REM Контрольный вывод массива A

PRINT “Массив A:”;

FOR I=1 TO N

PRINT А(I);

NEXT I

PRINT

REM Формирование и вывод массива B

PRINT ”Массив В:”;

К=0

FOR I=1 ТО N

IF A(I) > C THEN

К=К+1

B(К)=А(I)

PRINT В(К);

END IF

NEXT I

PRINT

END

Рис.6.1. Пример программирования алгоритма формирования одномерного массива: а - схема алгоритма; б - его программная реализация.

Таблица 6.1

Варианты заданий к лабораторной работе № 6

№ п.п

Составить программу обработкиодномерного массива А размером n

n

k

Вычислить произведение всех элементов

15

-

Вычислить сумму всех элементов

14

-

Удалить k-й элемент и сформировать новый массив размером n-1

11

6

Включить дополнительный элемент в k-ю позицию и сформировать новый массив размером n+1

17

3

Переставить местами k-й и (k+1)-й элементы и образовать новый массив

9

4

Определить максимальный элемент

20

-

Определить минимальный элемент

25

-

Определить количество положительных элементов

22

-

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

30

-

Сформировать новый массив, состоящий из положительных элементов

19

-

Сформировать новый массив, состоящий из отрицательных элементов

30

-

Определить максимальный из отрицательных элементов

16

-

Определить минимальный из положительных элементов

27

-

Определить число элементов, превосходящих по величине первый элемент

29

-

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

18

-

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

20

-

Сформировать новый массив В, элементы которого ,

19

3,14

Сформировать новый массив В, элементы которого

, и ,

16

5,74

Выполнить сортировку массива так, чтобы

10

-

Выполнить сортировку массива так, чтобы

12

-

№ п.п

Из двух одномерных массивов А и В одного размера n сформировать массив C, элементы которого равны:

n

k

,

27

3,14

,

29

1,57

,

23

6,28

,

15

2,56

,

20

8,34

,

27

-

,

29

-

,

23

6,28

,

15

2,56

,

20

8,34

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

Лабораторная работа №7

Программы для обработки двумерных массивов

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

Задание

1. Изучить опоратор описания массивов языка Бейсик, правописа­ние индексированных переменных двумерных массивов и особен­ности их применения. г. Для заданного варианта составить схему алгоритма и реализую­щую его программу для обработки двумерного массива.

  1. Произвести на ЭВМ расчеты по разработанной программе для ис­ходных данных, приведенных в табл. 7.1.

  2. Получить распечатку программы и результатов расчета.

  3. Оформить отчет по лабораторной работе..

Указания по выполнению работы

Алгоритмический язык Бейсик кроме одномерных массивов, рас­смотренных в лабораторной работе №6, допускает использование двумерных массивов. Положение элемента в двумерном массиве оп­ределяется двумя номерами, или индексами массива, обозначающими номер строки и номер столбца, на пересечении которых он распо­ложен. Для обозначения элементов двумерного массива в Бейсике служат переменные с индексами вида A(n,m), где А - имя перемен­ной (массива); п,ш - записываемые через запятую индексы пере­менной (массива) - первый индекс обозначает номер строки, вто­рой - номер столбца. Имя переменной двумерного массива и ее ин­дексы образуются так же, как и одномерного массива. Наибольшее допустимое значение индексов двумерного массива (255,255). На­пример, А(3,Ч) - переменная двумерного массива, стоящая в тре­тьей строке и четвертом столбце (нумерация строк и столбцов на- чинается с нуля).

Правила описания двумерных массивов такие же, как одномерных. Например, при описании двух массивов оператор DIM имеет вид

DIM В(4,5), С(5,5)« где верхние границы изменения индексов записываются через запя­тую. Этот оператор резервирует в памяти ЭВМ места для 30 эле­ментов массива В, содержащего 5 строк и 6 столбцов, и 36 эле­ментов массива С, состоящего из 6 строк и 6 столбцов.

Если описание двумерного массива отсутствует, то по умолча­нию максимальное значение каждого из двух индексов par но 10.

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

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

Программа составлена в общем виде и может использоваться для матриц размером 20x20, который задан оператором DIM в строке 20. Размеры обрабатываемой матрицы А вводятся в переменные N и М.

Операторы первого двойного цикла (строки 100-130) обеспечи­вают поэлементный ввод матрицы А по строкам. При этом оператор INPUT (строка 110), являясь телом внутреннего цикла, выполняет­ся (п х т) раз (по числу элементов матрицы) и при каждом его выполнении значение элемента матрицы, вводится с клавиатуры. Опе­ратор PRINT (строка 90) входит в тело внешнего цикла и выводит на дисплей запрос, идентифицирующий номер вводимой строки.

Операторы второго двойного цикла (строки 160-210) осуществ­ляют контрольный вывод матрицы А после ввода ее элементов, опе­ратор PRINT (строка 180), являясь телом внутреннего цикла, вы­полняется (п х т) раз и выводит построчно элементы матрицы А в плотном формате. После вывода строки матрицы и выхода из внут­реннего цикла оператор PRINT без списка вывода (строка 200)

10 REM ПРОГРАММА ТРАНСПОНИРОВАНИЯ МАТРИЦЫ 20 DIM А(20,20),В(20,20) 30 REM ВВОД МАТРИЦЬ' А 40 PRINT 'ВВЕДИТЕ ЧИСЛО СТРОК N='; 50 INPUT N

60 PRINT 'ВВЕДИТЕ ЧИСЛО СТОЛБЦОВ М='; 70 INPUT М 80 FOR 1=1 ТО N

90 PRINT 'ВВЕДИТЕ 'Г-Ю СТРОКУ' 100 FOR J=i ТО М 110 INPUT A(I,J) 120 NEXT J

130 NEXT I

140 REM КОНТРОЛЬНЫЙ ВЫВОД МАТРИЦЫ A 150 PRINT 'МАТРИЦА A' 160 FOR 1=1 TO N 170 FOR J=1 TO M 180 PRINT A(I,J); 190 NEXT J 200 PRINT 210 NEXT I

220 PRINT 'ТРАНСПОНИРОВАННАЯ МАТРИЦА В' 230 FOR.1=1 TO M 240 FOR J=i TO N 250 B(I,J)=A(J,I) 260 PRINT B(I,J); 270 NEXT J 280 PRINT 290 NEXT I 300 END

6)

Рис.7.1. Пример программирования алгоритма транспонирования матрицы: а - схема алгоритма; 6 - его программная реализация.

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

Вычисление элементов транспонированной матрицы В и их пост­рочный вывод совмещены в целях сокращения программы в третьем двойном цикле (операторы в строках 230-280).

Таблица 7.1

Варианта заданий к лабораторной работе № 7

! ft, \ Составить программу обработки ! Исхо; { п/п ! двумерного массива А размером n х тГ п

хные данные J m 1 ■ к 1

! I ! 2 13

4 ! 5 !

! 1 \ Вычислить сушу всех элементов ! 5

5 ! - !

» 2 ! вычислить произведение всех ! 1 \ элементов ! 7

7 i - 1

! 3 ? Вычислить сумму диагональньк !

? элементов 1 9

9 i - '

! 4 ! Вычислить сумму и произведение !

! элементов k-й строки ! 8

8 f 5 !

! 5 1 Вычислить сумму и произведение !

! элементов k-го столбца ! 6

\ i 6 ! 4 f

! 8 ! Сложить кчо и (к+1)~ю строки и ? ? ? ? ! \ сформировать новый массив ! ! ! ! ! размером (n-1) х в \ 10 ! 7 ! 7 !

! 7 ! Сложить k-й и (к~1)~й столбцы и !

! сформировать новый массив ! ! ! размером R X (ш-1) ! 6

8 ! 3 !

1 8 1 Сложить элементы всех строк и ! ! ! сформировать одномерный массив \ У f размером п > * » f 7

9 1 - 1

J 9 ! Удалить k~$ .строку и сформировать 1 ! новый массив размером уьО х ш 1.9

! 8 i 4 i

! 10 * Удалить k-й столбец и сформировать ! ! ! 1 ! новый массив размену n х (ш-1) ! 5 ! 7 ! 2 !

J 11 f Переставить местами k-ю и (к+1)-ю ! ! ?

? строки и'сформировать новый массив ! 5 ! 5 ! 1 !

• 12 ! Переставить местами k-й и (k-D-й \ ! • 1 1 столбцы и сформировать яовый массив! 8 ! Я ' 9 ?

Продолжение табл. 7.1

! 1 1 2 !

3 !

4

! 5 !

1 13 !Определить минимальный элемент, его ! !номер строки и Столбца !

1

5 !

4

t i i - !

! 14 !Определить максимальный элемент, его ! !номер строки и столбца !

f

6 !

8

? I

1 15 !Определить минимальный и максимальный! !, !элементы k-й строки !

f

9 I

7

! \

! 5 I

1 18 {Определить минимальный и максимальный! iэлементы к-го столбца !

!

5 !

9

! 7 !

1 17 !Умножить k-ю строку и (к+1)-й столбец! ! !на число к !

!

9 !

9

! 4 !

! 18 !Разделить к-ю строку и (к-1)-й ! ! !столбец на число к ! 1

!

7 !

7

! i ! 3 ! t

! . 18 'Умножить все элементы массива ! V !на число к !

i

8 !

5

I t

! 4,86! t

! 20 {Разделить все элементы массива !

! !на число к ! »

f

6 !

8

! ! ! 7,35!

! if ! Из двух двумерных массивов А и В ! ! ! размером n х m сформировать массив !- j п/п ! о элементы которого равны: !

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

»

ri

1

ш !

j 21 { с, au+ bu, 1=1,...,л, >1,...,в {

4

I

6 j

, . ■ . i

j 22 ! cie.= au-bu, i=l,...,n, 4«l,...-,m }

8

I

9 ! i

j 23 j с = a b i=l,...,n, j=l,...,m |

• • it \A n ■

9

!

7 ! i

j 24 | cusaw/bi(j, i=l,...,n, j

6

i

9 (

! 25 ! Найти матрицу С, равную произведению! ! матриц А и В* одного размера n х ш !

7

i i

7 i

I

! Примечание. Значения элементов массивов во всех вариантах ! * заданий выбираются произвольно.

Библиографический список

  1. Г. И. Светозарова, А. А. Мельников, А. В. Козловский. Практикум по программированию на языке Бейсик/Под ред. С. В. Емельянова. М.: Наука, 1988. 358 с.

  2. В. П. Дьяконов. Справочник по алгоритмам и программам

на языке Бейсик для персональных ЭВМ. М.: Наука, 1989. 240 с.

  1. В. М. Заварыкин, В. Г. Житомирский,' М. П. Ланчик. Тех­

ника вычислений и алгоритмизация. М.: Просвещение, "1987 160 с

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к лабораторным работам по вычислительной технике и программированию

Составители: Алексей Анатольевич Аллилуев, Виктор Анатольевич Аллилуев

Редактор Н. И. Губарева Корректор С. В. Щедрина

Темплан 1990 г.

Подписано в печать 9.04-90. Формат 60x84 1/16. Бумага тип. № 2. Плос­кая печать (ротапринт). Усл. п. л. 2,09. Уч.-изд. л. 2,25. Усл..кр-отт. 2,09. Тираж 300. Заказ 702. Беоплатно.

Новочеркасский ордена Трудового Красного Знамени политехнический

институт имени Серго Орджоникидзе

Типография Новочеркасского политехнического института.

Адрес института и типографии:

346400, Новочеркасск, ГСП-1, ул. Просвещения, 132.

Составители: А. А. Аллилуев, В. А. Аллилуев

УДК 519.682(076.5)

Методические указания к лабораторным работам но вы­числительной технике и программированию/Новочерк. поли­техи. ин-т. Новочеркасск, 1990. 36 с.

Методические указания предназначены для студентов I курса энергетического факультета специальностей 1001 и 2104, изучающих курс «Вычислительная техника и програм­мирование».

Цель указаний — получение и закрепление начальных - навыков программирования на алгоритмическом языке Бей­сик. В методических указаниях дается описание языка Бейсик применительно к микроЭВМ типа ДВК-3, на которых предусмотрено выполнение лабораторных работ.

Ил. 8. Табл. 5. Библиогр.: 3 назв.

Рецензент канд. техн. наук В. К. Хлебников

Новочеркасский политехнический институт, 1990

Общиe указания

Алгоритмический язык Бейсик является одам аз распространен­ных языков программирования высокого уровня, отличается просто­той, доступностью и используется при организации-диалогового режима человека и ЭВМ..В предлагаемых методических указаниях дается описание языка Бейсик применительно к микроЭВМ типа ДВК-3, на которые ориентированы лабораторные работы.

Лабораторные работы предусматривают обязательную предвари­тельную подготовку, которая включает изучение операторов языка Бейсик, разработку алгоритма и программы расчета на ЭВМ, Перед выполнением лабораторной работы студент, должен представить пре­подавателю подготовленную программу и получить разрешение на выполнение работы на ЭВМ. Отчет по лабораторной работе оформля­ется каждт студентом й допоен содержать: задание с исходным данными; схему алгоритма решаемой-задачи; распечатку разрабо­танной программы; результаты расчетов на ЭВМ.

Алгоритм глредставляет собой четкой описание дейст­вий, которые необходимо выполнить для рёшшя задачи. Для ого разработка задача разбивается на последовательно выполняемые этапы, определяется содержание каждого этапа,, порядок их вы- полкэния. Изобрэ^тся яягорит графически в.виде ехемы.

Программа, на алгоритшчееком языке Бейсик состоит из последовательности операторов,: записываемых построчно боль­шими латинскими буквами. Операторы предназначены дя* задания ЭВМ операций обработки.информации. В одной отроке может быть один оператор или несколько, разделенных наклонной чертой (\). Строки программы нумеруются. Рекомендуете^ нумерация кратная 10* что позволяет при необходимости вносить изменения в прог­рамму. Программа завершается оператором Ш), • - -

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