Попълване на масив от клавиатурата Pascal. 2D масиви

Попълване на масив от клавиатурата Pascal.  2D масиви
Попълване на масив от клавиатурата Pascal. 2D масиви

Едномерният масив е именувана последователност от номерирани елементи от един и същи тип. Елементите могат да бъдат всякакви налични в Паскал(с изключение на файла) тип данни. Число, наричано още индекс, има всеки елемент от масива. Индексът трябва да е от пореден тип. Едномерният масив може да бъде деклариран както като променлива:

вар<имя переменной>: масив от<тип элементов>;

като този:

Тип<имя типа>= масив от<тип элементов>;

Тук ме номерът на първия елемент и н- последният. Например, ако диапазонът е зададен като: , това означава, че е дефиниран едномерен масив с размерност от 10 елемента, с индекси от 1 до 10.

За да получите достъп до елемент от масива, трябва да посочите неговото име и номер: mas[i], тук mas е името, i е числото. В програмата по-долу ще декларираме масив и ще произведем прости операциинад неговите елементи.

1
2
3
4
5
6
7
8
9
10
11
12

програма array_primer;
usescrt;
var mas, A: масив [ 1 ..10 ] от real ;
започвам
clrscr;
mas[ 1 ] := 32 ;
mas[ 5 ] := 13 ;
mas[ 9 ] := 43 ;
A[ 1 ] := (mas[ 9 ] - mas[ 1 ] ) * mas[ 5 ] ;
запис (A[ 1 ] : 5 : 2 ) ;
readkey;
край.

В известен смисъл можете да работите с масиви точно както с обикновени променливи, но си представете например ситуация, в която трябва да попълните масив, състоящ се от десетки или хиляди елементи. Ще бъде по-удобно да направите това с цикъл. Следната конструкция запълва масив с числа и ги показва на екрана.

за i:=1 до n направи
започвам
mas[i]:=i;
запис (mas[i]:3);
край;

Ако искате масивът да се състои от стойности, въведени от клавиатурата, просто заменете присвояването с прочетено изявление. Има и ситуации, когато искате да попълните масив с произволни числа. Програмата по-долу присвоява на всеки елемент произволна стойност на свой ред.

1
2
3
4
5
6
7
8
9
10
11
12
13
14

програма array_random;
usescrt;
var i: цяло число;
mas: масив [1 ..100] от цяло число;
започвам
clrscr;
рандомизирам;
за i:= 1 до 100 do
започвам
mas[ i] := random(10) ;
запис (mas[i] : 2) ;
край ;
readkey;
край.

Широко разпространени проблеми, свързани с различни видове алгоритми, приложими към масиви. Сред тях особено популярни са методите за търсене и сортиране на елементи. Но всеки от тези алгоритми изисква индивидуално проучване, така че можете да се запознаете с тях в други статии:

Алгоритми за сортиране:

Алгоритми за търсене:

Сред по-малко сложните и в същото време търсени са методи за определяне на броя на положителните и отрицателните, минималните и максималните елементи. Нека ги разгледаме.

Намиране на максималния елемент в масив:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

програма array_max;
usescrt;
тип array= масив [ 1 ..10 ] от дума ;
var i, max: цяло число;
О: масивен
започвам
clrscr;
за i:= 1 до 10 направи
започвам
write('Element #' , i: 2 , '=' ) ;
прочетете (A[i] ); (въвеждане от клавиатурата)
край ;
max:= A[ 1 ] ; (нека първият елемент е максимумът)
за i:= 1 до 10 направи
ако макс writeln ;
пиши( „Максимален елемент =“,max);
readkey;
край.

За да направите програма за намиране на минималния елемент, просто трябва да смените знака< в 15 строке на >.

Определяне на броя на положителните елементи:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

Можем да запълним елементите на едномерен масив със стойности: чрез въвеждане на стойности от клавиатурата; на случаен принцип; според формулата. Начини за указване на едномерни масиви Циклите се използват за въвеждане и извеждане на числови стойности в масив. Процедурата приема референтен параметър Mssiv масив от посочения тип и целочислена променлива n, отговаряща за броя клетки на масива, които трябва да бъдат попълнени. Случайно формиране на едномерен масив.


Споделете работата си в социалните мрежи

Ако тази работа не ви подхожда, има списък с подобни произведения в долната част на страницата. Можете също да използвате бутона за търсене


Пълнеж.

Можем да запълним елементите на едномерен масив със стойности:

Чрез въвеждане на стойности от клавиатурата;

На случаен принцип;

Според формулата.

Начини за дефиниране на едномерни масиви

Циклите се използват за въвеждане и извеждане на числовите стойности на масив.

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

1) произволно,

2) въвеждане на елементи от клавиатурата

Да приемем, че ще работим с масив от цели числа. Нека ни е достатъчно максималният брой елементи да е равен на 50. Процедурата приема параметър чрез препратка към масив Massiv от даден тип и целочислена променливан , който отговаря за броя на запълнените клетки на масива. Имаме нужда и от локална променливааз , който ще изпълнява функциите на параметър на цикъл и ще се използва за указване на число, което определя местоположението на елемента в масива.

1. Случайно формиране на едномерен масив. Задайте стойността на всеки елемент на резултата от произволната функция Random(10). Попълването на масива ще се задава от цикличен оператор for, в тялото на който се изчислява произволно число от функцията Random(10), след което тази стойност се присвоява на следващияаз -ти елемент от масива.

Вмъкване на ProcedureMas1(Var massiv:mas; n:integer);

I: цяло число

Започнете

рандомизирам;

За i:=1 до n направете

Massiv[i] := Random(10);

Край ;

2. Формиране на едномерен масив чрез въвеждане на елементи от клавиатурата.

Вмъкване на ProcedureMas2(Var massiv:mas; n:integer);

I: цяло число

Започнете

За i:=1 до n направете

Започнете

write("Въведете ", т.е ,"ти елемент от масива ");

readln(масив[i]);

край;

край;

Масивът се показва на екрана, както следва:

ProcedurePrintMas(masiv:mas; n:integer);

I: цяло число

Започнете

За i:=1 до n

Write(Array[i]:5);

край.

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

Намиране на максимален (минимален) елемент от масив.

Да кажем, че имаме едномерен масив:

20,-2, 4, 10,7, 21,-12, 0, 4, 17.

Нека помислим какви операции трябва да се извършат, ако искате да намерите максималния елемент. Естествено, операцията за сравнение Ние не мислим за факта, че винаги сравняваме една двойка, "бягаща" през очите на всички елементи на масива. Ще изградим алгоритъма за търсене на максималния (минималния) елемент по такъв начин, че да сравним двойка числа, повтаряйки действието за сравнение необходимия брой пъти.

Така че трябва да отговорим на два въпроса:

1) кои числа са включени в двойката, която съставлява операцията за връзка;

2) колко пъти е необходимо да се повтори операцията за сравнение. Нека въведем допълнителна променлива с име max. Това ще бъде едно от числата, второто число е следващият елемент от масива. За да се извърши първата операция за сравнение, е необходимо да се присвои някаква начална стойност на променливата max. Тук може да има два варианта:

1) присвоете първия елемент от масива на променливата max;

2) задайте число, за което е известно, че е по-малко от всички елементи на масива.

Масивът съдържа информация за броя на студентите във всяка група от първи курс. Определете групата с максимален брой студенти, като приемете, че номерът на групата отговаря на поредния номер в масива (приемаме, че такава група е уникална).

С други думи, трябва да намерим максималния елемент и неговия брой.

програма max_num;

тип mas=масив[ 1.. 10] от байт;

var a: mas;

num, i: байт;

макс.: байт;

започвам

(запълване на блок)

за i:=l до 7 do

readln(a[i]);

(потърсете максимума и неговия брой)

макс.:==0;

(въведете най-малкото число за този масив)

за i:=l до n направи

ако a[i]>max тогава започнете

брой:=i;

max:=a[i]

край;

writeln("максимален брой ученици=",max);

writeln("номер на група=",номер);

край.

3) Намерете минималния елемент сред четните елементи на масива.

Обяснение: не можем да присвоим първия елемент от масива на променливата min, защото може да е странно. Следователно трябва да изберем някакво много голямо число за този тип данни.

Ако декларираме елементи от целочисления масив, тогаватака номерът ще бъде +32767.

програма min_even;

a:масив от цели числа;

i: цяло число;

min:цяло число;

започвам

за i:=l до 10 do beein

writeln("Въведете следващия елемент от масива");

readln(a[i]);

край;

min:=32767;

за i:=l до 10 do

ако (a[i]

if min=32767 then writeln ("няма четни елементи в масива") else writein ("минималният елемент сред четните елементи на масива=",min)

край.

Моля, обърнете внимание: трябва да проверите дали стойността на променливата min се е променила, защото дори елементи може да не съществуват.

Други свързани произведения, които може да ви заинтересуват.vshm>

8729. ДЕФИНИЦИЯ И МЕТОДИ ЗА ОЗНАЧАВАНЕ НА КРАЙНИ АВТОМАТИ. ПРОБЛЕМ ЗА СИНТЕЗ. ЕЛЕМЕНТАРНИ АВТОМАТИЗИРА 189,1 КБ
Дефиниция и методи за възлагане държавна машина. ДЕФИНИЦИЯ И МЕТОДИ ЗА ОЗНАЧАВАНЕ НА КРАЙНИ АВТОМАТИ. Дефиниция на краен автомат. Начини за задаване на краен автомат.
3552. Индивидуална домашна работа по химия. Домашна работа по химия 475.47KB
Методическите указания включват индивидуални домашни работи по следните теми: класове неорганични съединения, химичен еквивалент, атомна структура, химична връзка, химична термодинамика, химична кинетика, концентрация на разтвори, йонни реакции и хидролиза на соли, окислително-възстановителни реакции, електрохимични процеси, свойства на метали.
12127. Стратегически минерали (PGM, Ni, Co, Cr, Cu) от палеопротерозойски слоести мафични масиви в североизточната част на Феноскандинавския щит 17,77 КБ
Кратко описаниеразвитие. Предимства на разработката в сравнение с аналозите. Важен аспект на разработката е възможността за минимизиране на негативното техногенно въздействие върху заобикаляща средапоради рязкото намаляване на широкото използване на тежко минно и сондажно оборудване на етапите на разузнаване и проучване. Области търговска употребаразвитие.
9554. МАТЕМАТИКА. МЕТОДИЧЕСКИ ПОМОЩИ И ЗАДАЧИ 268.34KB
Учебната дисциплина "Математика" е предназначена за изпълнение на държавните изисквания за минимално съдържание и ниво на подготовка на завършилите средно професионално образование.
18129. Творческите задачи като средство за развитие на въображението 91,06 КБ
Тези изследвания отразяват разнообразието от научни идеи и практически подходи за организиране на творческата дейност на учениците в образователния процес, но аспектът на целенасоченото предоставяне на творчески задачи за по-младите ученици в процеса на обучение като средство за развитие на въображението все още не е е достатъчно проучен. Въз основа на идентифицираните противоречия при анализа на философската психологическа и педагогическа литература, както и в резултат на изучаване на трудовия опит основно училищебеше формулиран изследователският проблем, който се състои в теоретичната ...
19517. Разработване на техническо задание за автоматизация на магазин Буква 155.63KB
Компетентна продажба на стоки въз основа на изискванията на клиента, т.е. консултация със специалисти. Следователно е необходимо магазинът да получава информация за състоянието на пазара и да предоставя на пазара информация за наличните стоки и услуги. Взаимодействието с медиите се състои в предоставяне на магазина на данни за неговите стоки и услуги впоследствие, от тези данни ще се формира реклама за лаптоп-салон, която се възприема от пазара на стоки и услуги. Разширяване на видовете стоки Предимства на магазина: Богат опит ...
3548. Домашни работи по химия и насоки за тяхното изпълнение 229.61KB
Тези домашни задачи са предназначени за систематична работа на студенти от всички специалности по курса по химия в съответствие с учебна програма. Изпълнението на задачите допринася за развитието на уменията на учениците за самостоятелна работа.
19091. АНАЛИЗ НА СПЕЦИФИКАЦИИТЕ И ОСНОВНИТЕ ТЕХНИЧЕСКИ ИЗИСКВАНИЯ КЪМ РАЗРАБОТЕНИЯ ПРОЕКТ 911.42KB
Сървърно помещение (сървърно помещение или просто сървърно помещение) - обособено технологично помещение със специално създадени и поддържани условия за разполагане и работа на сървърно и телекомуникационно оборудване. Допустима температурав сървърната стая трябва да бъде
1763. Изпълнение на задача като клас, използвайки контейнера на C++ стандартната библиотека с шаблони (STL) за съхраняване на информация 190,6 КБ
Синтаксисът на C++ е наследен от езика C. Един от принципите на проектиране беше да се поддържа съвместимост със C. C++ обаче не е строго надмножество на C; набор от програми, които могат да бъдат еднакво успешно компилирани като C компилатори...
10124. Разработване на техническо задание за предоставяне на рекламни услуги, услуги по почистване, охрана, персонал 31,88 КБ
Разработване на техническо задание за рекламни услуги: правна уредба рекламни услуги. Разработване на техническо задание за услуги по почистване: основни понятия и видове услуги. Разработване на техническо задание за охранителни услуги: правна уредба. Разработване на техническо задание за службите за персонал: основни понятия.

Дефиниране на масиви

Едномерни масиви

Основни понятия:

Масивът се обозначава с едно име. И така, цялото множество от реални числа

1.6, 14.9, -5.0, 8.5, 0.46

може да се счита за масив и да се означава с едно име, например A. Променливите, които образуват масива, се наричат ​​елементи на масива. Всеки елемент от масива се обозначава с името на масива с индекс, ограден в скоби.

A(1), A(2), A(3), ..., A(n).

Индексът определя позицията на елемента от масива от данни спрямо началото му.

За горния пример елементите на масив A са:

A(1)=1.6, A(2)=14.9, A(3)=-5.0, A(4)=8.5, A(5)=0.46

Преди да може да се използва масив, в програмата трябва да бъде включен DIM израз, за ​​да се укаже максималния разрешен индекс. Това ще позволи на системата BASIC да резервира област с достатъчен размер в паметта.

Формат на нотация на оператора DIM:

DIM array_name (max_index)

"Array_name" обикновено се избира според същите правила като обикновените имена на променливи.

"max_index" указва максималния разрешен индекс в програмата и трябва да е положителен.

Примери за описания на масиви:

DIM X(50) „Декларация на едномерен числов масив X за 50 числа;

DIM V$(12) "Декларация на едномерен масив V за 12 символни елемента.

Деклариране на масив с променлив размер.

Видове грешки

Ако посочите в програмата елемент от масив с индекс, по-голям от стойността на измерението, декларирана в израза DIM или по подразбиране, тогава се показва съобщение за грешка 9:

Долен индекс извън обхвата (извън обхвата).

Ако DIM оператор е зададен след използване на име на масив или ако масив е предеклариран, се появява съобщение 10:

Преоразмерен масив (повторна настройка на размерността на масива).

Има два начина за присвояване на стойности на елементи от масив:

1) статичен, използващ оператори DATA, READ и оператор за присвояване;

2) динамичен, използвайки командата INPUT и функцията RND.

При работа с масиви е много удобно да използвате оператора за цикъл FOR...NEXT. Параметърът на цикъла се използва като индекс на масива.

1. Пример за попълване на статичен масив.

ДАННИ слива, ананас, круша

ДАННИ ябълка, череша, кайсия

Цикълът FOR...NEXT последователно присвоява стойности на всички променливи в списъка.

2. Пример за динамично попълване на масив

INPUT "Въведете броя на елементите на масива ";N

IN този примеризползва се присвояване на променливи на размерността на масива.

3. Пример за попълване на масив с помощта на стандартната функция RND

Масив в програмиранетое съвкупност от еднотипни елементи (еднотипни).

Има няколко вида масиви - едноизмерен(вектор) и многоизмерен.

Елементите в масива се характеризират със своите имена и поредни номера – индекси.

Индексът е поредният номер на елемента в масива.

В Pascal на всеки елемент се присвояват един или повече индекси, които описват позицията на елемента в масива.

едномерен масив

Синтаксисът за масив в Pascal е:

Var a: масив от цяло число;
Където:
1 - долен индекс
10 – горен индекс
A - име на променлива в масива
– диапазон от стойности
Integer - тип данни
A[ i ] - достъп до елемент от масив в Pascal

Типът елементи на масива може да бъде всеки валиден тип в Pascal, с изключение на файлове (дори масиви).

Пример за масив: A = (1,-5,230,55,-88,0,100)

Когато се декларира масив, неговият горен индекс трябва да бъде строго дефиниран.

Когато се описва масив, се разпределя памет и компилаторът трябва да знае колко памет да разпредели за описания масив.

Няма ограничение за броя на индексите в масива на Pascal. Самият масив обаче не трябва да е по-голям от 65537 байта.

Масивът може също да бъде деклариран в секцията за декларация на типа:

Тип маса = масив от реални; Var a,b,c: маса;
Достъпът до елементите на масива се извършва в цикъл.

Най-рационалният начин за обработка на елементите на масива в Pascal е операторът на цикъл с параметър.

Защо мислиш? Да, защото знаем крайния брой елементи в масива.

Алгоритми за попълване на масиви на Pascal

  1. Въвеждането на елементи на масива с помощта на компютър се извършва чрез следната конструкция:

    За i:= 1 до 10 Do read(A[i]);

  2. Задаване на произволен масив.

    Масивът може да бъде зададен на случаен принцип с помощта на произволен генератор.

    За да стартирате генератора на случайни променливи в Pascal, трябва да регистрирате специална конструкция - Рандомизиране;

    Новата стойност се генерира с помощта на функцията Random(n), където n е цяло число. В този случай се генерира всяко число с диапазон от 0 до n.

    K:=Произволно(100);
    Ако функцията Random се използва без параметър, тогава тя генерира реално число (реален тип) в диапазона 0< X < 1

    X:= произволно;

Произволно попълване на масив

Тази конструкция в Pascal реализира произволното попълване на масив.

произволно ; За i:= 1 до 10 Do Begin A[i] := random*100-70 ; write(A[i]:6:2) ; Край ;

Урокът обяснява как се работи с едномерни масиви в Pascal, как се използва генератор на случайни числа - функция случаенв Паскал. Разглежда се пример за показване на числата на Фибоначи.


Материалите на сайта са насочени към практическото развитие на езика Програмиране на Паскал. Накратко теоретична информацияне претендират за пълно покритие на материала по темата; необходимата информация може да бъде намерена в интернет в големи количества. Нашите задачи включват предоставяне на възможност за придобиване на практически умения за програмиране на Pascal. Решените илюстративни примери и задачи са представени с нарастване на тяхната сложност, което ще улесни изучаването на материала от нулата.

Декларация на масив

Масивите в Pascal са два вида: едномерни и двумерни.
Дефиниция на едномерен масив в Pascalзвучи така: едномерен масив е определено количество отелементи, принадлежащи към един и същи тип данни, които имат едно и също име, като всеки елемент има свой собствен индекс - пореден номер.
Описанието на масив в Pascal (декларация) и достъпът до неговите елементи е както следва:

Декларация на масив

променлива дължина: масив [1 .. 3] от цяло число; начало дължина[ 1 ] : = 500 ; дължина[ 2 ] : = 400 ; дължина[ 3 ] : = 150 ; ...

var length: масив от цели числа; начална дължина:=500; дължина:=400; дължина:=150; ...

  • дължина - идентификатор (име) на масива;
  • за декларацията се използва служебната дума Array (в превод от английски "масив" или "набор");
  • - номерът (индексът) на първия елемент се поставя в квадратни скоби, след това две точки и индексът на последния елемент от масива, т.е. всъщност е посочен броят на елементите; се извиква броя на елементите на масива измерение на масива
  • of integer (от английски "от цели числа") - показва към какъв тип принадлежи масивът, от тук е служебна дума.
  • обявявам размерът може да бъде чрез константа:

    Инициализация на масива

    Освен това самият масив може да бъде постоянен, т.е. всички негови елементи в програмата са предварително определени. Описанието на такъв масив е както следва:

    const a: масив [ 1 .. 4 ] от цяло число = (1 , 3 , 2 , 5 ) ;

    const a: масив от цели числа = (1, 3, 2, 5);

    Попълване с последователни числа:

    Резултат: A = 8, A = 9, A = 10, ..., A[N] = A + 1

    Въвеждане от клавиатурата:

    Пример:Помислете как се въвежда масив в Pascal:

    writeln("Въведете брой елементи: "); четене(n); (ако номерът не е известен предварително, ние го питаме) for i:= 1 to n do begin write("a[", i, "]="); четене(a[i]); ... край; ...


    ✍ Примерен резултат:

    Въведете броя на елементите: 3 a=5 a=7 a=4

    Показване на елементи от масива

    Пример:Помислете как да изведете масив в Pascal:

    1 2 3 4 5 6 7 8 9 10 11 12 13 var a: масив [1 .. 5] от цяло число; (масив от пет елемента) i: цяло число; начало на [ 1 ] := 2 ; a[ 2 ] := 4 ; a[ 3 ] := 8 ; a[ 4 ] := 6 ; a[ 5 ] := 3 ; writeln("Масив A:" ); for i := 1 to 5 do write (a[ i] : 2 ); (елементи на изходен масив)край.

    var a: масив от цели числа; (масив от пет елемента) i: цяло число; започвам a:=2; а:=4; а:=8; а:=6; а:=3; writeln("Масив A:"); за i:= 1 до 5 направете write(a[i]:2); (елементи на изходен масив) край.

    ✍ Примерен резултат:

    Масив A: 2 4 8 6 3

    За работа с масиви най-често се използва в Pascal с параметър, тъй като обикновено се знае колко елемента има в масива и е възможно да се използва броячът на цикъла като индекси на елементите.

    Масив от задачи 0.Необходимо е да се посочи реален масив с размерност 6 (т.е. от шест елемента); попълнете масива с входни стойности и покажете елементите на екрана. Използвайте два цикъла: първият е за въвеждане на елементи, вторият е за изход.


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

    Обработката на масиви в Pascal, както и попълването на масив, обикновено се извършва с помощта на for цикъл.

    Случайна функция в Pascal

    За да не се изискват постоянно стойностите на елементите на масива, се използва генератор на произволни числа в Pascal, който се реализира от функцията Random. Всъщност се генерират псевдослучайни числа, но не това е важното.

    За генериране на числа от 0 до n (без да се включва самата стойност на n, цели числа в обхвата на integer; i:integer; start randomize; for i:=1 to 10 do begin f[i]:=random(10); ( интервал ) write(f[i]," "); край; край.

    ✍ Примерен резултат:

    9 8 9 2 0 3 6 9 5 0

    За реални числав интервалаи показване на елементи на екрана: дефинирайте три позиции за изхода на всеки елемент.

    Числата на Фибоначи в Паскал

    Най-честият пример за работа с масив е извеждането на поредица от числа на Фибоначи в Pascal. Нека го разгледаме.

    Пример:Поредица от числа на Фибоначи: 1 1 2 3 5 8 13…

    f[ 0 ] := 1 ; f[ 1 ] := 1 ; f[ 2 ] := 2 ; …

    f:=1; f:=1; f:=2; …

    f[ 2 ] : = f [ 0 ] + f [ 1 ] ; f[ 3 ] : = f [ 1 ] + f [ 2 ] ;
    f[ i] : = f[ i- 2 ] + f[ i- 1 ] ;

    f[i]:=f+f;

    Вземете формулата за елементите на серията.

    Пример:Изчислете и отпечатайте първите 20 числа на Фибоначи.

    1 2 3 4 5 6 7 8 9 10 11 var i: цяло число; f: масив [0 .. 19] от цяло число; начало f[ 0 ] := 1 ; f[ 1 ] := 1 ; за i: = 2 до 19 направете начало f[ i] : = f[ i- 1 ] + f[ i- 2 ] ; writeln (f[ i] ) край; край.

    var i:integer; f: масив от цяло число; beginf:=1; f:=1; за i:=2 до 19 започнете f[i]:=f+f; writeln(f[i]) край; край.

    В този пример става ясен принципът на работа с числови серии. Обикновено за показване на числова серия има формула за определяне на всеки елемент тази серия. И така, в случая с числата на Фибоначи, тази формула на правилото изглежда като f[i]:=f+f. Следователно трябва да се използва в за цикълпри формиране на елементи на масива.

    Задача за масив 2.Даден е ред от 10 произволенчисла: a, a, ... , a (използвайте функцията random(). Изчислете и отпечатайте суми на тройки на съседни числа: a+a+a , a+a+a , a+a+a , …… , a+a+a

    Псевдокод:

    Намиране на максималния елемент по неговия индекс:


    Настройка на Array_min:Намерете минималния елемент от масива. Отпечатайте елемента и неговия индекс.

    Масив от задачи 4.Даден е масив от 10 цели числа. Намерете броя на негативите и покажете числото на екрана.

    Масив от задачи 5.Намерете минимума и максимума от n въведени числа (масив). Определете разстоянието между тези елементи. 3 2 6 1 3 4 7 2 >>> min=1, max=7, разстояние=3

    Масив от задачи 6.Дан целочислен масивразмер н. Отпечатайте всички четни числа, съдържащи се в този масив в низходящ ред на техните индекси, както и техния номер К. N=4 mas: 8 9 2 5 >>> 2 8 count= 2

    Масив от задачи 7.Въведете от клавиатурата масив от 5 елемента, намерете в него двата максимални елемента и техните номера.

    Пример:

    Първоначален масив: 4 -5 10 -10 5 максимум A=10, A=5

    Търсене в масив

    Обмисли сложен примерработа с едномерни масиви:

    Пример:Даден е масив от 10 числа. Определете дали масивът съдържа числото, въведено от потребителя. Ако да, изведете "намерен", ако не - "не е намерен".
    Сложността на задачата се състои в това, че за показване на думи "намерен"или "не е намерен"необходимо веднъж.


    За да решите задачата, ви е необходим операторът break - изход от цикъла.
    Вариант на решение 1. Цикълът for:

    Покажи решение

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 var f: масив [1 .. 10] от цяло число; флаг: булев; i, c: цяло число; стартиране на рандомизиране; за i: = 1 до 10 do begin f[ i] : = random(10) ; write (f[ i] , " " ) ; край ; флаг:=false writeln ( "въведете проба") ; readln(c); for i: = 1 to 10 do if f[ i] = c then start writeln("found" ) ; флаг:= вярно; прекъсване ; край ; if flag= false then writeln("not found" ) ; край.

    varf: масив от цели числа; флаг: булев; i,c:цяло число; стартиране на рандомизиране; за i:=1 до 10 направете начало f[i]:=random(10); write(f[i]," "); край; флаг:=false; writeln("Въведете шаблон"); readln(c); for i:=1 to 10 do if f[i]=c then start writeln("found"); флаг:=вярно; прекъсване; край; if flag=false then writeln("not found"); край.

    Обмисли ефикасно решение:

    Задача:намерете елемент, равен на X в масива, или задайте, че той не съществува.

    Алгоритъм:

    • започнете от 1-ви елемент (i:=1);
    • ако следващият елемент (A[i]) е равен на X, тогава прекратете търсенето, в противен случай преминете към следващия елемент.

    решение в Pascal Вариант 2. Докато цикъл:

    Предлагаме ви да гледате подробен видео анализ на намирането на елемент в масив (ефективен алгоритъм):

    Масив от задачи 8.Попълнете масив от 10 елемента със случайни числа в интервала и изведете числата на всички елементи, равни на X .

    Пример:

    Първоначален масив: 4 0 1 2 0 1 3 4 1 0 Какво търсим? 0 А, А, А

    Циклична смяна

    Пример:изместете елементите на масива наляво с 1 позиция, първият елемент заема мястото на последния.



    Решение:

    Алгоритъм:
    A:=A; A:=A;… A:=A[N];

    програма:

    Масив от задачи 9.Попълнете масив от 10 елемента с произволни числа в диапазона [-10..10] и завъртете наляво без първи елемент.
    Пример:Изходен масив: 4 -5 3 10 -4 -6 8 -10 1 0 Резултат: 4 3 10 -4 -6 8 -10 1 0 -5

    Пренареждане на елементи в масив

    Помислете как един масив се пермутира или обръща.

    Пример:пренаредете елементите на масива в обратен ред


    Решение:

    Алгоритъм:

    Псевдокод:

    програма:

    Масив от задачи 10.Попълнете масив от 10 елемента с произволни числа в диапазона [-10..10] и обърнете всички елементи с изключение на последния.
    Пример:Изходен масив: -5 3 10 -4 -6 8 -10 1 0 4 Резултат: 0 1 -10 8 -6 -4 10 3 -5 4

    Избиране на елементи и записване в друг масив

    Пример:намерете елементи в масива, които отговарят на някакво условие (например отрицателни) и ги копирайте в друг масив

    Решение:

    Решение:пребройте броя на намерените елементи с помощта на брояча, задайте следващия елемент на място B. Чрез промяна броятрябва да бъдат присвоени 1 .


    Изход от масив B:

    writeln("Избрани елементи"); for i:=1 to count-1 do write(B[i], " ")

    Масив от задачи 11.Попълнете масив с произволни числа в интервала и запишете в друг масив всички числа, които завършват на 0.
    Пример:Изходен масив: 40 57 30 71 84 Завършва с 0: 40 30

    Сортиране на елементи от масив

    Сортиране на мехурчета

    • При този тип сортиране масивът се представя като вода, малките елементи са мехурчета във вода, които изплуват на върха (най-леките).
    • При първата итерация на цикъла елементите на масива се сравняват по двойки: предпоследният с последния, предпоследният с предпоследният и т.н. Ако предишният елемент е по-голям от следващия, те се разменят.
    • При втората итерация на цикъла няма нужда да сравнявате последния елемент с предпоследния. Последният елемент вече е на мястото си, той е най-големият. Това означава, че броят на сравненията ще бъде с едно по-малко. Същото важи и за всяка следваща итерация.

    Изпълнение в Pascal:

    1 2 3 4 5 6 7 8 за i: = 1 до N- 1 направете начало за j: = N- 1 надолу до i направете ако A[ j] > A[ j+ 1 ] тогава започнете с : = A[ j] ; A[ j] := A[ j+ 1 ] ; A[j+ 1] : = c; край ; край ;

    for i:=1 to N-1 do begin for j:=N-1 downto i do if A[j] > A then begin c:= A[j]; A[j] := A; A := с; край; край;

    Масивна задача 12.Попълнете масив от 10 елемента със случайни числа в интервала и сортирайте първата половина от масива във възходящ ред, а втората половина в низходящ ред (използвайки метода „Bubble“). Пример:Изходен масив: 14 25 13 30 76 58 32 11 41 97 Резултат: 13 14 25 30 76 97 58 41 32 11

    Сортиране на селекцията

    • минималният елемент се търси в масива и се поставя на първо място (разменя се с A);
    • сред останалите елементи се търси и минималният, който се поставя на второ място (разменят се местата с А) и т.н.

    начало c: = A[i] ; A[i] := A[min] ; A[min] := c; край ; край ;

    за i:= 1 до N-1 направете start min:= i ; за j:= i+1 до N направете, ако A[j]< A then min:=j; if min <>след това започвам c:=A[i]; A[i]:=A; A:=c; край; край;

    Масив от задачи 13:Попълнете масив от 10 елемента със случайни числа в интервала и го сортирайте във възходящ ред на сумата от цифрите Пример:Изходен масив: 14 25 13 12 76 58 21 87 10 98 Резултат: 10 21 12 13 14 25 76 58 87 98

    Бързо сортиране или бързо сортиране

    Алгоритъм:

    Изпълнение в Pascal:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 процедура QSort ( първо, последно: цяло число ) ; var L, R, c, X: цяло число; започнете, ако първи< last then begin X: = A[ (first + last) div 2 ] ; L: = first; R: = last; while L <= R do begin while A[ L] < X do L: = L + 1 ; while A[ R] >X до R: = R - 1; ако Л<= R then begin c: = A[ L] ; A[ L] : = A[ R] ; A[ R] : = c; L: = L + 1 ; R: = R - 1 ; end ; end ; QSort(first, R) ; QSort(L, last) ; end ; end .

    процедура QSort(първо, последно: цяло число); var L, R, c, X: цяло число; започнете, ако първи< last then begin X:= A[(first + last) div 2]; L:= first; R:= last; while L <= R do begin while A[L] < X do L:= L + 1; while A[R] >X направи R:= R - 1; ако Л<= R then begin c:= A[L]; A[L]:= A[R]; A[R]:= c; L:= L + 1; R:= R - 1; end; end; QSort(first, R); QSort(L, last); end; end.

    Масив от задачи 14:
    Попълнете масив от 10 елемента с произволни числа в диапазона [-50..50] и го сортирайте с помощта на алгоритъма за бързо сортиране.