ЮлияДаниил520
?>

Писать только на алгоритмическом языке!) 1) Даны натуральные числа A и B. Напишите алгоритм, чтобы найти наибольшее из этих двух чисел. 2) Даны три числа: A, B и C. Найдите большее из этих трех чисел. 3) Дано 4-значное число A. Напишите алгоритм, который представляет собой сумму этих чисел. 4) Дано трехзначное число A. Напишите алгоритм, чтобы проверить, делится ли это число на заданные числа B и C. 5) Учитывая натуральное число N. Напишите алгоритм, чтобы найти сумму последовательности чисел от 1 до N. 6) Учитывая натуральные числа N и A. Напишите алгоритм, который печатает числа, которые делятся на заданное число A, из последовательности чисел от 1 до N. 7) Напишите алгоритм вывода чисел, равных одной сотой части трехзначного числа. 8) Учитывая натуральное число N. Напишите алгоритм вывода чисел в порядке убывания от 1 до N.

Информатика

Ответы

eeirikh
1. Современное решение

// PascalABC.NET 3.2, сборка 1488 от 21.06.2017
// Внимание! Если программа не работает, обновите версию!

function From5to10(Self:sequence of string):sequence of integer;
    extensionmethod;
// Перевод последовательности заданных на строках пятиричных чисел
// в последовательность целых десятичных чисел
begin
  foreach var s in Self do begin
    var r:=0;
    var pa:=1;
    foreach var c in s.Reverse do begin
      r+=c.ToDigit*pa; pa*=5
    end;
    yield r
    end
end;

begin
  var s:=ReadlnString('Введите строку:').MatchValues('[0-4]+').From5To10;
  if s.Count=0 then Writeln('S=-1')
  else Writeln('S=',s.Sum)
end.

Пример
Введите строку: sdf812973j223k
S=73

2. Решение на TurboPascal ("Так писали наши отцы и деды в 1983 году, так и нас сейчас учат в школе")

uses Crt;

function From5to10(n:string):integer;
{ Перевод из пятиричного числа в строковом представлении
  в целое десятичное }
var
  i,pa,s:integer;
begin
  s:=0;
  pa:=1;
  for i:=Length(n) downto 1 do begin
    s:=s+pa*(Ord(n[i])-Ord('0'));
    pa:=pa*5
    end;
  From5to10:=s
end;

var
  s,w:string;
  i,k,r:integer;
begin
  ClrScr;
  Write('Введите строку: ');
  Readln(s);
  w:='';
  r:=0;
  k:=0;
  for i:=1 to Length(s) do begin
    if Pos(s[i],'01234')>0 then begin
      if w='' then k:=k+1;
      w:=w+s[i]
      end
    else
      if w<>'' then begin
        r:=r+From5to10(w);
        w:=''
        end
    end;
  if k=0 then Writeln('S=-1')
  else Writeln('S=',r);
  ReadKey
end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Писать только на алгоритмическом языке!) 1) Даны натуральные числа A и B. Напишите алгоритм, чтобы найти наибольшее из этих двух чисел. 2) Даны три числа: A, B и C. Найдите большее из этих трех чисел. 3) Дано 4-значное число A. Напишите алгоритм, который представляет собой сумму этих чисел. 4) Дано трехзначное число A. Напишите алгоритм, чтобы проверить, делится ли это число на заданные числа B и C. 5) Учитывая натуральное число N. Напишите алгоритм, чтобы найти сумму последовательности чисел от 1 до N. 6) Учитывая натуральные числа N и A. Напишите алгоритм, который печатает числа, которые делятся на заданное число A, из последовательности чисел от 1 до N. 7) Напишите алгоритм вывода чисел, равных одной сотой части трехзначного числа. 8) Учитывая натуральное число N. Напишите алгоритм вывода чисел в порядке убывания от 1 до N.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

petrovichvit2933
LesnovaVeronika1830
f-d-a-14
mbykovskiy
Zladthesecond577
etv771370
zubov-073620
Plotnikovangav
ulechkaevseeva
ElenaSkvortsova2
ryadovboxing
ii090758
TatianaSeliverstova64
Иванович
Вагифович