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

Написать программу с процедурами в паскале: составить программу, которая перезаписывает двумерный массив в файл. размеры массива задает пользователь.

👇
Ответ:
nikitastepanov21
nikitastepanov21
22.08.2021
// PascalABC.NET 3.2, сборка 1362 от 14.12.2016
// Внимание! Если программа не работает, обновите версию!

function MatrCreate(m,n:integer):array[,] of integer;
begin
  Writeln('*** Исходный массив A[',m,',',n,'] ***');
  Result:=MatrRandom(m,n,-50,50);
  Result.Println(4);
  Writeln(4*n*'-');
end;

procedure Matr2File(a:array[,] of integer; fn:string);
begin
  var f:file of integer;
  ReWrite(f,fn);
  foreach var r in a.Rows do
    foreach var x in r do Write(f,x);
  f.Close
end;

begin
  var m:=ReadlnInteger('Количество строк в массиве:');
  var n:=ReadlnInteger('Количество столбцов в массиве:');
  var a:=MatrCreate(m,n);
  var s:=ReadlnString('Имя файла:');
  Matr2File(a,s);
  Writeln('Работа завершена')
end.

Пример
Количество строк в массиве: 6
Количество столбцов в массиве: 9
*** Исходный массив A[6,9] ***
  -8  47 -37   8  23  47 -18   5  18
  13 -29   9 -12 -44 -27 -21 -20  11
  17 -18  18  30  14 -42 -34  16  49
  -4 -25  47 -28 -25 -20  39  44 -46
  18 -45  39  12   3  24  27  16 -23
  27  48  30  33 -38 -30  34  35 -50

Имя файла: MyFile.bin
Работа завершена
4,4(11 оценок)
Открыть все ответы
Ответ:
Dogi2008
Dogi2008
22.08.2021

program zadacha;
var
s,temp,max,min:string;
i,mxp,mnp:integer;
begin
writeln('Введите строку...');
readln(s);
s:=s+' ';
temp:='';
max:='';
min:=s;
for i:=1 to length(s) do
begin
if s[i]<>' ' then
temp:=temp+s[i];
if (s[i]=' ') and (temp<>'') then
begin
if Length(temp)<Length(min) then
begin
min:=temp;
mnp:=i-Length(temp)
end;
if Length(temp)>Length(max) then
begin
max:=temp;
mxp:=i-Length(temp)
end;
temp:='';
end;
end;
if max<>'' then
begin
Writeln('Самое длинное: ',max,' Оно начинается с: ',mxp);
Writeln('Самое короткое: ',min,' Оно начинается с: ',mnp)
end
else
WriteLn('В данной строке нет слов!')
end.

4,7(48 оценок)
Ответ:
aprel123
aprel123
22.08.2021

Для начала определим что такое разряд числа. Разряд это порядковый номер цифры, и счет начинается с запятой, отделяющей дробь, счет начинается с 0 разряда до последней цифры. Например, число 1234,0: 0 разряд - 4, 1 разряд - 3, 2 разряд - 2 и 3 разряд единица.

Теперь определимся как переводить из 16й в 10ю. Для перевода шестнадцатеричного числа в десятичное необходимо это число представить в виде суммы произведений степеней основания шестнадцатеричной системы счисления на соответствующие цифры в разрядах шестнадцатеричного числа.

Т.е.:

1234_{16}=(1*16^3+2*16^2+3*16^1+4*16^0)_{10}=(4096+512+48+4)_{10}=4660_{10} 

Чтобы перевести буквы в числа надо воспользоваться списком:

A=10; B=11; C=12; D=13; E=14; F=15

Теперь расмотрим данные нам числа:

9D_{16}=9*16^1+13*16^0=157_{10}

3E_{16}=62_{10}

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