М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
vladbortnovsij69
vladbortnovsij69
09.01.2020 06:11 •  Информатика

Паскаль нужно объяснить, как работает программа. Пошагово и с объяснением. Массив: Переписать все четные значения в обратном порядке
пример 2 5 3 7 4 6 4 5 9
ответ 4 5 3 7 6 4 2 5 9

Program kursayin_khndir_1;
Type arr = array [1..100] of integer;
var a: arr; mp: integer;
n,i,j,k: integer;
procedure Nermucum(var a: arr);
var i:integer;
begin;
for i:= 1 to n do
begin ;

read(a[i]);
end;

for i:= 1 to n do
write(a[i]:5);
writeln;
end;
procedure Artacum(var arr_1: arr);
var i:integer;
begin
for i:= 1 to n do write(arr_1[i]:5);
end;
begin

readln(n);
Nermucum(a);
i:=1;
j:=n;
while i<=j do
if a[i] mod 2=0 then
begin
if (a[j] mod 2=0)and(i<>j) then
begin
mp:=a[i]; a[i]:=a[j]; a[j]:=mp;
i:=i+1; j:=j-1;
end
else j:=j-1;
end
else i:=i+1;

Artacum(a);
end.

👇
Ответ:
orliniyglassoyccc0
orliniyglassoyccc0
09.01.2020

Давай сначала кратко изложу суть решения, а затем уже разберемся более детально. В коде имеется 2 процедуры, процедура Nermucum считывает с клавиатуры n чисел, а затем выводит эти числа. Процедура Artacum выводит элементы массива на экран. (зачем так сделано и почему такой страшный нейминг вопрос не ко мне). В основной программе массив меняет местами четные элементы.

Теперь пробежимся по коду:

Program kursayin_khndir_1;

Type arr = array [1..100] of integer;

var a: arr; mp: integer;

n,i,j,k: integer;

Здесь мы имеем:  имя программы - kursayin_khndir_1, тип arr, который представляет собой массив целых чисел из 100 элементов, переменную a с типом arr( то есть массив), переменную mp целого типа, также переменные n, i, j, k целого типа.

procedure Nermucum(var a: arr);

var i:integer;

begin;

for i:= 1 to n do

begin ;

read(a[i]);

end;

for i:= 1 to n do

write(a[i]:5);

writeln;

end;

Первая процедура, которая принимает аргумент типа arr, функция нам считать элементы с клавиатуры(с 1-го цикла), а затем вывести эти элементы (с второго цикла).

procedure Artacum(var arr_1: arr);

var i:integer;

begin

for i:= 1 to n do write(arr_1[i]:5);

end;

Вторая процедура, также принимает аргумент типа arr, она просто выводит значения элементов массива на экран.

Основную программу разделим на части.

readln(n);

Nermucum(a);

i:=1;

j:=n;

Считываем число n(количество элементов массива)

Вызываем процедуру Nermucum, которая считает элементы массива с клавиатуры и выведет нам массив на экран.

Даем переменной i значение 1, а переменной j значение n. То есть, i будет указывать на начало массива, а j на конец массива.

Смотрим основной цикл, который тут используется:

while i<=j do

   if a[i] mod 2=0 then

       begin

        if (a[j] mod 2=0)and(i<>j) then

             begin

                mp:=a[i]; a[i]:=a[j]; a[j]:=mp;

                  i:=i+1; j:=j-1;

              end

       else j:=j-1;

     end

  else i:=i+1;

Начиная с 1 элементы функция ищет чётный элемент, если она его находит, то проверяет условие: a[j] четный и не равен i, если условие выполняется, то мы меняем местами i-тый и j-тый элемент, затем сдвигаем наши "указатели" на начало и конец на 1 элемент, если же условия не выполнилось, то никакой замены не производим, однако, "указатели" на начало и конец всё равно сдвигаем.

Artacum(a);

Ну и в конце вызываем процедуру Artacum, чтобы вывести наш массив на экран.

Если остались вопросы - добро в комментарии.

4,5(49 оценок)
Открыть все ответы
Ответ:
Sovergon233
Sovergon233
09.01.2020

uses crt;
var r: byte;
begin
readln(к);
write('Мне ',к);
if r in [5..20] then write(' лет') else
  case к mod 10 of
1: write(' год');
2..4: write(' года');
5..9,0: write(' лет');
else

writeln('error');
end;
end.

через case оч хорошо всё получается)

 

или вот так по подробнее:

 Const st='Мне';
Var
k: Byte;
BEGIN
Repeat
Write('Введите K (от 1 до 99): ');
Readln(k);
until k in [1..99];
Case k of
11..20: Writeln(st,' ',k,' лет');
Else
begin
Case k mod 10 of
1: Writeln(st,' ',k,' год');
2..4: Writeln(st,' ',k,' года');
5..9,0: Writeln(st,' ',k,' лет');
end;
end;
end;
Readln
END.

 

 

 

 

 

 

 

4,6(59 оценок)
Ответ:
SamaraArtem24
SamaraArtem24
09.01.2020

такие деформации, которые, во-первых, выражают несправедливость социального устройства, открывают простор для произвола одних субъектов в ущерб другим; во-вторых, ущемляют права и свободы граждан, а в-третьих, ведут к дегуманизации и ущербности социального статуса и менталитета части населения.

Кроме того, в нашей стране имеются и правовые рычаги защиты как государственных интересов, так и интересов каждого гражданина от киберпреступности. И это несмотря на то, что ни административное, ни уголовное законодательство не предусматривают ответственности за совершение именно киберпреступлений.

Это обусловлено тем, что хотя киберпреступления и совершаются с компьютеров, компьютерных систем и сетей и в виртуальной среде, тем не менее они выходят на физический уровень и причиняют материальный вред, а, значит, посягают на реальные правоотношения, затрагивают интересы конкретных людей, приносят негативные последствия. В связи с этим к данным преступлениям применимы и существующие нормы административного и уголовного законов, действующих на территории Российской Федерации.

4,8(36 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ