suny84
?>

Делфи в матрице с размером 4x5 просуммировать элементы каждой строки. результат получить в одномерном массиве х размером 4.

Информатика

Ответы

Новиков1139
// PascalABC.NET 3.1, сборка 1250 от 28.05.2016
const
  k=650;
 
function GetData(f:file of integer):integer;
// получить из файла очередное значение
begin
  if not f.Eof then Read(f,Result)
  else Result:=0
end;

function NOD(a,b:integer):integer;
// нахождение НОД
begin
  while b>0 do (a,b):=(b,a mod b);
  Result:=a
end;

function VZP(a,b:integer):boolean;
// являются ли a и b взаимно простыми?
begin
  Result:=NOD(a,b)=1;
end;

function Has1(n:integer):boolean:=(Pos('1',n.ToString)>0);

begin
  var f:file of integer;
  // создаем файл
  Assign(f,'F.dat'); Rewrite(f);
  var n:integer;
  for var i:=1 to k do begin
    n:=(Random(1,2)=1?Random(135,4000):Random(4578,15000));
    f.Write(n);
    end;
  f.Close;
  // файл создан, начинаем его читать и обрабатывать
  Reset(f);
  Writeln('Задание 1');
  while not f.Eof do begin n:=GetData(f); Print(n); end;
  Writeln(NewLine,'Задание 2');
  f.Seek(0);
  var a:=GetData(f);
  var b:=GetData(f);
  var c:integer;
  var VZPLeft:=VZP(a,b);
  var VZPRight:boolean;
  if VZPLeft then Print(a);
  for var i:=3 to k-1 do begin
    c:=GetData(f);
    VZPRight:=VZP(b,c);
    if VZPLeft and VZPRight then Print(b);
    (a,b):=(b,c); VZPleft:=VZPRight
    end;
  c:=GetData(f);
  if VZP(b,c) then Print(b,c);
  Writeln(NewLine,'Задание 3');
  f.Seek(0);
  var mx:=0;
  while not f.Eof do begin
    a:=GetData(f);
    if Has1(a) then mx:=Max(mx,a)
    end;
  if mx>0 then Writeln(mx);
  f.Close
end.

Тестовое решение в прикрепленном файле
gaina6678
//PascalABC.NET 3.1 сборка 1239

1) хотя не понятно зачем изобретать велосипед
function max(a, b: integer): integer;
begin
    max := a;
    if b > a then
        max := b;
end;

begin
    var a:=ReadInteger('a =');
    var b:=ReadInteger('b =');
    writeln(max(a, 2 * b) * max(2 * a - b, b));
end.
2)
const
    handfree = false;

begin
    var a:= new integer[ReadInteger('n =')];
    if handfree then
        a := ArrRandomInteger(a.Length, -50, 50)
    else
        a := ReadArrInteger(a.Length);
    
    writeln('Array:');
    a.Println;
    writeln('Sum of odds by value = ', a.Where(x -> x mod 2 = 0).Sum);
    writeln('Sum of odds by position = ', a.Slice(0, 2).Sum);
end.
3)
const
    n = 5;
    m = 6;
    handsfree = false;

begin
    var a := new integer[n, m];
    writeln('Данные матрицы:');
    for var i := a.GetLowerBound(0) to a.GetUpperBound(0) do
    begin
        for var j := a.GetLowerBound(1) to a.GetUpperBound(1) do
            if handsfree then begin
                a[i, j] := random(-50, 50);
                write(a[i, j]:4, ' ')
            end
            else
                read(a[i, j]);
        writeln;
    end;
    
    writeln('Вывод:');
    for var i := a.GetLowerBound(0) to a.GetUpperBound(0) do
    begin
        for var j := a.GetLowerBound(1) to a.GetUpperBound(1) do
        begin
            if a[i, j] < 0 then a[i, j] := 0;
            write(a[i, j]:4, ' ');
        end;
        writeln;
    end;
end.

4) не ясно что они конкретно под паркетом подразумевали
uses
 GraphABC;
const
    r = 30;

begin
    var x := r;
    var y := 7 * r;
    Brush.Color := clPurple;
    
    for var i := 1 to 6 do
        Circle(x + r * i, y - r * i, r);
end.

5)
uses graphabc;
const
  radius = 50;

begin
  var step := radius div 5;
  //  var step := 0;
  var x := 2 * radius;
  var y := 2 * radius;
  SetPenWidth(radius div 10);
 
  SetPenColor(clBlue);
  Drawcircle(x, y, radius);
  x += 2 * radius + step;
 
  SetPenColor(clBlack);
  Drawcircle(x, y, radius);
  x += 2 * radius + step;
 
  SetPenColor(clRed);
  Drawcircle(x, y, radius);
  y += radius + step;
  x := 3 * radius + step div 2;
 
  SetPenColor(clYellow);
  Drawcircle(x, y, radius);
  x += 2 * radius + step;
 
  SetPenColor(clLimeGreen);
  Drawcircle(x, y, radius);
  x += 2 * radius + step;
end.

6)
uses
 GraphABC;
const
    w = 500;
    d = 10;

begin
    Window.Init(0, 0, w, w, clGreen);
    Window.CenterOnScreen;
    Brush.Color := clBlack;
    
    for var x := 0 to Window.Width do
    begin
        var y := Window.Height - x;
        Sleep(10);
        Window.Clear(clGreen);
        FillPolygon((x, y), (x + d, y - d), (x + 2 * d, y));
    end;
end.

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

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

Делфи в матрице с размером 4x5 просуммировать элементы каждой строки. результат получить в одномерном массиве х размером 4.
Ваше имя (никнейм)*
Email*
Комментарий*

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

ekater01806
mail66
ecocheminnov437
mariya
pavlova7771960
nelli-bi6
Рогов1996
okarp
Сергей_Комарова899
SaraevaTretyakov1941
Tuzov
alesia1986
madjk
skvorec3424
mariy-y34