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

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

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

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

Добавлен: 30.03.2023

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

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

Глава 3. Примеры использования массивов при решении задач

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

3.1. Одномерные массивы

Пример 3.1. Дана последовательность из 20 целых чисел. Определите количество четных чисел.

Программа:

Program p1;

var

a:array[1..20] of integer;

i,k:integer;

begin

k:=0;

for i:=1 to 20 do

begin

readln(a[i]);

if a[i] mod 2 =0 then k:=k+1;

end;

writeln('Кол-во четных чисел ',k);

end.

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

Пример 3.2. Дан массив M(10).К чётным элементам прибавить число A,а из элементов с чётными номерами вычесть число B.

Программа:

Program p2;

Uses CRT;

Const n=10; {n - это число элементов массива}

Type myarray=Array[1..n] Of Integer;

Var m: myarray;

A,b, i: Integer; {i - это переменная для работы с элементами массива}

Begin

Writeln('введите A' ); Read ( A);

Writeln('введите b' ); Read (b);

Writeln('введите n чисел');

For i:=1 To n Do

Begin {ввод массива с клавиатуры}

Read(m[i]);

If I mod 2 =0 then m[i]:= m[i]-b else m[i]:= m[i]+a ;

End ;

Writeln(' новый массив');

For i:=1 To n Do

Writeln( m[i]); {вывод результата на экран}

Readln; End.

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

Пример 3.3. Дан Массив А(10).Поменять его половины следующим образом: первый элемент с последним, второй с предпоследним и так далее.

Программа:

Program p3;

Uses CRT;

Const n=10; {n - это число элементов массива}

Type myarray=Array[1..n] Of Integer;

Var a: myarray;

I,k,l: Integer; {i - это переменная для работы с элементами массива}

Begin

Writeln('введите ', 10, ' чисел');

For i:=l 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(' новый массив');

For i:=l To n Do {вывод массива}

Writeln (a[i]); Readln; End.

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

Пример 3.4. Сколько элементов массива превосходят по модулю заданное число А.


Программа:

Program p4;

Uses CRT;

Const

n=5;

var

x:array[1..n] of integer;

I,K,A: integer ;

Begin

Writeln('введите A ');

Readln (A);

K:=0;

Writeln('введите 5 чисел');

FOR I:=1 TO n DO

Begin

Readln (x[I]);

if abs(x[I])>A then K:=K+1; end;

Writeln('Таких чисел- ');

Write (K); end.

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

Пример 3.5. В заданном одномерном массиве поменять местами соседние элементы (стоящие на четных местах, с элементами, стоящими на нечетных местах).

Программа:

Program p5;

Uses CRT;

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,']=');

read(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;

write(' Новый массив');

writeln;

for i:=1 to n do

writeln('a[',i,']=',a[i]); end.

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

Пример 3.6. Найти элементы массива кратные 3 и 5. Сколько их?

Программа:

program 6;

var n,i,k: longint;

a: array [1..100] of integer;

begin

k:=0;

writeln ('Введите размер массива'); readln(n);

for i:=1 to n do begin

write ('a[',i,']=');

readln (a[i]);

end;

writeln;

for i:=1 to n do begin

if (a[i] mod 3=0) or (a[i] mod 5=0) then begin

writeln ('a[',i,']=',a[i]);

inc(k);

end;

end;

writeln ('Всего ',k,' элементов кратных 3 или 5');

readln;

end.

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

Пример 3.7. Найти сумму элементов, принадлежащих промежутку от А до В (А и В вводить с клавиатуры).

Программа:

Program7;

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;

begin write ('введите число A='); readln (A); end;

begin write ('введите число B='); readln (B); end;

for i:=A to B do

s:=s+c[i]; write (s); end.

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

Пример 3.8 . Дано 50 целых чисел. Распечатать их в обратном порядке по 10 чисел в строке.

Текст программы находится в Приложении В.

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

3.2. Двумерные массивы

Пример 3.9 .Задана действительная квадратная матрица порядка n. Найти наибольший по модулю элемент матрицы. Не используя вспомогательного массива, получить квадратную матрицу порядка n-1 путем выбрасывания из исходной матрицы строки и столбца, на пересечении которых расположен элемент с найденным значением. Размерность матрицы и значения ее элементов ввести с клавиатуры.


Программа:

program 9;

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.

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

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

Программа:

program р11 ;

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.

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

Пример 3.11. Сформировать квадратную матрицу вида:

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

Программа:

Program11;

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.

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

Пример 3.12. Задана квадратная матрица. Переставить строку с максимальным элементом на главной диагонали со строкой с заданным номером m.

Программа:

program 12;

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.

Пример 3.13. Задана квадратная матрица. Переставить строку с минимальным элементом на главной диагонали со строкой с заданным номером m.


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

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

Заключение

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

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

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

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

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

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

Сформированы основные представления по рассматриваемой теме: «Особенности и примеры использования массивов при разработке программ».

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

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

  1. ЕСПД: ГОСТ 19.701-90. «Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения».
  2. Акулов О. А. Информатика: базовый курс : учебник для вузов– М.: Омега-Л, 2007. – 557 с.
  3. Безручко В. Т. Информатика : Курс лекций : учеб. Пособие для– М.: Форум : Инфра-М, 2006. – 431 с.
  4. Брайан Керниган, Деннис Ритчи Язык программирования Си, Вильямс, 2015-288с.
  5. Ершов М.Н. Информатика. Численные методы решения задач. Конспект лекций. : КГМТУ, 2013.- 73 с.
  6. Комова О. С., Коломийцева С. В. Основные алгоритмические конструкции: учебное пособие /О. С. Комова, С. В. Коломийцева. – Хабаровск: Изд-во ДВГУПС, 2014. – с.
  7. Логинов В.И., Шемагина Л.Н. Основы алгоритмизации: Учебно-методическое пособие.-Н.Новгород: ФГОУ ВПО «ВГАВТ», 2010-80 с.
  8. Левитин А. Алгоритмы: введение в разработку и анализ.-М.: Издательский дом «Вильямс», 2006.-576 с.
  9. Макарова Н. В. Информатика: учебник - М. и др.: Питер, 2011. - 576 с.
  10. Павловская Т.А. Паскаль. Программирование на языке высокого уровня. Учебник для вузов. /Т. А. Павловская. – СПб.: Питер, 2010. – 464 с.
  11. Подбельский В.В. Язык C#. Базовый курс. 2-е издание, Финансы и статистика, 2013-426 с.
  12. Симонович С. В. Информатика: Базовый курс : учебник для вузов – СПб. : Питер, 2008. – 639 с.
  13. Трофимова В. В. Информатика : учебник для вузов–М. : Юрайт : Высшее образование, 2010. – 911 с.
  14. Борисенко В.В. Основы программирования [Электронный ресурс]— М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2016.— 323 c.— Режим доступа: http://www.iprbookshop.ru/22427.— ЭБС «IPRbooks»;
  15. Алексеев В.Е. Графы и алгоритмы. Структуры данных. Модели вычислений [Электронный ресурс]: М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2016.— 153 c.— URL: http://www.iprbookshop.ru/16085.— ЭБС «IPRbooks», (Дата обращения: 05.09.2017)
  16. Шень А.Х. Практикум по методам построения алгоритмов [Электронный ресурс]/ Шень А.Х.— Электрон. текстовые данные.— М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2016.— 335 c.— URL:http://www.iprbookshop.ru/16727.— ЭБС «IPRbooks», (Дата обращения: 05.09.2017)
  17. Синюк В.Г. Алгоритмы и структуры данных [Электронный ресурс]: лабораторный практикум. Учебное пособие/ Синюк В.Г., Рязанов Ю.Д.— Электрон. текстовые данные.— Белгород: Белгородский государственный технологический университет им. В.Г. Шухова, ЭБС АСВ,2013.—204c.— URL: http://www.iprbookshop.ru/28363.— ЭБС «IPRbooks», (Дата обращения: 05.09.2017).

Приложение А

Графические элементы для описания алгоритмов

Приложение Б

Пример № 2.1. Код программы

Приложение В

Пример 3.8. Дано 50 целых чисел. Распечатать их в обратном порядке по 10 чисел в строке

Код программы:

const n=50; d=10;

var x : array [1..n] of integer;

i, k : integer;

begin

{ввод массива:}

Writeln('Dan massiv^');

For i:=1 To N Do begin x[i]:=random(70); Write(x[i]:3); end;

Writeln;

Writeln('Sortirovannii massiv^');

{вывод массива по d чисел в строке:}

k:=0; {номер числа в строке}

for i:=n downto 1 do

begin

k:=k+1;

write(x[i]:4);

if k=d then

begin

k:=0; writeln

end;

end;

if k<>0 then writeln

end.

Пример 9.Листинг программы:

Приложение Г

Пример 3.13. Листинг программы:

program p8;

var a:array[1..30,1..30] of integer; i,j,n,k,m,min,at:integer;

begin writeln('Введите размерность матрицы:'); readln(n);

write('Введите номер строки m='); readln(m);

for i:=1 to n do

for j:=1 to n do

begin a[i,j]:=Random(31)-5; end;

writeln('Ваша матрица:');

for i:=1 to n do

begin for j:=1 to n do

write(a[i,j]:4); writeln

end;

min:=1;

for i:=1 to n do

if a[min,min]>a[i,i] then min:=i;

for i:=1 to n do

begin at:=a[m,i]; a[m,i]:=a[min,i];

a[min,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.

  1. Акулов О. А. Информатика: базовый курс : учебник для вузов– М.: Омега-Л, 2007. – с.47

  2. ЕСПД: ГОСТ 19.701-90. «Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения».

  3. Безручко В. Т. Информатика : Курс лекций : учеб. Пособие для– М.: Форум : Инфра-М, 2006. – с.29

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

  5. Безручко В. Т. Информатика : Курс лекций : учеб. Пособие для– М.: Форум : Инфра-М, 2006. – с.65

  6. Борисенко В.В. Основы программирования [Электронный ресурс]— М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2016.— c128.— Режим доступа: http://www.iprbookshop.ru/22427

  7. Борисенко В.В. Основы программирования [Электронный ресурс]— М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2016.— c.129— Режим доступа: http://www.iprbookshop.ru/22427.

  8. Макарова Н. В. Информатика: учебник - М. и др.: Питер, 2011. - с.58

  9. Логинов В.И., Шемагина Л.Н. Основы алгоритмизации: Учебно-методическое пособие.-Н.Новгород: ФГОУ ВПО «ВГАВТ», 2010- с.65

  10. Симонович С. В. Информатика: Базовый курс : учебник для вузов – СПб. : Питер, 2008. – с.236

  11. Трофимова В. В. Информатика : учебник для вузов–М. : Юрайт : Высшее образование, 2010. – с.453

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

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

  14. Макарова Н. В. Информатика: учебник - М. и др.: Питер, 2011. - с.128

  15. Ершов М.Н. Информатика. Численные методы решения задач. Конспект лекций. : КГМТУ, 2013.- с.30

  16. Левитин А. Алгоритмы: введение в разработку и анализ.-М.: Издательский дом «Вильямс», 2006.- с.413

  17. Алексеев В.Е. Графы и алгоритмы. Структуры данных. Модели вычислений [Электронный ресурс]: М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2016.—URL: http://www.iprbookshop.ru/16085

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

  19. Ершов М.Н. Информатика. Численные методы решения задач. Конспект лекций. : КГМТУ, 2013.- с.30

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

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

  22. Шень А.Х. Практикум по методам построения алгоритмов [Электронный ресурс]/ Шень А.Х.— Электрон. текстовые данные.— М.: ИНТУИТ, 2016.— URL:http://www.iprbookshop.ru/16727

  23. Симонович С. В. Информатика: Базовый курс : учебник для вузов – СПб. : Питер, 2008. – с.489