Const
m = 6;
n = 9;
type
R = record
sum: integer;
nom: integer
end;
vR = array[1..n] of R;
tm = array[1..m, 1..n] of integer;
function SumCol(a: tm; k: integer): integer;
{ Сумма элементов в k-м столбце (колонке) матрицы а }
var
i, s: integer;
begin
s := 0;
for i := 1 to m do
s := s + a[i, k];
SumCol := s
end;
procedure Swp(var a, b: R);
{ Меняет местами элементы a и b }
var
t: R;
begin
t := a; a := b; b := t
end;
procedure Shell(var a: vR);
{ сортировка методом Шелла по убыванию }
var
i, j, step: integer;
begin
step := n div 2;
while step > 0 do
begin
for j := n - step downto 1 do
begin
i := j;
while i <= n - step do
begin
if a[i].sum < a[i + step].sum then Swp(a[i], a[i + step]);
i := i + step
end
end;
step := step div 2
end
end;
var
a, c: tm;
b: vR;
i, j: integer;
begin
Randomize;
Writeln('*** Исходные элементы массива ***');
for i := 1 to m do
begin
for j := 1 to n do
begin a[i, j] := Random(101) - 50; Write(a[i, j]:4) end;
Writeln
end;
{ формируем вектор сумм по столбцам }
for j := 1 to n do
begin
b[j].sum := SumCol(a, j);
b[j].nom := j;
end;
{ сортируем полученный вектор по убыванию сумм }
Shell(b);
{ осуществляем перестановку во вспомогательный массив с}
for j := 1 to n do
for i := 1 to m do c[i, j] := a[i, b[j].nom];
{ копируем содержимое вспомогательного массива с в массив а }
Writeln('*** Результирующие элементы массива ***');
for i := 1 to m do
begin
for j := 1 to n do
begin
a[i, j] := c[i, j];
Write(a[i, j]:4)
end;
Writeln
end
end.
<em><u>Тестовое решение:</u></em>
*** Исходные элементы массива ***
-27 13 13 -15 8 27 28 -1 32
44 36 20 -39 45 -46 29 18 36
-14 -36 -5 35 36 -14 24 31 -19
-42 -34 -44 40 50 -21 -17 -30 37
-38 22 -46 9 -14 42 -10 1 30
41 -41 -21 21 39 -45 18 4 -3
*** Результирующие элементы массива ***
8 32 28 -15 -1 -27 13 27 13
45 36 29 -39 18 44 36 -46 20
36 -19 24 35 31 -14 -36 -14 -5
50 37 -17 40 -30 -42 -34 -21 -44
-14 30 -10 9 1 -38 22 42 -46
39 -3 18 21 4 41 -41 -45 -21
Получилось на 15 мин быстрее)))
Как я понял, нужно определить, какая буква введена с клавиатуры - большая или маленькая, сделала для английского и русского языка
program one;
var
a:string;
begin
readln(a);
if a[1] in ['a'..'z'] then writeln('Маленькая');
if a[1] in ['A'..'Z'] then writeln('Большая');
if a[1] in ['а'..'я'] then writeln('Маленькая');
if a[1] in ['А'..'Я'] then writeln('Большая');
<span>end.</span>
Важное замечание: Для типа long long int требуется от компилятора поддержка стандарта C99.
Приложил файл расширения .cpp, чтобы обойти ограничение сайта. При работе с кодом измените на .c
#include <stdio.h>
long long int NOD(long long int var1, long long int var2) //Алгоритм Евклида
{
while(var1 != var2)
{
if(var1 > var2)
var1 = var1 - var2;
else var2 = var2 - var1;
}
return var1;
}
long long int NOK(long long int var1, long long int var2)
{
return (var1 * var2) / NOD(var1, var2);
}
int main()
{
long long int N, K;
scanf("%lli%lli", &N, &K);
printf("Количество оборотов: %lli\n", NOK(N, K));
}
Вроде должно быть так:
program primer;
var a,b,x:integer;
y:real;
begin
write('Введите значение переменной A');
readln(a);
write('Введите значение переменной B');
readln(b);
y:=2.4*abs((sqr(x)+b)/a)+(a-b)*sqr(sin(a-b)+sqrt(10)(x-b);
wtite('Результат',y:6:2);
readln
<span>end.</span>
Ответ:
program test01;
var a, b, rezult: integer;
begin
a:=6;
b:=3;
rezult:= a div b;
writeln ('rezult = ', rezult);
end.
Объяснение: