Файл: Особенности и примеры использования массивов при разработке программ (Языки программирования).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 17.05.2023

Просмотров: 61

Скачиваний: 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. Разработать программу для определения показателей плана перевозки грузов. Известно число поставщиков определённого вида продукции и число потребителей этой продукции. Известны план перевозки продукции от каждого поставщика к каждому потребителю, а также стоимость перевозки единицы груза от каждого поставщика к каждому потребителю. Определить номер поставщика, от которого перевезено максимальное количество груза и стоимость этих перевозок.


Программа находится в Приложении Г.

Демонстрация решения:

Выводы по главе.

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

Заключение

В курсовой работе были рассмотрены основные теоретические основы по теме «Особенности и примеры использования массивов при разработке».

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

Поставленные задачи курсовой работы были решены:

  • проведён обзор и анализ подобранной по теме исследования научной литературы,
  • описаны основные понятия, термины, категории по исследуемой тематике,

Выделены достоинства и недостатки различных типов массивов, составлены и решены примеры по рассматриваемым темам, сформулированы выводы по главам.

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

В курсовой работе были рассмотрены основные моменты при работе с массивами.

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

В процессе реализации были соблюдены принципы программирования на языке Паскаль.

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

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

Список используемой литературы

  1. ГОСТ 19.701 – 90 «Схемы алгоритмов, программ, данных и систем» ЕСПД. Дата введения 01.01.92
  2. Брайан Керниган, Деннис Ритчи Язык программирования Си-М: Вильямс, 2015-288с.
  3. Гутман Г. Изучаем Basic. СПб.: Питер, 2002.-320с.
  4. Грег Перри, Дин Миллер Программирование на С для начинающих.- М: Эксмо, 2015- 369 с.
  5. Джеанини М., Кьоу Дж. Объектно-ориентированное программирование: Учебный курс. – СПб.: Питер,2005, 240 с.
  6. Комова О. С., Коломийцева С. В. Основные алгоритмические конструкции: учебное пособие. – Хабаровск: Изд-во ДВГУПС, 2014. –45 с.
  7. Костерин В.В., Камаев В.А. Технологии программирования: Учебник для вузов. – М.: Высшая школа, 2005, 360 с.
  8. Культин Н.Б. Turbo Pascal в Упражнениях – СПб.: БХВ-Петербург, 2007. – 256с
  9. Мещеряков П.С. Информатика Часть 2. Программирование на языке Паскаль: Учебное пособие. — Томск: ТУСУР, 2011. - 156 с.
  10. Мочалин В.П., Жульнев В.В. Основы алгоритмического языка программирования QBasic. Курс лекций. Издание 2-е, перераб.- Новомосковск, 2000.- 106 с.
  11. Моргун А. Н. Программирование на языке Паскаль (Pascal). Основы обработки структур данных. — М.: «Диалектика», 2005. — 576 с.
  12. Мочалин В.П., Тивиков А.С. Программирование типовых алгоритмов циклической структуры.- Новомосковск, 2004, 24 с.
  13. Немнюгин С.А. Turbo Pascal: программирование на языке высокого уровня – СПб.: Питер, 2006. – 544с.
  14. Носов В.А. Основы теории алгоритмов: курс лекций – М.: МГУ, 2006.-140 с.
  15. Павловская Т.А. Паскаль. Программирование на языке высокого уровня. Учебник для вузов. /Т. А. Павловская. – СПб.: Питер, 2010. – 464 с.
  16. Попов В.Б. Паскаль и Делфи. Учебный курс. - Питер, 2005- 576 с.
  17. Подбельский В.В. Язык C#. Базовый курс. 2-е издание.- М: Финансы и статистика, 2013-426 с.
  18. Самойленко В.П. , Опалева Э.А. Языки программирования и методы трансляции: Учебное пособие для вузов. – СПб.: БХВ-Петербург, 2005, 480 стр.
  19. Томас Х. Кормен Алгоритмы. Вводный курс-М: Вильямс, 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.

  1. Томас Х. Кормен Алгоритмы. Вводный курс-М: Вильямс, 2015- с. 20.

  2. Комова О. С., Коломийцева С. В. Основные алгоритмические конструкции: учебное пособие. – Хабаровск: Изд-во ДВГУПС, 2014. – с. 12

  3. Носов В.А. Основы теории алгоритмов: курс лекций – М.: МГУ, 2006.- с.24

  4. Павловская Т.А. Паскаль. Программирование на языке высокого уровня. Учебник для вузов. – СПб.: Питер, 2010.- с. 45

  5. Самойленко В.П. , Опалева Э.А. Языки программирования и методы трансляции. – СПб.: БХВ-Петербург, 2005.- с.38

  6. Костерин В.В., Камаев В.А. Технологии программирования: Учебник для вузов. – М.: Высшая школа, 2005.- с.42

  7. Костерин В.В., Камаев В.А. Технологии программирования: Учебник для вузов. – М.: Высшая школа, 2005.- с.44

  8. Мещеряков П.С. Информатика Часть 2. Программирование на языке Паскаль: Учебное пособие. — Томск: ТУСУР, 2011. - с.61

  9. Мочалин В.П., Жульнев В.В. Основы алгоритмического языка программирования QBasic. - Новомосковск, 2000.- с.41

  10. Подбельский В.В. Язык C#. Базовый курс. 2-е издание.- М: Финансы и статистика, 2013- с.303

  11. Моргун А. Н. Программирование на языке Паскаль (Pascal). Основы обработки структур данных. — М.: «Диалектика», 2005. — с. 76

  12. Моргун А. Н. Программирование на языке Паскаль (Pascal). Основы обработки структур данных. — М.: «Диалектика», 2005. — с. 77

  13. Самойленко В.П. , Опалева Э.А. Языки программирования и методы трансляции: Учебное пособие для вузов. – СПб.: БХВ-Петербург, 2005.- с.322

  14. Гутман Г. Изучаем Basic. СПб.: Питер, 2002.-с.189

  15. Мочалин В.П., Тивиков А.С. Программирование типовых алгоритмов циклической структуры.- Новомосковск, 2004, с.18

  16. Немнюгин С.А. Turbo Pascal: программирование на языке высокого уровня – СПб.: Питер, 2006. – с.202

  17. Джеанини М., Кьоу Дж. Объектно-ориентированное программирование: Учебный курс. – СПб.: Питер,2005, с. 123

  18. Попов В.Б. Паскаль и Делфи. Учебный курс. - Питер, 2005- с.312

  19. Брайан Керниган, Деннис Ритчи Язык программирования Си-М: Вильямс, 2015-с.103

  20. Грег Перри, Дин Миллер Программирование на С для начинающих.- М: Эксмо, 2015- с.250

  21. Мещеряков П.С. Информатика Часть 2. Программирование на языке Паскаль: Учебное пособие. — Томск: ТУСУР, 2011. - с.95

  22. Культин Н.Б. Turbo Pascal в Упражнениях – СПб.: БХВ-Петербург, 2007. – с.112-222