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

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

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

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

Добавлен: 16.05.2023

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

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

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

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

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

Глава 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).

Приложение А

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