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

Выполните сложение двух дробных чисел в pascal abc через while

👇
Ответ:
rauf2007
rauf2007
21.05.2020
Var
  i,z:integer;
  a:array[1..2,1..3]of integer;
  begin
for i:=1 to 2 do
  begin
  write('Введите числитель и знаменатель дроби (через пробел): ');
  readln(a[1,i],a[2,i]);
  end;
a[2,3]:=a[2,1]*a[2,2]; 
a[1,3]:=a[1,1]*a[2,2]+a[1,2]*a[2,1];
z:=a[1,3] div a[2,3];
a[1,3]:=a[1,3] mod a[2,3];
i:=a[2,3];
while i>1 do
   begin
   if (a[2,3] mod i=0) and (a[1,3] mod i=0) then
     begin
     a[2,3]:=a[2,3] div i;
     a[1,3]:=a[1,3]div i;
     i:=a[2,3];
     end
     else i:=i-1;
   end;
write(a[1,1],'/',a[2,1],'+',a[1,2],'/',a[2,2],'=');
if z>0 then write(z);
if a[1,3]>0 then writeln('(целая часть) ',a[1,3],'/',a[2,3],'(дробная часть)')
end.
4,6(85 оценок)
Открыть все ответы
Ответ:
dima1025
dima1025
21.05.2020

PascalABC.NET 3.7:

###var names := ReadString('Введите имена:').ToWords;var values := ReadArrInteger('Введите возраста:', names.Len);var m := values.Max;var a := values.Indices(x → x = m).Sel(i → names[i]).toA;if a.Len = values.Len then Pr('У всех одинаковый возраст.')else if a.Len = 1 then Pr(a[0], 'старше всех.')else Pr(a[:^1].JoinToString(', '), 'и', a[^1], 'старше всех.')

Объяснение:

С реализуем вывод приглашения к вводу ("Введите имена:") и запрос на ввод строки. После чего, ToWords преобразует введённую строку в массив слов. Этот полученный массив (массив введённых через пробел имён) записывается в переменную names.

С реализуем вывод приглашения к вводу ("Введите возраста:") и запрос на ввод массива чисел, длину которого (количество вводимых чисел) мы задали с длина массива names). Этот массив чисел записывается в переменную values. Числа можно вводить как через пробел, так и с новой строки.

С метода расширения Max находим максимальный элемент массива values и записываем его в переменную m.

С метода расширения Indices получаем последовательность индексов, удовлетворяющим условию x = m, где x — тот или иной элемент массива values. Затем, с метода Sel проецируем каждый элемент полученной последовательности в новую форму: из i в names[i], то есть из каждого индекса, условно обозначенным как i, мы получаем имя, хранящееся в массиве names под индексом i. Далее метод ToA преобразует последовательность в массив, и этот массив записывается в переменную a.

И вот, мы уже имеем ответ: все нам нужные имена хранятся в массиве a. Идущие далее 3 строчки обеспечивают "красивый" вывод "на всевозможные случаи". Их можно заменить на a.Pr — все элементы массива a будут выведены через пробел. Но рассмотрим эти "3 строчки".

Если длина массива a равна длине массива values (то есть в массив a были отобраны все элементы массива values), то выводим сообщение "У всех одинаковый возраст.". Иначе, если длина массива a равна 1, то выводим этот единственный элемент массива a с сообщением "старше всех.". Если же не выполняется ни то, ни другое условие, то на экран через пробел будет выведено следующее:

все элементы массива a, кроме последнего, которые с преобразовали в строку, используя ", " в качестве разделителя;"и";последний элемент массива a;"старше всех.".

Пример работы:


Напишите программу, которая получает с клавиатуры возрасты трёх человек (антона, бориса и виктора) и
Напишите программу, которая получает с клавиатуры возрасты трёх человек (антона, бориса и виктора) и
Напишите программу, которая получает с клавиатуры возрасты трёх человек (антона, бориса и виктора) и
Напишите программу, которая получает с клавиатуры возрасты трёх человек (антона, бориса и виктора) и
Напишите программу, которая получает с клавиатуры возрасты трёх человек (антона, бориса и виктора) и
4,6(30 оценок)
Ответ:
torshindanya
torshindanya
21.05.2020
Const n=4; m=5; 
var a:array[1..n,1..m] of integer;
i,j:integer; 
begin
Randomize;
writeln('Исходный массив:');
for i:=1 to n do
 begin
 for j:=1 to m do
 begin
 a[i,j]:=random(51);
 write(a[i,j]:4);
 end;
writeln;
end;
writeln;
for i:=1 to n do
  for j:=1 to m do
 if a[i,j] mod 2 <> 0
  then a[i,j]:=a[i,j]+10 else a[i,j]:=a[i,j]-10;
writeln('Измененный массив:');
for i:=1 to n do
begin
 for j:=1 to m do write(a[i,j]:4);
 writeln;
end;
end.

Пример:
Исходный массив:
 7 49 39 28 43
27 26 10 25 20
34 0 1 0 24
18 36 42 21 39
Измененный массив:
17 59 49 18 53
37 16 0 35 10
24 -10 11 -10 14
 8 26 32 31 49
4,6(80 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ