Галстян874
?>

Что-то мои попытки бессмысленны. язык паскаль. напишите программу, которая определяет, сколько в матрице есть k -значных чисел, сумма цифр каждого из которых кратна r . входные данные: в первой строке записаны через пробел размеры матрицы: количество строк n и количество столбцов m ( 1 ≤ n , m ≤ 100 в следующих n строках записаны строки матрицы, в каждой – по m натуральных чисел, разделённых пробелами. затем в отдельной строке вводятся числа k и r . выходные данные: программа должны вывести одно число – количество k -значных чисел, сумма цифр каждого из которых кратна r . примеры: входные данные: 5 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2 3 выходные данные: 5

Информатика

Ответы

xachen
// PascalABC.NET 3.0, сборка 1156 от 30.01.2016
begin
  var n,m:integer;
  Read(n,m);
  var a:array[,] of integer;
  SetLength(a,n,m);
  for var i:=0 to n-1 do
    for var j:=0 to m-1 do Read(a[i,j]);
  var k,r:integer;
  Read(k,r);
  var p:=0; //будущий результат
  foreach var x:integer in a do begin
    var s:=0; var q:=x; var k1:=0;
    while q<>0 do begin
      s:=s+(q mod 10); q:=q div 10; Inc(k1)
      end;
    if (k1=k) and (s mod r = 0) then Inc(p)
    end;
  Writeln(p)
end.

Тестовое решение:
5 5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
2 3
5
Татьяна1856
Здесь нужно использовать вс типизированный файл и, соответственно, вторую файловую переменную (fr2).
Сделать это можно так:
while not eof(fr) and (kol=0) do
begin
read(fr, Marshrut);
if (Marshrut.NK.N <> '11')
   then write(fr2,Marshrut)
   else begin inc(kol); y:=Marshrut; end;
end;
if not eof(fr) then
  begin
  read(fr, Marshrut);
  write(fr2,Marshrut);
  end;
if (kol=1) then  write(fr2,y);
Дальше нужно просто переписать оставшиеся записи из первого файла во второй. Затем оба файла закрыть, первый файл удалить, а второй переименовать (т.е. назвать его так, как назывался первый файл).

Попробуйте ещё вот такой вариант:
(здесь k1 и k2 - целые, а y - типа )
if (Marshrut.NK.N = '11') then
begin
writeln('... ');
inc(kol);
y:=Marshrut;
k1:=FilePos(fr)-1;
k2:=FilePos(fr);
if not eof(fr) then
 begin
 read(fr, Marshrut);
 seek (fr, k1);
 write(fr, Marshrut);
 seek (fr, k2);
 write (fr, y);
 end;

end;
mmurzina
//Pascal ABC.NET v3.1 сборка 1172

Var
 f,s:text;
 st,sp:string;
 i:integer;
 c:char;
begin
 assign(s,'text1.txt');
 reset(s);
 while not Eof(s) do
 begin;
 readln(s,sp);
 st:=st+sp+chr(10)+chr(13);
 end;
 close(s);
 for i:=1 to length(st) div 2 do
  begin
   c:=st[i];
   st[i]:=st[length(st)-i+1];
   st[length(st)-i+1]:=c;
  end;
 assign(f,'text.txt');
 rewrite(f);
 write(f,st);
 close(f);
end.

Текст в файле text1.txt:

Simple text
1And another simple text
2New text

Текст в файле text.txt:
txet weN2
txet elpmis rehtona dnA1
txet elpmiS

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

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

Что-то мои попытки бессмысленны. язык паскаль. напишите программу, которая определяет, сколько в матрице есть k -значных чисел, сумма цифр каждого из которых кратна r . входные данные: в первой строке записаны через пробел размеры матрицы: количество строк n и количество столбцов m ( 1 ≤ n , m ≤ 100 в следующих n строках записаны строки матрицы, в каждой – по m натуральных чисел, разделённых пробелами. затем в отдельной строке вводятся числа k и r . выходные данные: программа должны вывести одно число – количество k -значных чисел, сумма цифр каждого из которых кратна r . примеры: входные данные: 5 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2 3 выходные данные: 5
Ваше имя (никнейм)*
Email*
Комментарий*

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

siren89
Никита_Тузов
лукашова940
zhannasokortova
Наталья_Васищев
goodsled
sedalex
Олег86
schernov
Наталья Юрьевич1228
Tamara
Aleksei806
museumuzl
Ананян Иван1281
ayanrsadykov