Главная / Информатика / Первые шаги в программировании язык PASCAL

Первые шаги в программировании язык PASCAL

Язык программирования PASCAL

Блок 5.

Тема: Регулярные типы данных.

Одномерные массивы. Работа с элементами.

План.



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

  1. Операторы массива, виды массивов.

а) задание одномерного массива.

2. Решение задач.

3.Задание на самостоятельную работу.


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

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

Массив обозначается одним именем. Так совокупность действительных чисел 1.6, 5.7, 8.5, 0.45 можно считать массивом и обозначить одним именем, например, А. Каждый элемент массива обозначается именем массива с индексом. Элементы массива упорядочены по значениям индекса.

Индекс заключается в круглые или квадратные скобки.

В Turbo Pascal 7.0 индекс заключается в квадратные скобки.

A[1]=1.6, A[2]=5.7, A[3]=8.5, A[4]=0.45

Таким образом – индекс определяет положение элемента массива данных

Относительно его начала.

В программе массив должен быть описан.

Форма описания имеет вид

var имя массива: ARRAY [n1..n2] OF <тип элементов>;

Например, var a: array[1..100] of integer;

Здесь массив начинается с 1 по 100 элемент, элементы могут лежать в пределах от -32768 до 32767.

Можно одним описанием объединить несколько массивов. Это будет выглядеть так.

Var A,B,C: ARRAY[1..50] OF REAL/

Здесь объявлено списком 3 массива A,B,C действительных чисел, каждый из которых содержит 50 элементов.

Элементы массива могут стоять как в левой части оператора присваивания, так и в выражениях. Над элементами массива можно производить те же операции, которые допустимы для данных его базового типа. Если базовый тип есть INTEGER, то допустимы все операции над данными целого типа, включая и стандартные функции.

В языке Turbo Pascal помимо описания массивов в разделе переменных имеется другая форма описания, состоящая из двух этапов. Сначала в разделе описания типов TYPE указывается тип массива. Затем в разделе описания переменных VAR перечисляются массивы, относящиеся к указанному типу.

Это выглядит так.

Type massiv=aaray[n1..n2] OF<тип элементов> .

Размерность массива задается при его описании и в процессе работы программы.

Присвоение значений элементам массива может происходить с помощью:

оператора Read (readln);

Uses crt;

var i,n: integer;

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

Begin

Clrscr;

Определяем число элементов в массиве.

Write’ (Введ. Размер массива’);

Readln (n);

Ввод элементов массива.

For i:1 to n do begin

Write (‘a [‘,i,’]’); readln (a[i]);

End;

Выводим на экран полученный массив.

For i:=1 to n do

Write (a[i],’’);

read key;


End.

Описание элементов массива в разделе описания констант.

Uses crt;

Const n=5;

A: array [1..5] of integer=(4,5,7,7,0);

Var i: integer;

begin

Полученный массив

For i:=1 to n do

Write (a[i],’’);

Read key;

End.


  1. Решение задач.

Пример 1 . Сформировать одномерный массив из N элементов, где элементы массива – целые случайные числа в пределах о 1 до 45. Напечатать элементы в прямом и обратном порядке.

Решение.

Для получения случайных чисел воспользуемся функцией RND[(x)]. Данная функция возвращает случайное число обычной точности в интервале от 0 до 1. Если аргумент опущен, возвращается следующее число из последовательности случайных чисел.

Для запуска генератора используйте процедуру Randomize .

Функция Random[(x)] формирует случайное число от 0 до X целого или вещественного типа.

X – параметр, указывающий диапазон случайного числа. Оно изменяется в пределах от 0 до X. Результат в этом случае имеет тип WORD (значения от 0 до 65535). Для получения массива целых случайных чисел используем запись random (B-A+I)+A

Зададим алгоритм решения задачи в виде пошагового исполнения следующих команд.

  1. Имя программы.

  2. Задание массива и описания всех переменных.

  3. Получение случайных чисел в заданном диапазоне.

  4. Вывод элементов массива в прямом и обратном порядке.

Записываем программу на языке Turbo-Pascal.


Program prim1;

Var i, n: integer;

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

Begin

Randomize;

Write ('razmer='); readln (n);

For i:=1 to n do begin

A[i]:=random (46) +1;

Writeln (a[i],'');

End;

For i:=n downto 1 do

Write (a[i],'');

Readln (a[i]);

End.

Пример 2. Подсчитать количество четных элементов массива, заданного датчиком случайных чисел.


Составим блок- схему алгоритма.









hello_html_32537db0.gif




hello_html_57aed7ff.gif

hello_html_m150a941c.gif



hello_html_57aed7ff.gif

hello_html_m55f896d9.gif



hello_html_m80b1b71.gifhello_html_135117ce.gifhello_html_1821a9a.gifhello_html_6b11c135.gif



hello_html_4641c3ba.gif


hello_html_m612c25bd.gif




hello_html_m2df47aa7.gif


hello_html_476db034.gifhello_html_m44b7cd08.gif

hello_html_m1eb9dda3.gif



hello_html_m69f6fcf0.gif

hello_html_mb60b119.gifhello_html_m686e315.gif




hello_html_79254aeb.gif

hello_html_12ce0749.gifhello_html_733b2b6d.gif



hello_html_m3491115e.gif




hello_html_2ef6b371.gif


hello_html_7b624a4a.gif

Программа, записанная на языке Pascal/

Program prim2;

Var i, k,n: integer;

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

Begin

Randomize;

Write ('chislo elem massiwa n=');readln(n);

For i:=1 to n do begin

a[i]:=random(45)-22;

Writeln (a[i],'');

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

end;

Writeln ('kol. chetnyx elem=',k);

readln;

Rnd.


Пример 3.

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

Зададим алгоритм в виде пошагового исполнения.

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

  2. Вводим номер удаляемого элемента.

  3. Смещаем элементы массива к началу, начиная с К-го.

  4. Обнуляем последний элемент.

  5. Выводим на экран измененный массив.


Программа на языке Pascal.

Program prim3;

Uses CRT;

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

I, k, n: integer;

Begin

Randomize;

Clrscr;

Write (‘chislo elem. N=’); readln(n);

For i:=1 to n do begin

A[i]:=random (45)-22;

Write (a[i],’’);

End;

Write (‘nomer udalyemogo elem. K<=n’); readln (k);

For i:=1 to n do begin;

If i>=k then a[i]:=a [i+1];

End;

A[n]:=0;

For i: =1 to n-1 do begin

Write (a[i],’’);

End;

Readln;

End.



  1. Задания для самостоятельного выполнения.

  1. Составить алгоритм и программу, которая подсчитывает количество отрицательных и неотрицательных элементов одномерного массива. Массив задать датчиком случайных чисел.

  2. Произвести вставку элемента в одномерный массив.

  3. Составить алгоритм и программу, которая определяет сумму элементов одномерного массива. Элементы массива можно задавать любым способом.

Желаю удачи.


program z34;

{ Найти сумму элементов прямоугольной таблицы размером [n:m] }

uses crt;


var a : array [1..10,1..10] of longint;

i,j,n,m,s : longint;

begin

clrscr;

write('кол-во строк : ');readln(m);

write('кол-во столбцов : ');readln(n);

for i:=1 to m do

for j:=1 to n do

begin

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

end;

for i:=1 to m do

for j:=1 to n do s:=s+a[i,j];

write('Сумма:',s);

readln;

end.


program z35;

{ Найти maксимальный элемент прямоугольной

таблицы размером [n:m]. }

uses crt;

var a : array [1..10,1..10] of longint;

i,j,n,m,max : longint;

begin

clrscr;

write('кол-во строк : ');readln(m);

write('кол-во столбцов : ');readln(n);

for i:=1 to m do

for j:=1 to n do

begin

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

end;

max:=a[1,1];

for i:=1 to m do

for j:=1 to n do

if max

write('max=',max);

readln;

end.


{ Дана таблица А. Записать '+' элементы таблицы А в

таблицу В '-' элементы таблицы А в табл С. }

uses crt;

var a,b,c : array [1..10] of longint;

n,k,i,l : longint;

begin

clrscr;

write('n = ');readln(n);

for i:=1 to n do

begin

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

end;


for i:=1 to n do

if a[i]<0 then begin

inc(k);b[k]:=a[i];

end

else begin

inc(l);c[l]:=a[i];

end;

writeln('положительное:');

for i:=1 to l do writeln('c[',i,']=',c[i]);

writeln('отрицательное:');

for i:=1 to k do writeln('b[',i,']=',b[i]);

readln;

end.

























Первые шаги в программировании язык PASCAL
  • Информатика
Описание:

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

1.     Операторы массива, виды массивов.

 а) задание одномерного массива.

 2. Решение задач.

 3.Задание на самостоятельную работу.

 

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

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

Массив обозначается одним именем. Так совокупность действительных чисел 1.6, 5.7, 8.5, 0.45  можно считать массивом и обозначить одним именем, например, А. Каждый элемент массива обозначается именем массива с индексом. Элементы массива упорядочены по значениям индекса.

Индекс заключается в круглые или квадратные скобки.

В TurboPascal 7.0 индекс заключается в квадратные скобки.

A[1]=1.6, A[2]=5.7, A[3]=8.5, A[4]=0.45

Таким образом – индекс определяет положение элемента массива данных

Относительно его начала.

В программе массив должен быть описан.

 

Форма описания имеет вид

Автор Орлов Юрий Николаевич
Дата добавления 04.01.2015
Раздел Информатика
Подраздел
Просмотров 431
Номер материала 26635
Скачать свидетельство о публикации

Оставьте свой комментарий:

Введите символы, которые изображены на картинке:

Получить новый код
* Обязательные для заполнения.


Комментарии:

↓ Показать еще коментарии ↓