с Маткадом.
1. Какая переменная называется ранжированной?
2. Как определить ранжированную переменную с заданным шагом? Какой шаг по
умолчанию?
3. Какие графики позволяет строить MathCAD?
4. Как построить график?
5. Как построить несколько графиков в одной системе координат?
6. Как отформатировать построенный график?
7. Как построить график, заданный параметрически?
8. Как добавить дополнительную ось y?
9. Какие типы трехмерных графиков можно построить?
1. С какой команды можно посмотреть описание функций?
2. Как округлить число до ближайшего меньшего целого? Большего целого?
3. Какое число выведет функция rnd(10)?
4. Как работает функция if?
5. Что такое вложенный условный оператор?
6. Для чего используют функции пользователя?
Программа 1:
{Free Pascal Compiler version 3.0.4+dfsg-23 [2019/11/25] for x86_64}
{Copyright (c) 1993-2017 by Florian Klaempfl and others}
{Target OS: Linux for x86-64}
program test;
const
max_num = 100; {Максимальная величина в массиве}
var
N : integer; {Размерность массива}
Massiv : array of array of integer;
i, j : integer; {Счетчики циклов}
p : int64; {Произведение элементов}
begin
Randomize;
write('Введите число - размер массива N: ');
readln(N);
{Установка размера массива}
SetLength(Massiv, N, N);
{Формирование случайного двумерного массива с элементами от 1 до 100}
for i := 0 to N-1 do begin
for j := 0 to N-1 do begin
Massiv[i, j] := Round(Random * max_num) + 1;
write(Massiv[i,j]:4)
end;
writeln
end;
p := 1; {Инициализация переменной для подсчета произведения}
{Собственно, сам подсчёт.}
{Для главной диагонали особенность индексов, где i = j}
{Поэтому достаточно одного цикла}
for i := 0 to N-1 do
p := p * Massiv[i, i];
writeln('Произведение р = ', p)
end.
Программа 2:
{Free Pascal Compiler version 3.0.4+dfsg-23 [2019/11/25] for x86_64}
{Copyright (c) 1993-2017 by Florian Klaempfl and others}
{Target OS: Linux for x86-64}
program test;
const
max_num = 100; {Максимальная величина в массиве}
var
N : integer; {Размерность массива}
Massiv : array of array of integer;
i, j : integer; {Счетчики циклов}
c, m, k : integer; {Подсчёт чётных элементов}
begin
Randomize;
write('Введите число - размер массива N: ');
readln(N);
{Установка размера массива}
SetLength(Massiv, N, N);
{Формирование случайного двумерного массива с элементами от 1 до 100}
for i := 0 to N-1 do begin
for j := 0 to N-1 do begin
Massiv[i, j] := Round(Random * max_num) + 1;
write(Massiv[i,j]:4)
end;
writeln
end;
{Обнуление счётчиков}
m := 0; k := 0;
for i := 0 to N-1 do begin
{Подсчёт чётных в строке i}
c := 0;
for j := 0 to N-1 do
if (Massiv[i, j] mod 2 = 0) then Inc(c);
{Если чётных больше, чем в предыдущих строках, то}
if (c > m ) then begin
{запоминаем номер строки в переменной k}
k := i;
{запоминаем текущее количество чётных}
m := c
end
end;
writeln('Чётных чисел больше в строке ', k,'. Их - ', m)
end.
#include <iostream>
#include <vector>
#include <cstdint>
using namespace std; template <class T>
istream& operator>>(istream &in, vector<T> &vec) { for (auto &it : vec) in >> it; return in;
}
template <class T>
ostream& operator<<(ostream &out, vector<T> &vec) { for (auto &it : vec) out << it << ' '; return out;
}
template <class T, class U>
istream& operator>>(istream &in, pair<T, U> &pair) { in >> pair.first >> pair.second; return in;
}
template <class T, class U>
ostream& operator<<(ostream &out, pair<T, U> &pair) { out << pair.first << ' ' << pair.second; return out;
}
signed main(void) { int32_t n; cin >> n; vector<vector<int64_t>> a(n, vector<int64_t>(n,-1)); int64_t x = 0, y = n/2; a[x][y] = 1; for(int32_t i = 2; i <= n*n; ++i) { int _x = x, _y = y; if(!x) { x = n-1; } else { --x; } if(y == n-1) { y = 0; } else { ++y; } if(a[x][y] != -1) { x= _x, y = _y; while(a[x][y] != -1) { if(x == n-1) { x = 0; } else { ++x; } } } a[x][y] = i; } for(int32_t i = 0; i < n; ++i) { cout << a[i] << '\n'; } return 0; }
Объяснение: