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

Напишите программу которая будет переводить из 10 системы с счисления в любую другую ( в том числе должны быть отрицательные числа и не только целые) было бы неплохо ещё засчиту от дебилов(чтобы можно было упасть на клаву и программа не сломалась

👇
Ответ:
adamoon44
adamoon44
09.05.2020
PascalABC.NET 3.3.5, сборка 1644 от 23.03.2018
Внимание! Если программа не работает, обновите версию!

function DecToa(n:string;k:integer):string;
// Перевод из десятичной системы в систему по основанию k
begin
  var s:='0123456789';
  Result:='';
  var PointPos:=Pos('.',n);
  var IntPart:integer;
  if PointPos>0 then begin // есть дробная часть
    var FracPart:=Frac(n.ToReal);
    var m:=0;
    while True do begin
      var r:=FracPart*k;
      Result+=s[Trunc(r)+1];
      FracPart:=Frac(r);
      m+=1;
      if (m=15) or (FracPart=0) then break
      end;
    IntPart:=n[:PointPos].ToInteger;
    end
  else IntPart:=n.ToInteger;
  if Result<>'' then Result:='.'+Result;
  while IntPart>0 do begin
    Result:=s[IntPart mod k+1]+Result;
    IntPart:=IntPart div k
    end;
  if Result='' then Result:='0';
  if Result[1]='.' then Result:='0'+Result
end;

begin
  var n:=ReadlnString('Какое число перевести?');
  var p:real;
  if not real.TryParse(n,p) then Writeln('Такая запись недопустима')
  else
    if n.Contains('e') or n.Contains('E') then
      Writeln('Запись в экспоненциальном формате не разрешена')
    else begin
      var k:=ReadInteger('Укажите основание системы:');
      if k.Between(2,36) then     
          Writeln(n,'(10) = ',n[1],DecToA(n[2:],k),'(',k,')')
      else Writeln('Допустимы основания 2..36')
      end
end.

Примеры
Какое число перевести? 123,5433
Такая запись недопустима

Какое число перевести? -353.093234
Укажите основание системы: 21
-353.093234(10) = -GH.1K2951B0DJAH1BI(21)

Какое число перевести? 6523
Укажите основание системы: 8
6523(10) = 61013(8)

Какое число перевести? 1.2e-18
Запись в экспоненциальном формате не разрешена
4,7(24 оценок)
Открыть все ответы
Ответ:
alehanagaitsewa
alehanagaitsewa
09.05.2020
1.
var x, i: integer;
var c : array[1..31] of boolean;
begin
c := 0;
for i:= 1 to 31 do c[i] := false;
for i := 1 to 31 do begin
readln(x); if (x = 0) then c[i] := true;
end;
writeln('В следующие дни не было осадков: ');
for i:= 1 to 31 do if (c[i]) then writeln(c[i]);
readln(i);
end.

2.
var x,i,n,c: integer;
begin
realn(n);
for i:= 1 to n do
begin
readln(x); if (x < 0) then c := c + x;
end;
writeln('ответ: '); write(c);
readln(x);
end.

P.S. На паскале не писал давно. Код не компилировал (ибо его сюда копипастить без последствий нельзя.), так что могут быть незначительные ошибки. + сразу говорю (как программист с некоторым опытом и будучи уже не школьником) - код го*но. Так никто не делает, так никто не пишет, но для "школьного паскаля" достаточно
4,7(66 оценок)
Ответ:
0508761681
0508761681
09.05.2020

Составим программу вычисления суммы ряда чисел 5, 10, 15, …, 50 на языке программирования Pascal ABC. Введем обозначения следующих величин: пусть s – сумма чисел ряда, которую надо найти, а i – порядковый номер чисел ряда. Начальное значение суммы s будет равным нулю. Так как чисел несколько, то будем использовать в программе оператор цикла с параметром for. По условию задачи числа суммируются, начиная с числа 5, с интервалом 4 числа, поэтому значение i в каждом цикле будем увеличивать на 4.

Программа может выглядеть так:

program zadacha;

uses crt;

var s,i: integer;

begin

s:=0; {Задание начального значение суммы s}

for i:=5 to 50 do begin

s:=s+i; {Вычисление суммы чисел}

i:=i+4; {Увеличение значения параметра i на 4}

end;

writeln ('s=',s) {Вывод результата суммы s}

end.

Можно решить данную задачу и вторым используя операцию mod:

program zadacha;

uses crt;

var s,i: integer;

begin

s:=0; {Задание начального значение суммы s}

for i:=5 to 50 do

if i mod 5=0 {Поиск чисел, кратных 5}

then s:=s+i; {Вычисление суммы чисел}

writeln ('s=',s); {Вывод результата суммы s}

end.

ответом будет s=275.

Составить программу нахождения значения функции у= 5х+х2, при х=50, 49, 48, 47, …, 40.

program zadacha;

uses crt;

var x,y,i:integer;

begin

for i:=50 downto 40 do begin y:=5*i+i*2; writeln ('y=',y); end;

writeln ('y=',y)

end.

Объяснение:

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