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

Подправить pascal. условие: даны наименования трёх газет и три фамилии подписчиков. определить, выписывает ли петров газету "правда". мое решение: program z3; var a: array[1..3] of string; var b: array[1..3] of string; i,k: byte; begin writeln('ввод названий газет и фамилий подписчиков'); for i: =1 to 3 do begin readln(a[i]); readln(b[i]); end; k: =0; for i: =1 to 3 do if (a[i]='правда') and (b[i]= 'петров') then begin k: =i; writeln('да, петров выписывает газету ',a[i]); end; if k=0 then writeln('петров не выписывает газету ',a[i]); end. подскажите,правильно решена ? и как сделать так,чтобы на экран выводился индекс газеты и индекс ее подписчика? например: [1] правда , [1] петров или [2] газета n [3] подписчик n

👇
Ответ:
mayer3
mayer3
07.10.2022
Program z3;
var A:array[1..3] of string;
var B:array[1..3] of string;
i,k:byte;
begin
writeln('Ввод названий газет: ');
  for i:=1 to 3 do begin write('[',i,']');readln(A[i]); end;
writeln('Ввод подписчиков: ');
  for i:=1 to 3 do begin write('[',i,']'); readln(B[i]); end;

for i:=1 to 3 do begin
  if (A[i]='правда') and (B[i]= 'петров') then begin k:=i;
  writeln('Да, Петров выписывает газету ',A[i]); end;
 end;
end.

Ввод названий газет: 
[1]Книга
[2]Правда
[3]Вера
Ввод подписчиков: 
[1]Библиотекарь
[2]Петров
[3]Гундяев
Да, Петров выписывает газету Правда
4,8(99 оценок)
Ответ:
RuslanVil
RuslanVil
07.10.2022
Program z3;
const n=3;
var A:array[1..n] of string;
var B:array[1..n] of string;
i,k:byte;

begin
writeln('Ввод названий газет:');
for i:=1 to n do
 begin write('[',i,'] '); readln(A[i]);end;
writeln('Ввод фамилий подписчиков:');
for i:=1 to n do
 begin write('[',i,'] '); readln(B[i]);end;
k:=0;
for i:=1 to n do
 if (A[i]='Правда') and (B[i]='Петров') then k:=i;
if k<>0 then writeln('Да, Петров выписывает Правду.')
        else writeln('Петров не выписывает Правду.');
end.

Пример:
Ввод названий газет:
[1] Правда
[2] Мир
[3] Атеист
Ввод фамилий подписчиков:
[1] Петров
[2] Дружаев
[3] Базаров
Да, Петров выписывает Правду.
4,6(55 оценок)
Открыть все ответы
Ответ:
motay121
motay121
07.10.2022
Var dv,tr,pt,dv1,tr1,pt1,dv2,tr2,pt2 :real;

procedure nod( var dv,tr,pt,dv1,tr1,pt1,dv2,tr2,pt2 :real; );
var a:array[1..6] of real;
i : integer;
begin
dv1:=100;
tr1:=100;
pt1:=100;
for i:= low(a) to high (a) do begin
readln(a[i]);
repeat
if( (a[i] mod 2) =0) then begin
a[i]:=a[i]/2;
dv:=dv+1;
end
else if( ( a[i] mod 3)=0) then begin
a[i]:=a[i]/3;
tr:=tr+1;
end
else if ( ( a[i] mod 5)=0) then begin
a[i]:=a[i]/5;
pt:=pt+1;
end;

untill(a=1);
if dvif trif ptdv:=0;
tr:=0;
pt:=0;
end;
if dv1>0 then dv2:=dv1*2 else dv2:=1;
if tr1>0 then tr2:=tr1*3 else tr2:=1;
if pt1>0 then pt2:=pt1*5 else pt2:=1;
nod:=dv2*tr2*pt2;
writeln(nod);
end;
begin
nod( dv,tr,pt,dv1,tr1,pt1,dv2,tr2,pt2 );
end.

end;
4,8(40 оценок)
Ответ:
Арина7405
Арина7405
07.10.2022
Задача №1
//PascalABC.NET (версия 3.1, сборка 1196 от 09.03.2016)
Var n, i: integer; 
Begin                   
writeln ('Введите число');
readln(n);                                    
writeln('Делители числа:');  
for i := 1 to n div 2 do     
  if (n mod i) = 0 then begin 
    write(i,'  ');
  end;         
End.       

Задача №2 (алгоритм не очень шустрый, но работает и понятный)
//PascalABC.NET (версия 3.1, сборка 1196 от 09.03.2016)
var
  a, b, x, y, nod: integer;

begin
  writeln('Введите a,b');
  readln(a, b);
  x := a;y := b;
  while x <> y do
    if x > y
      then x := x - y
    else y := y - x;
  nod := x;
  writeln('NOD(', a, ',', b, ')=', nod);
end.
4,6(32 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ