Файл: Особенности и примеры использования массивов при разработке программ (Языки программирования).pdf
Добавлен: 17.05.2023
Просмотров: 71
Скачиваний: 3
For i:= 1 To n Do Read(a[i]);
K:= (n div 2)-1;
For i:=1 To k Do Begin L:= a[I]; a[i]:= a[ n+1-I ]; a[n+1-I]:=L; end;
Writeln('new massiv:');
For i:= 1 To n Do Write (a[i],' ');
Readln; End.
Демонстрация решения:
Пример 4. Сколько элементов массива превосходят по модулю заданное число А.
Const n=5;
var
x:array[1..n] of integer;
I,K,A: integer ;
Begin
Readln (A);K:=0;
FOR I:=1 TO n DO
Begin
Read (x[I]);
if abs(x[I])>A then K:=K+1;
end;
Writeln (K);
end.
Демонстрация решения:
Пример 5. В заданном одномерном массиве поменять местами соседние элементы (стоящие на четных местах, с элементами, стоящими на нечетных местах).
program mas;
var a:array[1..100] of integer;
i,n,k: integer;
begin write('Введите размер массива');
readln(n);
for i:=1 to n do
begin write('a[',i,']='); readln(a[i]); end;
i:=1;
while i<n do
begin
k:=a[i]; a[i]:=a[i+1]; a[i+1]:=k; i:=i+2
end;
Writeln('new massiv:'); for i:=1 to n do
writeln('a[',i,']=',a[i]);
end.
Демонстрация решения:
Пример 6. Разработать алгоритм и программу. Ввести последовательность из N целых чисел. Найти наибольшее число.
1.Дано число n.
2.Введём числа Х в массив размером N случайным образом ( для скорости решения). Первый элемент массива примем за максимальный и будем его сравнивать со всеми остальными элементами массива. Выведем максимальный.
Программа и Структурная схема алгоритма в Приложении Б.
Демонстрация решения:
Пример 7. Найти сумму элементов, принадлежащих промежутку от А до В (А и В вводить с клавиатуры).
program r7;
var c: array [1..100] of integer;
n,i,s,A,B: integer;
begin write ('введите количество элементов массива n=');
readln(n);
for i:=1 to n do
begin write ('введите c[',i,']='); readln (c[i]);
end;
s:=0;
write ('введите число A='); readln (A);
write ('введите число B='); readln (B);
for i:=1 to n do
if (c[i] >=A) and (c[i]<= B) then begin
s:=s+c[i];writeln ('попадает число c[',i,']=',c[i]);end;
write ('s=',s);
end.
Демонстрация решения:
3.2. Двумерные массивы
Пример 8 .Задана действительная квадратная матрица порядка n. Найти наибольший по модулю элемент матрицы. Не используя вспомогательного массива, получить квадратную матрицу порядка n-1 путем выбрасывания из исходной матрицы строки и столбца, на пересечении которых расположен элемент с найденным значением. Размерность матрицы и значения ее элементов ввести с клавиатуры.
Uses CRT;
Const n=5;
var a:array[1..n,1..n] of integer;
i,j,index,undex,max:integer;
begin
ClrScr;Randomize;
for i:=1 to n do
for j:=1 to n do
begin
a[i,j]:=Random(21)-6;
gotoxy(j*5+5,i);
write(a[i,j]);
end;
max:=abs(a[1,1]);
for i:=1 to n do
for j:=1 to n do
if abs(a[i,j]) >max then
begin
max:=a[i,j]; index:=i; undex:=j;
end;writeln('');
writeln('Max=',max,' i=',index,' j=',undex);
for i:=1 to n do
for j:=1 to n do
if (index<>i) and (undex<>j) then
begin
gotoxy(j*5+5,i+10); write(a[i,j]); end;end.
Демонстрация решения:
Пример 9. Написать программу, которая вводит квадратную матрицу, производит ее транспонирование (обмен элементов строки на элементы соответствующего ей столбца) и выводит на экран полученную матрицу.
program pr ; Демонстрация решения:
var a:array [1..100,1..100] of integer;
i,j,n:integer;
c:integer;
begin write('введите размер матрицы n=');
readln(n);
for i:=1 to n do
for j:=1 to n do
begin write('a[',i,',',j,']='); readln(a[j,i]); end;
writeln('вы ввели такую матрицу:');
for i:=1 to n do
begin for j:=1 to n do
write(a[i,j]:3);writeln; end;
for i:=1 to n do
for j:=1 to n do
begin c:=a[i,j];a[i,j]:=a[j,i];a[j,i]:=c;end;
writeln('получилась матрица:');
for i:=1 to n do
begin for j:=1 to n do
write(a[i,j]:3);writeln ;end;end.
Пример 10. Сформировать квадратную матрицу вида:
n 0 0 0...0 0 0
0 n-1 0 0...0 0 0
0 0 n-2 0...0 0 0
. . . . . . . .
0 0 0 0...0 2 0
0 0 0 0...0 0 1
Program pr;
var a:array[1..30,1..30] of integer;
i,j,n:integer;
begin writeln('введите размер матрицы:');
write('количество строк=');readln(n);
for i:=1 to n do
for j:=1 to n do
if i=j then a[i,j]:=n-j+1
else a[i,j]:=0;
for i:=1 to n do
begin for j:=1 to n do write(a[i,j]:3);
writeln
end
end.
Демонстрация решения:
Пример 11. Задана квадратная матрица. Переставить строку с максимальным элементом на главной диагонали со строкой с заданным номером m.
Текст программы находится в Приложении В.
Демонстрация решения:
Пример 12. Разработать программу для определения показателей плана перевозки грузов. Известно число поставщиков определённого вида продукции и число потребителей этой продукции. Известны план перевозки продукции от каждого поставщика к каждому потребителю, а также стоимость перевозки единицы груза от каждого поставщика к каждому потребителю. Определить номер поставщика, от которого перевезено максимальное количество груза и стоимость этих перевозок.
Программа находится в Приложении Г.
Демонстрация решения:
Выводы по главе.
С массивами нельзя выполнять арифметические действия (вычитать, складывать и др.). Все действия в массивах выполняются поэлементно. В двумерных массивах ввод элементов осуществляется построчно.Операционный стиль мышления выступает важнейшим фактором формирования профессиональных компетенций специалиста, а также является когнитивным инструментом, обеспечивающим как познавательную, так и инновационную деятельность.
Заключение
В курсовой работе были рассмотрены основные теоретические основы по теме «Особенности и примеры использования массивов при разработке».
В курсовой работе был проведён анализ подобранной по теме исследования научной литературы и интернет источников.
Поставленные задачи курсовой работы были решены:
- проведён обзор и анализ подобранной по теме исследования научной литературы,
- описаны основные понятия, термины, категории по исследуемой тематике,
Выделены достоинства и недостатки различных типов массивов, составлены и решены примеры по рассматриваемым темам, сформулированы выводы по главам.
Подробно рассмотрен процесс реализации циклических конструкций и массивов с соблюдением правил программирования на языках высокого уровня.
В курсовой работе были рассмотрены основные моменты при работе с массивами.
Особое внимание было уделено практической части работы, которая была представлена в виде готовых программ с реализацией этих программ на ПК.
В процессе реализации были соблюдены принципы программирования на языке Паскаль.
После тщательного изучения предметной области и самостоятельного решения задач, была достигнута поставленная цель, а именно изучены основы программирования по теме «Массивы».
Для пользователей умеющих программировать на языке Паскаль рассмотренные программы могут послужить базой для написания более сложных программ или стать наглядным пособием написания и использования различных приёмов среде Паскаль.
Список используемой литературы
- ГОСТ 19.701 – 90 «Схемы алгоритмов, программ, данных и систем» ЕСПД. Дата введения 01.01.92
- Брайан Керниган, Деннис Ритчи Язык программирования Си-М: Вильямс, 2015-288с.
- Гутман Г. Изучаем Basic. СПб.: Питер, 2002.-320с.
- Грег Перри, Дин Миллер Программирование на С для начинающих.- М: Эксмо, 2015- 369 с.
- Джеанини М., Кьоу Дж. Объектно-ориентированное программирование: Учебный курс. – СПб.: Питер,2005, 240 с.
- Комова О. С., Коломийцева С. В. Основные алгоритмические конструкции: учебное пособие. – Хабаровск: Изд-во ДВГУПС, 2014. –45 с.
- Костерин В.В., Камаев В.А. Технологии программирования: Учебник для вузов. – М.: Высшая школа, 2005, 360 с.
- Культин Н.Б. Turbo Pascal в Упражнениях – СПб.: БХВ-Петербург, 2007. – 256с
- Мещеряков П.С. Информатика Часть 2. Программирование на языке Паскаль: Учебное пособие. — Томск: ТУСУР, 2011. - 156 с.
- Мочалин В.П., Жульнев В.В. Основы алгоритмического языка программирования QBasic. Курс лекций. Издание 2-е, перераб.- Новомосковск, 2000.- 106 с.
- Моргун А. Н. Программирование на языке Паскаль (Pascal). Основы обработки структур данных. — М.: «Диалектика», 2005. — 576 с.
- Мочалин В.П., Тивиков А.С. Программирование типовых алгоритмов циклической структуры.- Новомосковск, 2004, 24 с.
- Немнюгин С.А. Turbo Pascal: программирование на языке высокого уровня – СПб.: Питер, 2006. – 544с.
- Носов В.А. Основы теории алгоритмов: курс лекций – М.: МГУ, 2006.-140 с.
- Павловская Т.А. Паскаль. Программирование на языке высокого уровня. Учебник для вузов. /Т. А. Павловская. – СПб.: Питер, 2010. – 464 с.
- Попов В.Б. Паскаль и Делфи. Учебный курс. - Питер, 2005- 576 с.
- Подбельский В.В. Язык C#. Базовый курс. 2-е издание.- М: Финансы и статистика, 2013-426 с.
- Самойленко В.П. , Опалева Э.А. Языки программирования и методы трансляции: Учебное пособие для вузов. – СПб.: БХВ-Петербург, 2005, 480 стр.
- Томас Х. Кормен Алгоритмы. Вводный курс-М: Вильямс, 2015-208 с.
Приложение А
Основные символы для описания алгоритмов
Приложение Б
Пример 6.
Программа:
Блок схема примера 6:
Приложение В.
Пример 11. Задана квадратная матрица. Переставить строку с максимальным элементом на главной диагонали со строкой с заданным номером m.
program pr;
var a:array[1..30,1..30] of integer;
i,j,n,k,m,max,at:integer;
begin writeln('Введите размерность матрицы:'); readln(n);
write('Введите номер строки m='); readln(m);
for i:=1 to n do
for j:=1 to n do
begin write('a[',i,j,']='); readln(a[i,j])
end;
writeln('Ваша матрица:');
for i:=1 to n do
begin for j:=1 to n do
write(a[i,j]:4); writeln;
end; max:=1;
for i:=1 to n do
if a[max,max]<a[i,i]
then max:=i;
for i:=1 to n do
begin at:=a[m,i]; a[m,i]:=a[max,i]; a[max,i]:=at
end;
writeln('Полученная матрица:');
for i:=1 to n do
begin for j:=1 to n do
write(a[i,j]:4); writeln; end; end.
Пример 12. Текст программы
program pr12;
uses crt;
var a:array [1..100,1..100] of integer;
var s:array [1..100,1..100] of real;
var a1:array [1..100] of integer;
i,j,n,m:integer;
c,k,k1:integer;
d,st:real;
begin
write('введите количество поставщиков n=');
readln(n);
write('введите количество потребителей m=');
readln(m);
for i:=1 to n do
begin
C:=0;
for j:=1 to m do
begin
write(' количество груза от ',i,' поставщика к ',j,' покупателю ?');
readln(a[i,j]);
a1[i]:= C+ a[i,j]
end;
end;
c:= a1[1]; k:=1;
for i:=2 to n do
if a1[i] > c then begin c:= a1[i] ;k:=i;end;
for i:=1 to n do
for j:=1 to m do
begin
write(' стоимость перевозки единицы груза от ',i,' поставщика к ',j,' покупателю ?');
readln(s[i,j]);
end;
D:= 0;
for j:=1 to m do
d:=d+a[k,j]* s[k,j];
writeln('вы ввели такие данные по поставщикам - матрица 1:');
for i:=1 to n do
begin for j:=1 to m do
write(a[i,j],' ');
writeln;
end;
writeln('вы ввели такие данные по стоимости перевозок - матрица 2:');
for i:=1 to n do begin
for j:=1 to m do
write(s[i,j]:6:0);
writeln;
end;
write(' Номер поставщика,от которого перевезено максимальное количество груза - ',k);
writeln; write(' стоимость всего перевезённого им груза = ',d);
end.
-
Томас Х. Кормен Алгоритмы. Вводный курс-М: Вильямс, 2015- с. 20. ↑
-
Комова О. С., Коломийцева С. В. Основные алгоритмические конструкции: учебное пособие. – Хабаровск: Изд-во ДВГУПС, 2014. – с. 12 ↑
-
Носов В.А. Основы теории алгоритмов: курс лекций – М.: МГУ, 2006.- с.24 ↑
-
Павловская Т.А. Паскаль. Программирование на языке высокого уровня. Учебник для вузов. – СПб.: Питер, 2010.- с. 45 ↑
-
Самойленко В.П. , Опалева Э.А. Языки программирования и методы трансляции. – СПб.: БХВ-Петербург, 2005.- с.38 ↑
-
Костерин В.В., Камаев В.А. Технологии программирования: Учебник для вузов. – М.: Высшая школа, 2005.- с.42 ↑
-
Костерин В.В., Камаев В.А. Технологии программирования: Учебник для вузов. – М.: Высшая школа, 2005.- с.44 ↑
-
Мещеряков П.С. Информатика Часть 2. Программирование на языке Паскаль: Учебное пособие. — Томск: ТУСУР, 2011. - с.61 ↑
-
Мочалин В.П., Жульнев В.В. Основы алгоритмического языка программирования QBasic. - Новомосковск, 2000.- с.41 ↑
-
Подбельский В.В. Язык C#. Базовый курс. 2-е издание.- М: Финансы и статистика, 2013- с.303 ↑
-
Моргун А. Н. Программирование на языке Паскаль (Pascal). Основы обработки структур данных. — М.: «Диалектика», 2005. — с. 76 ↑
-
Моргун А. Н. Программирование на языке Паскаль (Pascal). Основы обработки структур данных. — М.: «Диалектика», 2005. — с. 77 ↑
-
Самойленко В.П. , Опалева Э.А. Языки программирования и методы трансляции: Учебное пособие для вузов. – СПб.: БХВ-Петербург, 2005.- с.322 ↑
-
Гутман Г. Изучаем Basic. СПб.: Питер, 2002.-с.189 ↑
-
Мочалин В.П., Тивиков А.С. Программирование типовых алгоритмов циклической структуры.- Новомосковск, 2004, с.18 ↑
-
Немнюгин С.А. Turbo Pascal: программирование на языке высокого уровня – СПб.: Питер, 2006. – с.202 ↑
-
Джеанини М., Кьоу Дж. Объектно-ориентированное программирование: Учебный курс. – СПб.: Питер,2005, с. 123 ↑
-
Попов В.Б. Паскаль и Делфи. Учебный курс. - Питер, 2005- с.312 ↑
-
Брайан Керниган, Деннис Ритчи Язык программирования Си-М: Вильямс, 2015-с.103 ↑
-
Грег Перри, Дин Миллер Программирование на С для начинающих.- М: Эксмо, 2015- с.250 ↑
-
Мещеряков П.С. Информатика Часть 2. Программирование на языке Паскаль: Учебное пособие. — Томск: ТУСУР, 2011. - с.95 ↑
-
Культин Н.Б. Turbo Pascal в Упражнениях – СПб.: БХВ-Петербург, 2007. – с.112-222 ↑