Даден е двуизмерен масив 5x5. Организирайте въвеждане на елементи и извеждане на резултати под формата на прозорци. След пауза сменете цвета на прозорците, в които се съхраняват зададените според условието елементи.
Варианти на задачите:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11. Намерете произведението на елементите, които са над главния диагонал. Заменете всички нечетни елементи с намереното число.
12. Намерете сумата от елементи, които са на нечетни позиции (сумата от индекси (i+j) за X ij е нечетно число). Заменете всички отрицателни елементи с намереното число.
13. Намерете произведението на всички елементи, които са на главния диагонал. Заменете всички елементи от петия ред и втората колона с намереното число.
14. Намерете средноаритметичната стойност на елементите на главния диагонал и средната аритметична стойност на страничния диагонал. Разменете елементите по диагоналите.
15. Намерете средноаритметичното на положителните елементи, които са над главния диагонал. Заменете всички отрицателни елементи с намереното число.
16. Намерете сбора на нечетните елементи. Заменете с намереното число всички елементи, които са разположени над страничния диагонал.
17. Намерете произведението на елементите на i-ред и j-колона (i, j- първо въведете от клавиатурата). Заменете всички елементи под второстепенния диагонал с намереното число.
18. Намерете произведението на елементи, които са на четни позиции (сумата от индексите (i+j) за X ij е нечетно число). Заменете всички елементи на главния диагонал с намереното число.
19. Намерете средноаритметичната стойност на нечетните елементи. Заменете всички елементи на вторичния диагонал с намереното число.
20. Намерете сумата от всички четни елементи, които са над второстепенния диагонал. Заменете всички елементи на четвъртия ред с намереното число.
21. Намерете произведението на елементите, които са над главния диагонал. Заменете всички нечетни елементи с намереното число.
22. Намерете сумата от елементи, които са на нечетни позиции (сумата от индекси (i+j) за X ij е нечетно число). Заменете всички отрицателни елементи с намереното число.
23. Намерете произведението на всички елементи, които са на главния диагонал. Заменете всички елементи от петия ред и втората колона с намереното число.
24. Намерете средноаритметичната стойност на елементите на главния диагонал и средната аритметична стойност на страничния диагонал. Разменете елементите по диагоналите.
25. Намерете средноаритметичното на положителните елементи, които са над главния диагонал. Заменете всички отрицателни елементи с намереното число.
Например: Намерете средноаритметичната стойност на елементите по главния диагонал
След пауза:
Контролни въпроси
1. Какво е текстов режим и как се различава от нормалния режим?
2. Какво е прозорец?
3. Как да преместя курсора до зададените координати на прозореца?
4. Как да променя цвета на шрифта/фона?
Въведение
Съвременните технически устройства, предназначени за управление и автоматизация, широко използват двоични схеми и двоична бройна система. Теорията на логическата алгебра се използва за анализиране и синтезиране на комбинационни и последователни превключващи вериги.
Лекционният материал е представен в три глави. Първата глава дава основните понятия на теорията на логическата алгебра и разглежда различни форми на представяне на булеви функции. Втората глава е посветена на въпросите за минимизиране на представянето на булеви функции, което е основата за абстрактния синтез на дискретни устройства. Третата глава съдържа информация за методите за реализиране на булеви функции, базирани на превключващи вериги, което е основата за структурния синтез на дискретни устройства.
При написването на лекционните записки е използвана следната литература: за раздел 1.1 - ; за раздел 1.2 – ; за раздел 1.3 – ; за раздел 2.1 – ; за раздел 2.2 – ; за раздели 3.1, 3.2 – .
Лабораторни упражнения за училища и университети по решаване на задачи за обработка на двумерни масиви на езика C. Списък с лабораторни задачи (щракването върху линка ви насочва към решението на задачата, ако е налично):
Допълнителни задачи:Производителността на всички програми е тествана в CodeBlocks 16.01 (MinGW, Windows 10). Можете да дадете своите решения на нерешени програми и предложения за подобряване на съществуващите в коментарите в долната част на страницата.
Изтеглете лабораторния файл и всички изходни кодове на програмите в архива:
Можете също така да поръчате решение за вашата лабораторна работа на C++ и много други:
№ 1: Даден е двуизмерен масив. Намерете минималната сума на елементите на низ. Решете задачата без да използвате допълнителен едномерен масив.
#включи№ 2: Определете координатите на елемента, който е най-близо до средната стойност на всички елементи на масива.
#включи№ 9: Даден е двуизмерен масив от четен брой колони. Разменете колоните от лявата половина на масива с колоните от дясната половина.
#включи№ 14: За всеки ред от двумерен масив намерете броя на елементите, чиято последна цифра е a.
#включи№ 21: Даден е двумерен масив b. Разглеждайки го като матрица, транспонирайте b.
#включи№ 1 (допълнително): Даден е двуизмерен масив. Сортирайте редовете му в ненамаляващ ред на първите им елементи.
#включи№ 2 (Допълнително): Определете дали дадена квадратна матрица е ортонормална, т.е. такъв, в който скаларното произведение на всяка двойка отделни низове е 0, а скаларното произведение на всеки низ със себе си е 1.
#включи№ 3 (Допълнително): Даден е квадратен двуизмерен масив. Намерете сумата от елементите на всеки негов диагонал, успореден на второстепенния.
#включи- образователни: да се насърчи формирането на идея за двуизмерен масив и основните свойства на квадратните матрици; обмислете действия, които могат да бъдат извършени върху матрици; въвеждане на стандартни алгоритми за обработка на матрици в Pascal; създават условия за развиване на умения за решаване на алгоритми с двумерни масиви;
- развитие: създаване на условия за развитие на умения за работа в ограничен период от време, развитие на умения за самостоятелна работа и развитие на умения за водене на бележки.
- образователен: да насърчава създаването на психологически комфорт за работа в класната стая, развитието на самообладание, отговорно отношение към работата и повишена мотивация за образователни дейности.
Тип урок: комбиниран.
Методи на обучение: лекция, самостоятелна работа.
Форми на организация: фронтална работа, самостоятелна работа.
Оборудване: задачи за работа в класната стая (индивидуални карти, задачи на компютър), бележки на дъската.
По време на часовете:
1. Организационен момент.
Поздравления.
Темата е докладвана.
Поставете цели и задачи на урока.
2. Актуализиране на придобитите знания
Основните моменти от предходната тема се изговарят устно: „Едномерни масиви“. Фронтална мини анкета върху основните определения.
3. Поставяне на цели, поставяне на задачи:
4. Лекция
Определение.
Двумерният масив е колекция от данни, в която всяка стойност зависи от две числа, които могат да се разглеждат като индекс на колона в матрица.
Формат на запис
<имя>: масив[n_index_1..in_index_1, n_index_2 ..in_index_2] на <тип>
A: масив от цели числа;
За да използвате елемент от масив, трябва да посочите името на масива и индекса на елемента. Първият индекс съответства на номера на реда, вторият – на номера на колоната. Например:
за i:=1 до n направи
за j:=1 до n направи
a:= случаен(100);
При инициализиране на двумерни масиви всеки ред е заобиколен от допълнителна двойка скоби:
const a:mas= ((2,3,1,0),
(1,9,1,3),
(3,5,7,0));
Аналогът на масивите на Паскал в математиката са матриците. Матрица, в която броят на редовете е равен на броя на колоните, се нарича квадратна. A(n,n) – квадратна матрица
Основни свойства на квадратните матрици:
1. Квадратните матрици имат главен и страничен диагонал. Например за матрица A главният диагонал съдържа елементи 1, 5 и 9, а вторичният диагонал съдържа елементи 3, 5 и 7.
i=j – елементите са разположени на главния диагонал;
i> j – елементите са разположени под главния диагонал;
i
i+j= n+1– елементи са разположени на страничния диагонал;
i+j< n+1– элементы расположены над побочной
диагональю;
i+j> n+1– елементи са разположени под страничния диагонал;
2. Квадратна матрица, в която всички елементи, с изключение на елементите на главния диагонал, са равни на нула, се нарича диагонална матрица
3. Диагонална матрица, в която всички елементи на главния диагонал са равни на 1, се нарича матрица на идентичността
4. Ако размените редовете и колоните в матрицата A (m,n), получавате матрицата A t (m,n), която се нарича транспонирана матрица.
Основни операции, които могат да се извършват върху матрици
- обобщавам;
- открийте разликата;
- произведение на матрица с определено число;
- произведение на две матрици.
Типични алгоритми за обработка на матрици в Pascal
- Извеждане на матрицата под формата на таблица:
- Използване на генератор на произволни числа:
- 2-ри начин за показване на матрицата под формата на таблица:
- Сумиране на матрици:
- Транспонирането на матрица е огледален образ на нейните елементи спрямо главния диагонал. Можете да направите това, като въведете нов масив:
за i:= 1 до n направи
започвам
за j:= 1 до m направи
запис (a:4);
writeln
край;
рандомизирам;
за i:=1 до m направи
започвам
за j:=1 до n направи
започвам
a:=random(100)-10;
запис (a:4);
край;
writeln;
край;
за i:= 1 до n направи
за j:= 1 до m направи
ако j>m тогава напишете (a:4)
else writeln(a:4);
за i:= 1 до n направи
започвам
за j:= 1 до m направи
c:=a+ b
край;
за i:= 1 до n направи
за j:= 1 до n направи
b=a;
5. Първичен контрол
„Контурна карта“ 2 опции
1 вариант
- Коригирайте неточностите в описанието на двумерен масив:
- Попълнете липсващите определения:
- Попълнете липсващите определения:
- Намерете грешки в алгоритъма:
вар
A= масив от цели числа;
... ... на двумерни масиви, всеки ред е ограден в допълнителна двойка скоби:
const a:mas= ((2,3,1,0),
(1,9,1,3),
(3,5,7,0));
Основните действия, които могат да се извършват върху матрици са: сумиране, произведение на две матрици,….,….
Матрица, чийто брой редове е равен на броя на колоните, се нарича .... ….. .
за i:= 1 до n направи
започвам
за j:= 1 до m направи
c:=a+ a
край;
Вариант 2
- Коригирайте неточностите в описанието на масива:
конст
n=4; m=3;
Тип
mas:масив от цяло число;
- Попълнете липсващите определения:
- Попълнете липсващите определения:
- Попълнете липсващите определения:
- Намерете грешки в алгоритъма:
...... е набор от данни, всяка стойност на които зависи от две числа, които могат да се разглеждат като индекс на колона в матрица.
Диагонална матрица, в която всички елементи на главния диагонал са равни на ... се нарича матрица на идентичността
Квадратна матрица, в която всички елементи, с изключение на елементите на главния диагонал, са равни на нула, се нарича … … .
рандомизирам;
за i:=1 до m направи
започвам
за j:=1 до n направи
започвам
a:=random(100)-10;
край;
край;
Каква типична задача изпълнява алгоритъмът?
Алгоритми на езика Pascal
- Напишете програма, която за целочислена матрица 3x4 определя средноаритметичното на нейните елементи и броя на положителните елементи във всеки ред. Приложение 2
- Напишете програма, която за правоъгълна целочислена матрица 3x4 определя номера на най-лявата колона, съдържаща само положителни елементи. Ако няма такава колона, се показва съобщение. Приложение 3
програма средно_n;
const m=3;
n= 4;
вар
i,j,n_pos_el:цяло число;
среден:реален;
започвам
за i:=1 до m направи
за j:=1 до n направи read(a);
средно:=0;
за i:=1 до m започвам
n_pos_el:=0;
за j:=1 до n направете начало
среден:=среден+а;
ако a>0 тогава inc(n_pos_el);
край;
writeln("V",i,"-oi stroke",n_pos_el,"полозителни елементи");
край;
sred:=сред/m/n;
writeln("Srednee arifmeticheskoe:",sred:6:2);
край.
програма num_posit;
const m=3;
n=4;
вар
a: масив от цели числа;
i,j,num:цяло число;
all_posit:boolean;
започвам
рандомизирам;
за i:=1 до m направи
започвам
за j:=1 до n направи
започвам
a:=random(100)-10;
запис (a:4);
край;
writeln;
край;
брой:=0;
за j:=1 до n направете начало
all_posit:=вярно;
за i:=1 до m направи
ако< 0 then
започвам
all_posit:=false;
прекъсване; край;
ако all_posit тогава започнете
брой:=j; прекъсване; край;
край;
ако num = 0 тогава
writeln("Takix stolbcov net")
друго
writeln("Колона номер:",num);
край.
Учениците качват файлове в Pascal, анализират тези алгоритми, преглеждат резултатите от изпълнението на програмата и отговарят на допълнителни въпроси:
- Как е организиран двумерен масив?
- Какво означава inc процедура?
- Какво означава процедурата за прекъсване?
- Как се използва генератор на произволни числа?
6. Формиране на умения за решаване на проблеми.
Самостоятелно решаване на задачи върху индивидуални карти, в алгоритмична среда.
Примери за задачи:
- Дадена е 5x5 матрица A, съдържаща произволни елементи. Намерете сумата от всички елементи на матрицата.
- Покажете таблицата на Питагор.
- Намерете сумата от положителните елементи на посочената колона на матрица A от 5x5 цели числа.
7. Обобщение на урока, домашна работа.
Обобщаване. Оценка на нивото на усвояване.
D/Z обобщение, задачи:
За всички:
- Даден е двуизмерен квадратен масив. Намерете броя на редовете, чиито всички елементи са равни на нула.
- Даден е двуизмерен квадратен масив. Намерете номерата на редовете, елементите във всеки от които са еднакви.
- Определете минималния елемент на двумерен масив. Отпечатайте номера на реда, съдържащ максималния брой минимални елементи, ако има такива.
- Даден е двумерен масив. Намерете реда с най-голям сбор от елементи и най-малък. Покажете намерените низове и сумите на техните елементи.
За студенти, които имат разбиране за двумерни масиви и как да ги решават:
Вместо лекция - решаване на задачи с повишена сложност.
Примери за задачи:
- Даден е двумерен масив. Преобразувайте го по следното правило: направете реда с номер N в колона с номер N, а колоната в ред.
- В двумерен масив X всички числа са различни. Във всеки ред се избира минималният елемент, след което се избира максималният измежду тези числа. Отпечатайте номера на реда на масива X, в който се намира избраното число.
- Даден е двумерен масив. Намерете най-голямата от стойностите на елементите на първия и последния ред.
- Напишете програма, която извежда двуизмерен масив ред по ред от клавиатурата и изчислява сбора на елементите му в колони.
- Напишете програма, която изчислява сумата от диагоналните елементи на квадратна матрица.
Пристигна поредната порция задачи по информатика за ученици. Този път ще разгледаме работата с двумерни масиви в C++. Тези проблеми са доста интересни. И повечето от тях ми харесаха.
Задача No1
Намерете индексите на първото появяване на максималния елемент.
Формат на въвеждане
Програмата получава масиви с размери n и m като вход, след това n реда с m числа всеки. n и m не надвишават 100.
Изходен формат
Отпечатайте две числа: номера на реда и номера на колоната, които съдържат най-големия елемент в двумерен масив. Ако има няколко такива елемента, се показва този с по-малък номер на ред, а ако номерата на редовете са равни, се извежда този с по-малък номер на колона.
#включи
Задача No2
Дадено е нечетно число n, не по-голямо от 15. Създайте двумерен масив от n × n елемента, като го запълните с "." (всеки елемент от масива е низ от един знак). След това попълнете средния ред на масива, средната колона на масива, главния диагонал и второстепенния диагонал със знаци "*". В резултат на това "*" в масива трябва да образува изображение със звездичка. Покажете получения масив на екрана, като разделяте елементите на масива с интервали.
Примерен вход: 5 Примерен резултат: * . * . * . * * * . * * * * * . * * * . * . * . *#включи
Задача No3
Дадено е число n, което не надвишава 100. Създайте масив с размер n×n и го попълнете според следното правило. На главния диагонал трябва да се изпишат цифрите 0. На двата диагонала, съседни на главния диагонал, цифрите 1. На следващите два диагонала цифрите 2 и т.н.
Примерен вход: 5 Примерен резултат: 0 1 2 3 4 1 0 1 2 3 2 1 0 1 2 3 2 1 0 1 4 3 2 1 0#включи
Задача No4
Даден е двумерен масив и две числа: i и j. Разменете колоните с номера i и j в масива.
Формат на въвеждане
Програмата получава като вход масиви с размери n и m, непревишаващи 100, след това елементи от масива, след това числа i и j.
Изходен формат
Отпечатайте резултата.
#включи
Проблем №5
Дадено е число n, което не надвишава 10, и масив с размер n × n. Проверете дали този масив е симетричен спрямо главния диагонал. Отпечатайте думата „ДА“, ако масивът е симетричен, и думата „НЕ“ в противен случай.
Примерен вход: 3 0 1 2 1 2 3 2 3 4 Примерен резултат:ДА#включи
Проблем №6
Даден е квадратен двуизмерен масив с размер n × n и число k. Изведете елементите на k-тия диагонал под главния диагонал (т.е. ако k = 1, тогава трябва да изведете елементите на първия диагонал, разположен под основния, ако k = 2, тогава втория диагонал и т.н.).
Стойността на k може да бъде отрицателна, например, ако k = −1, тогава трябва да покажете стойността на първия диагонал, разположен над основния. Ако k = 0, тогава трябва да изведете елементите на главния диагонал.
Програмата получава като вход числото n, което не надвишава 10, след това масив с размер n × n, след това числото k.
#включи
Проблем No7
Даден е двуизмерен масив с размер n×m (n и m не надвишават 1000). Масив, симетричен на него спрямо главния диагонал, се нарича транспониран спрямо дадения. Той има размери m×n: редовете на оригиналния масив стават колони на транспонирания, колоните на оригиналния масив стават редове на транспонирания.
Даден е масив, конструирайте транспониран масив и го покажете на екрана.
#включи
Проблем No8
Има n реда кино с по m места всеки (n и m не надвишават 20). Двумерен масив съхранява информация за продадените билети, като числото 1 означава, че билет за дадено място вече е продаден, числото 0 означава, че мястото е свободно. Получена е заявка за продажба на k билета за съседни места на същия ред. Определете дали тази заявка може да бъде изпълнена.
Формат на въвеждане
Програмата получава като вход числата n и m. Следват n реда, съдържащи m числа (0 или 1), разделени с интервали. Тогава е дадено числото k.
Изходен формат
Програмата трябва да отпечата номера на реда, в който има k последователни празни места. Ако има няколко такива реда, отпечатайте номера на най-малкия подходящ ред. Ако няма подходящ ред, отпечатайте числото 0.
#включи
Проблем No9
Даден е правоъгълен масив с размер n×m. Завъртете го на 90 градуса по часовниковата стрелка, записвайки резултата в нов масив m×n.
Формат на въвеждане
Въведете две числа n и m, непревишаващи 100, след това масив с размер n×m.
Изходен формат
Отпечатайте получения масив. Разделете числата при извеждане с един интервал.
#включи
Задача No10
Дадени са числата n и m, попълнете двумерен масив с размер n×m с числа от 1 до n×m „змия“, както е показано в примера.
Формат на въвеждане
Въведете две числа n и m, всяко от които не надвишава 20.
Изходен формат
#включи
Задача No11
Дадени са числата n и m, попълнете двумерен масив с размер n×m с числа от 1 до n×m „диагонали“, както е показано в примера.
Формат на въвеждане
Изходен формат
Изведете получения масив, като отделите точно 4 знака за всеки елемент.
#включи
Задача No12
Дадени са числата n и m. Попълнете n × m масив в шахматен ред: клетки от един цвят се запълват с нули, а клетки от друг цвят се запълват с естествени числа отгоре надолу, отляво надясно. Цифрата 1 е изписана в горния ляв ъгъл.
Формат на въвеждане
Въведете две числа n и m, не по-големи от 100.
Изходен формат
Изведете получения масив, като отделите точно 4 знака за всеки елемент.
#включи
Задача No13
Дадени са числата n и m, попълнете двуизмерен масив с размер n×m с числа от 1 до n×m в спирала, започваща от горния ляв ъгъл и завъртена по посока на часовниковата стрелка, както е показано в примера.
Формат на въвеждане
Въведете две числа n и m, не по-големи от 100.
Изходен формат
Изведете получения масив, като отделите точно 4 знака за всеки елемент.
#включи
0 0 |
Моля, активирайте JavaScript, за да видите
Пример 3
Даден е двумерен масив от цели числа с размери n x m,намиране на най-малкия елемент от масива и номера на реда, в който се намира.
Блокова диаграма: | Програмен код: Var a: масив от цели числа; i, j, m, n, min, k: цяло число; Започнете Write(‘колко реда?’); Readln(n); Write(‘колко колони?’); Readln(m); За i:=1 до n направете За j:=1 до m направи започвам write(‘a[‘,i,’,’,j,’]=’); readln(a); (2D въвеждане на масив) край; min:=a; (минимален елемент) k:=1; (номер на ред) За i:=1 до n направете За j:=1 до m направи Ако< min then започвам min:=a; k:=i; (потърсете минимума и „запомнете“ номера на реда) край; Writeln('най-малкото число ',min,' е в ', k, 'ред'); Край. |
Задачи
- . Намерете сумата и произведението на всички елементи на масива.
- Даден е двумерен масив с цели числа с размери n x m. Намерете сумата и произведението на четните елементи.
- Даден е двумерен масив с цели числа с размери n x m. Намерете сбора и произведението на елементи, кратни на 3 и 5.
- Даден е двумерен масив с цели числа с размери n x m. Намерете броя на отрицателните елементи, по-големи от -9.
- Даден е двумерен масив с цели числа с размери n x m.
- Даден е двумерен масив с цели числа с размери n x m
- Даден е двумерен масив с цели числа с размери n x m
- Даден е двумерен масив с цели числа с размери n x m. Намерете средноаритметичната стойност на всички елементи на масива.
- Даден е двумерен масив с цели числа с размери n x m. Разберете кое число в кой ред се появява първо - положително или отрицателно.
- Даден е двумерен масив с цели числа с размери n x m. Разберете кой ред има възходяща или низходяща последователност.
- Даден е двумерен масив с цели числа с размери n x m. Оттегляненеговите елементи, чиито индекси са степени на две (1, 2, 4, 8, 16, ...).
- Даден е двумерен масив с цели числа с размери n x m. Намерете броя на елементите, кратни на 7.
- Даден е двумерен масив с цели числа с размери n x m. Показване на елементи, които са квадрати на число.
- Даден е двумерен масив с цели числа с размери n x m. Намерете броя на нечетните елементи на четни места.
- Даден е двумерен масив с цели числа с размери n x m. Намерете максимума и минимума. Разменете ги.
- Даден е двумерен масив с цели числа с размери n x m. Заменете всички елементи с техните квадратчета.
- Даден е двумерен масив с цели числа с размери n x m. Заменете всички елементи с техните противоположни стойности.
- Даден е двумерен масив с цели числа с размери n x m. Разменете първия и последния елемент.
- Даден е двумерен масив с цели числа с размери n x m. Формирайте нов масив, състоящ се от противоположни съответни елементи.
- Даден е двумерен масив с цели числа с размери n x m. Покажете онези елементи, чийто остатък, разделен на m, е равен на k.
- Вписани са резултатите от теста на 10 ученици. Определете броя на незадоволителни, задоволителни, добри и отлични оценки. Показване на средната оценка, получена от студентите на теста.
- Въведете оценки на N ученици по K предмета. Определете и покажете броя на учениците, които не са получили нито една „5“.
- В групата има N ученика, учениците са получили четири точки на изпита. Определете броя на неуспелите ученици и средния резултат на групата.
- Даден е двумерен масив с цели числа с размери n x m. Изчислете сбора на числата, чиито поредни номера са числа на Фибоначи.
- Даден е двумерен масив с цели числа с размери n x m. Добавете съответните елементи.