Завдання 1. 1. Написати програму для виконання певних дій над динамічним двовимірним
масивом, реалізувавши доступ до елементів масива двома за
до ндексів та вказівників. Кожний б реалізувати окремою
функцією.
2. Алгоритм формування початкового масива реалізувати двома за
до введення даних з клавіатури та випадкової генерації чисел. В
окремій функції передбачити виділення пам'яті під динамічний масив
функціями malloc, calloc та new (під час виконання програми користувач
має вибрати, якою з функцій створити масив).
3. Вивести на екран у вигляді матриці елементи початкового масива. Якщо є
кілька початкових масивів, то вивести їх у різних рядках. Якщо масив був
змінений, то у новому рядку вивести модифікований масив. Якщо потрібно
визначити певні індекси, елементи тощо, то вивести їх у новому рядку.
4. Використання глобальних змінних у підпрограмах не допускається.
Інформація у підпрограми повинна передаватися лише за до
параметрів.
5. Введення-виведення даних і виконання певних дій над ними потрібно
реалізувати в окремих функціях. У головній програмі потрібно виконувати
лише їхній виклик. Введення-виведення даних супроводжувати
відповідними повідомленнями.
ЗАВДАННЯ: Написати програму для визначення суми максимальних елементів по парних рядках прямокутної матриці.
Завдання 2.
1. Написати програму для виконання певних дій над динамічним двовимірним
масивом, реалізувавши доступ до елементів масива двома за
до ндексів та вказівників. Кожний б реалізувати окремою
функцією.
2. Алгоритм формування початкового масива реалізувати двома за
до введення даних з клавіатури та випадкової генерації чисел. В
окремій функції передбачити виділення пам'яті під динамічний масив
функціями malloc, calloc та new (під час виконання програми користувач
має вибрати, якою з функцій створити масив).
3. Вивести на екран у вигляді матриці елементи початкового масива. Якщо є
кілька початкових масивів, то вивести їх у різних рядках. Якщо масив був
змінений, то у новому рядку вивести модифікований масив. Якщо потрібно
визначити певні індекси, елементи тощо, то вивести їх у новому рядку.
4. Використання глобальних змінних у підпрограмах не допускається.
Інформація у підпрограми повинна передаватися лише за до
параметрів.
5. Введення-виведення даних і виконання певних дій над ними потрібно
реалізувати в окремих функціях. У головній програмі потрібно виконувати
лише їхній виклик. Введення-виведення даних супроводжувати
відповідними повідомленнями.
ЗАВДАННЯ: Задано двовимірний масив цілих чисел з діапазону (-25,…,54). Знайти всі додатні елементи з сумою індексів, не кратною 5.
Завдання 3.
1. Написати програму для виконання певних дій над динамічним двовимірним
масивом, реалізувавши доступ до елементів масива двома за
до ндексів та вказівників. Кожний б реалізувати окремою
функцією.
2. Алгоритм формування початкового масива реалізувати двома за
до введення даних з клавіатури та випадкової генерації чисел. В
окремій функції передбачити виділення пам'яті під динамічний масив
функціями malloc, calloc та new (під час виконання програми користувач
має вибрати, якою з функцій створити масив).
3. Вивести на екран у вигляді матриці елементи початкового масива. Якщо є
кілька початкових масивів, то вивести їх у різних рядках. Якщо масив був
змінений, то у новому рядку вивести модифікований масив. Якщо потрібно
визначити певні індекси, елементи тощо, то вивести їх у новому рядку.
4. Використання глобальних змінних у підпрограмах не допускається.
Інформація у підпрограми повинна передаватися лише за до
параметрів.
5. Введення-виведення даних і виконання певних дій над ними потрібно
реалізувати в окремих функціях. У головній програмі потрібно виконувати
лише їхній виклик. Введення-виведення даних супроводжувати
відповідними повідомленнями.
ЗАВДАННЯ: Обчислити суму квадратів всіх елементів квадратної матриці, що
знаходяться в зафарбованій частині такої матриці:
1 . . . . . . . . .
1 1 . . . . . . . .
1 1 1 . . . . . . .
1 1 1 1. . . . . .
1 1 1 1 1. . . . .
1 1 1 1 . . . .
1 1 1 . . . . .
1 1. . . . . . .
1 . . . . . . .
(матриця квадратна, розміру точного немає. Там де точки - елементи, які не грають ролі.
елеметни(зафарбовані) умовно позначив за *1*)
,
,,
,,,...
,,
,
Визначити кількість парних елементів, які містяться в кожному рядку
виділеної області
Мова - С++
using System;
class Program
{
static void Main()
{
int x1 = 2, y1 = 1;
int x2 = 6, y2 = 5;
int x3 = 10, y3 = 1;
var a = Distance(x2, y2, x3, y3);
var b = Distance(x1, y1, x3, y3);
var c = Distance(x2, y2, x1, y1);
Console.WriteLine("S = {0}", Square(a, b, c));
Console.ReadKey();
}
//растояние между точками
static double Distance(int x1, int y1, int x2, int y2)
{
return Math.Sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
}
//формула герона
static double Square(double a, double b, double c)
{
var p = (a + b + c) / 2;
return Math.Sqrt(p * (p - a) * (p - b) * (p - c));
}
// теорема косинусов
static double Angle(double a, double b, double c)
{
return Math.Acos((b * b + c * c - a * a) / (2 * b * c));
}
static bool IsAcuteAngel(double alpha)
{
return alpha < Math.PI / 2;
}
}
const
nDay:array[1..12] of integer=(31,28,31,30,31,30,31,31,30,31,30,31);
type
Date=record
Day,Month,Year:integer
end;
function DOW(Dat:Date):integer;
// день недели по дате. 0-Вс. 1-Пн, 7-Сб
var
a,y,m:integer;
begin
With Dat do begin
a:=(14 - month) div 12;
y:=Year-a;
m:=month+12*a-2;
DOW:=(7000+(day+y+y div 4-y div 100+y div 400+(31*m) div 12)) mod 7
end
end;
procedure DMY2Date(d,m,y:integer; var data:Date);
// Преобразует к дате заданные день, месяц и год
begin
data.Day:=d; data.Month:=m; data.Year:=y
end;
procedure LastDays(month,year:integer; var Wd,Fr:Date);
// даты последней среды (Wd) и пятницы (Fr) для месяца в году }
var
LastDay:Date;
n:integer;
begin
n:=nDay[month];
if (month=2) and (year mod 4 = 0) then Inc(n);
DMY2Date(n,month,year,LastDay);
n:=DOW(LastDay); // номер последнего дня недели
Wd.Month:=month; Wd.Year:=year;
if n<3 then Wd.Day:=LastDay.Day-(n+4)
else
if n=3 then Wd.Day:=LastDay.Day
else Wd.Day:=LastDay.Day+3-n;
Fr.Month:=month; Fr.Year:=year;
if n<5 then Fr.Day:=LastDay.Day-(n+2)
else
if n=3 then Fr.Day:=LastDay.Day
else Fr.Day:=LastDay.Day-1
end;
var
Wd,Fr:Date;
ff,mf:Text;
m:integer;
begin
Assign(ff,'father.txt'); Rewrite(ff);
Assign(mf,'mother.txt'); Rewrite(mf);
// Сентябрь-декабрь 2015 года
for m:=9 to 12 do begin
LastDays(m,2015,Wd,Fr);
if Odd(Wd.Day) then Writeln(mf,Wd.Day,'.',m,'.2015 - 1 класс')
else Writeln(ff,Wd.Day,'.',m,'.2015 - 1 класс');
if Odd(Fr.Day) then Writeln(mf,Fr.Day,'.',m,'.2015 - 5 класс')
else Writeln(ff,Fr.Day,'.',m,'.2015 - 5 класс')
end;
// Январь - май 2016 года
for m:=1 to 5 do begin
LastDays(m,2016,Wd,Fr);
if Odd(Wd.Day) then Writeln(mf,Wd.Day,'.',m,'.2016 - 1 класс')
else Writeln(ff,Wd.Day,'.',m,'.2016 - 1 класс');
if Odd(Fr.Day) then Writeln(mf,Fr.Day,'.',m,'.2016 - 5 класс')
else Writeln(ff,Fr.Day,'.',m,'.2016 - 5 класс')
end;
Close(ff); Close(mf)
end.
Содержимое выходных файлов:
father.txt
30.9.2015 - 1 класс
28.10.2015 - 1 класс
30.10.2015 - 5 класс
30.12.2015 - 1 класс
24.2.2016 - 1 класс
26.2.2016 - 5 класс
30.3.2016 - 1 класс
mother.txt
25.9.2015 - 5 класс
25.11.2015 - 1 класс
27.11.2015 - 5 класс
25.12.2015 - 5 класс
27.1.2016 - 1 класс
29.1.2016 - 5 класс
25.3.2016 - 5 класс
27.4.2016 - 1 класс
29.4.2016 - 5 класс
25.5.2016 - 1 класс
27.5.2016 - 5 класс