asvavdeeva
?>

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

Информатика

Ответы

Евгеньевич Балиловна1398
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
Запись в экспоненциальном формате не разрешена
NikolayGoncharov
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. На паскале не писал давно. Код не компилировал (ибо его сюда копипастить без последствий нельзя.), так что могут быть незначительные ошибки. + сразу говорю (как программист с некоторым опытом и будучи уже не школьником) - код го*но. Так никто не делает, так никто не пишет, но для "школьного паскаля" достаточно
vinokurova88251

Составим программу вычисления суммы ряда чисел 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.

Объяснение:

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

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

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

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

Olegovich Nikolaevna
matveevaev81
coffee2201
Shitikov-M.A.1307
НиколаевнаФ
chuev4444
ПетросовичЗаславский
Natacha3636672
artemyanovich8
Nadezhda
ГегамБукреев830
novdodCT
kyzua2475
Bordo
Verakravez8790