- •Інформація та інформаційні процеси Поняття інформації.
- •Одиниці вимірювання інформації.
- •Подання інформації та типи комп'ютерів.
- •Способи пересилання інформації.
- •Будова комп'ютера
- •Пристрої введення-виведення інформації.
- •Процесор
- •Принципи функціонування комп'ютера Фізичні принципи
- •Програмний принцип
- •Поняття про середовища програмування
- •Загальна характеристика мови паскаль
- •Поняття інтегрованого середовища
- •Команда New
- •Команда Open
- •Основи алгоритмізації Алгоритми та їх властивості
- •Блок-схеми
- •Загальна характеристика Паскаль-програми
- •Структура Паскаль-програми
- •Елементи мови Паскаль
- •Прості типи даних
- •Стандартні типи даних
- •Дійсний тип
- •Логічний тип
- •Символьний тип
- •Конструйовані типи
- •Перелічуваний тип
- •Оператори надання значень змінним Оператор присвоєння
- •Уведення-виведення
- •Порядок виконання операцій
- •Складений оператор
- •Стиль запису програми
- •Структури керування
- •Структура послідовного виконання
- •Структура розгалуження
- •Умовний оператор
- •Оператор варіанта
- •Оператор безумовного переходу
- •Структура повторення
- •Цикл з параметром
- •Цикл з передумовою
- •Цикл з післяумовою
- •Ітераційні цикли
- •Обчислення суми знакозмінного ряду із заданою точністю
- •Процедури і функції
- •Процедури з параметрами. Параметри-значення
- •Одномірні масиви
- •Поняття масиву. Одномірний масив та його опис в програмі
- •Обчислення скалярного добутку двох векторів
- •Знаходження найбільшого (найменшого) значень серед елементів масиву
- •Обчислення суми та добутку елементів масиву
- •Перетворення масиву по заданому закону
- •Впорядкування одномірних масивів
- •Впорядкування шляхом вибору
- •Впорядкування обмінами
- •Впорядкування вставками
- •Зливання впорядкованих масивів
- •Двомірні масиви Поняття двомірного масиву та його опис у програмі
- •Ввід та вивід значень елементів двомірного масиву Ввід значень елементів двомірного масиву
- •Вивід значень елементів двомірного масиву a[m,n]
- •Рядковий тип (string)
- •Комбіновані типи Організація комбінованих типів у Паскалі
- •Оператор приєднання
- •Множинні типи Організація множин
- •Файлові типи Організація файлів
- •Підготовчі та завершальні операції
- •Операції уведення-виведення
- •Стандартні файли input і output
- •Модулі Модуль і його структура
- •Стандартні модулі
- •Наближене знаходження коренів рівнянь Дослідження рівняння. Відокремлення коренів
- •Метод поділу проміжку пополам
- •Метод хорд
- •Метод дотичних
- •Чисельне інтегрування
- •Квадратурні формули прямокутників
- •Загальні формули прямокутників
- •Квадратурна формула трапецій
- •Практичні оцінки точності квадратурних формул. Вибір кроку інтегрування
- •Список літератури
Ввід та вивід значень елементів двомірного масиву Ввід значень елементів двомірного масиву
Задача. Ввести з клавіатури комп’ютера значення елементів двомірного масиву a[m,n], що складається з m стрічок та n стовпчиків.
Під m та n розуміють довільні (але такі, що відомі) цілі числа. Значення самих елементів масиву – довільні дійсні числа. Наприклад, для m=2, n=3 масив а може виглядати так:
Програма вводу значень елементів двомірного масиву.
program VvDvMas;
uses
Crt;
Var a:array[1..10,1..20] of real;
m,n,i,j:integer;
begin
ClrScr;
{Ввiд двомiрного масиву a розмiром m*n}
Writeln('Ввести кiлькiсть стрiчок m<=10');
Writeln(' та кiлькiсть стовпчикiв n<=20');
Readln(m,n);
Writeln('Ввести по стрiчках даний’,
‘ двомiрний масив:');
For i:=1 to m do
Begin
For j:= 1 to n do Read(a[i,j]);
Readln;
End;
{...}
Readln;
end.
Вивід значень елементів двомірного масиву a[m,n]
Задача. У пам’яті комп’ютера записано значення елементів двомірного масиву a[m,n], що складається із m стрічок та n стовпчиків. Вивести на друк (на екран дисплея) цей двомірний масив у вигляді матриці відповідних розмірів.
Алгоритм виводу значень двомірного масиву подібний до попереднього і відрізняється від нього лише тим, що тілом циклу є не блок вводу, а блок виводу.
Програма виводу значень елементів двомірного масиву у вигляді таблиці.
program VuDvMas;
uses
Crt;
Type mas=array[1..10,1..20] of real;
Var a:mas;
m,n,i,j:integer;
begin
ClrScr;
Writeln('Ввести кiлькiсть стрiчок m<=10');
Writeln(' та кiлькiсть стовпчикiв n<=20');
Readln(m,n);
{. . .}
{Вивiд на екран дисплея двомiрного масиву}
{у виглядi матрицi}
Writeln('Двомiрний масив a:');
For i:=1 to m do
Begin
For j:= 1 to n do Write(a[i,j]:9:3,' ');
Writeln;
End;
{. . .}
Readln;
end.
Задачі обчислювального характеру з використанням двомірних масивів
Знаходження найменшого (найбільшого) значення
серед елементів двомірного масиву
Задача. У заданому масиві a[m,n] знайти найменше значення, а також номери стрічки та стовпчика, у яких стоїть найменший елемент.
Алгоритм розв’язку задачі полягає в наступному.
Спочатку вводять розмірність масиву і значень самих елементів. Найменший серед елементів масиву позначають ідентифікатором amin, а його індекси – imin та jmin.
На початку змінній amin присвоюється значення елемента a[1,1], відповідно змінним imin та jmin присвоюються значення 1. Інакше кажучи, на початку вважаємо, що елемент a[1,1] є найменшим.
Далі, змінюючи номер стрічки від 1 до m, а номер стовпчика від 1 до n, порівнюють всі елементи масиву зі значенням amin. Якщо серед них знайдеться такий, що його значення менше від amin: a[i,j]<amin, то це значення a[i,j] запам’ятається як нове значення змінної amin, а його індекси i та j запам’ятаються як нові значення змінних imin та jmin.
Вийшовши зі складеного циклу, виводимо на друк знайдені значення шуканих змінних.
Зауваження.
У випадку знаходження найбільшого елемента двомірного масиву діємо аналогічно. Найбільшому серед елементів amax на початку присвоюємо значення елемента a[1,1], а його індексам imax та jmax надаємо значення 1. Далі, в процесі перегляду всіх елементів масиву перевіряємо умову a[i,j]>amax і у випадку її істинності виконуємо такі операції присвоєння: amax:=a[i,j], imax:=i, jmax:=j.
Програма знаходження найменшого елемента двомірного масиву та його індексів.
program MinElDvMas;
uses
Crt;
Var a:array[1..10,1..20] of real;
m,n,i,j,imin,jmin:integer;
amin:real;
Begin
ClrScr;
{Ввiд двомiрного масиву}
Writeln('Ввести кiлькiсть стрiчок m<=10');
Writeln(' та кiлькiсть стовпчикiв n<=20');
Readln(m,n);
Writeln('Ввести по стрiчках даний ',
'двомiрний масив');
For i:=1 to m do
Begin
For j:= 1 to n do Read(a[i,j]);
Readln;
End;
{Пошук найменшого елемента та його iндексiв}
amin:=a[1,1]; imin:=1; jmin:=1;
For i:=1 to m do
For j:=1 to n do
If a[i,j]<amin then
Begin
amin:=a[i,j];
imin:=i;
jmin:=j;
End;
{Друк результатiв}
Writeln('Найменший елемент двомiрного масиву ',
'amin=',amin:9:3);
Writeln('Номер стрiчки найменшого елемента ',
'imin=',imin:3);
Writeln('Номер стовпчика найменшого елемента ',
'jmin=',jmin:3);
Readln;
End.
Обчислення суми (добутку) елементів двомірного масиву a[m,n]
Задача. Дано одномірний масив a[m,n]. Обчислити суму від’ємних елементів цього масиву.
Алгоритм знаходження найменшого елемента масиву та його індексів такий.
Спочатку забезпечують введення розмірності двомірного масиву: m – кількість стрічок, n – кількість стовпчиків і значень всіх його елементів: a[i,j] (i=1, 2,…, m; j=1, 2,…, n).
Змінній S, якою позначається сума від’ємних елементів, на початку присвоюємо значення 0. Далі, змінюючи номер стрічки і від 1 до m та номер стовпчика j від 1 до n, перевіряємо умову, чи є поточний елемент a[i,j] від’ємним: a[i,j]<0. Якщо це так, то його значення додається до суми, і перегляд елементів продовжуємо. Якщо ж умова не є істинною, то на елемент a[i,j] уваги не звертаємо, і просто продовжуємо перегляд.
По завершенню перегляду всіх елементів можуть трапитися два випадки:
, тоді серед усіх елементів не знайшлося жодного від’ємного;
, тоді на друк виводиться значення S.
Зауваження.
Обчислення добутку елементів здійснюється аналогічно. Позначається добуток символом наприклад, означає добуток всіх елементів з першого по n-ий. У випадку обчислення добутку початкове його значення приймається рівним одиниці: d=1. Кожне наступне (нове) значення добутку обчислюється як добуток його попереднього значення на значення поточного елемента: .
Програма обчислення суми від’ємних елементів двомірного массиву.
program SumVidElDvMas;
uses
Crt;
Type mas=array[1..10,1..20] of real;
Var a:mas;
m,n,i,j:integer;
s:real;
Begin
ClrScr;
{Ввiд двомiрного масиву}
Writeln('Ввести кiлькiсть стрiчок m<=10');
Writeln(' та кiлькiсть стовпчикiв n<=20');
Readln(m,n);
Writeln('Ввести по стрiчках даний ',
'двомiрний масив');
For i:=1 to m do
Begin
For j:= 1 to n do Read(a[i,j]);
Readln;
End;
{Обчислення суми вiд''ємних елементiв}
For i:=1 to m do
For j:=1 to n do
If a[i,j]<0 then s:=s+a[i,j];
{Друк результатiв обчислень}
If s=0
then Writeln('Вiд"ємних елементiв немає')
else Writeln('Сума вiд"ємних елементiв ',
's=',s:9:3);
Readln;
End.
Обчислення суми елементів кожної стрічки та кожного стовпчика
двомірного масиву
Задача. Дано двомірний масив a[m,n]. Обчислити суму b[j], (j=1, 2,…, n) елементів кожного стовпчика та суму c[i], (i=1, 2,…, m) кожної стрічки даного масиву. Перевірити рівність .
Алгоритму обчислення сум елементів кожної стрічки та кожного стовпчика двомірного масиву наступний.
Вводять розмірність двомірного масиву: m – кількість стрічок, n – кількість стовпчиків і значення всіх його елементів: a[i,j] (i=1, 2,…, m; j=1, 2,…, n).
Здійснюють обчислення сум c[i], (i=1, 2,…, m) елементів кожної стрічки та вивід їх на друк.
Обчислюють суми b[j], (j=1, 2,…, n) ) елементів кожного стовпчика та вивід їх на друк.
Забезпечують знаходження суми і суми та перевірку того, чи вони рівні.
Програма обчислення сум елементів кожної стрічки та кожного стовпчика двомірного масиву.
program SumElStRdDvMas;
uses
Crt;
Var a:array[1..10,1..20] of real;
b:array[1..20] of real;
c:array[1..10] of real;
s1,s2:real;
m,n,i,j:integer;
Begin
ClrScr;
{Ввiд заданого двомiрного масиву}
Writeln('Ввести кiлькiсть стрiчок m<=10');
Writeln('та стовпчикiв n<=20');
Readln(m,n);
Writeln('Ввести масив а по стрiчках');
For i:=1 to m do
Begin
For j:= 1 to n do Read(a[i,j]);
Readln;
End;
{Обчислення та друк суми елементiв}
{кожної стрiчки}
Writeln('Суми елементiв кожної стрiчки:');
For i:=1 to m do
Begin
c[i]:=0;
For j:=1 to n do c[i]:=c[i]+a[i,j];
Write(c[i]:9:2,' ');
end;
Writeln;
{Обчислення та друк суми елементiв}
{кожного стовпчика}
Writeln('Суми елементiв кожного стовпчика:');
For j:=1 to n do
Begin
b[j]:=0;
For i:=1 to m do b[j]:=b[j]+a[i,j];
Write(b[j]:9:2,' ');
End;
Writeln;
{Перевiрка правильностi обчислень}
s1:=0;
For i:=1 to m do s1:=s1+c[i];
s2:=0;
For j:=1 to n do s2:=s2+b[j];
If s1=s2
then
Writeln('s1=',s1:9:2,'s2=',s2:9:2,
' рiвнiсть правильна')
else
Write('s1=',s1:9:2,'s2=',s2:9:2,
' рiвнiсть не правильна');
Readln;
End.