Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 04.06.2013, 05:32   #1 (permalink)
NikitaX
Новичок
 
Регистрация: 04.06.2013
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Задачи с Паскалем

Для заданной матрицы размером 8x8 найти:
1. Такие k, что k-я строка матрицы совпадает с k-м столбцом.
2. Найти сумму элементов в тех строках, которые содержат хотя бы один отрица*тельный элемент.
NikitaX вне форума   Ответить с цитированием

Старый 04.06.2013, 05:32
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Лучше сразу потратить минуточку на прочтение схожих топиков

Помогите с Паскалем
Помогите с паскалем
Помогите с Паскалем
Помогите с Паскалем
Помогите с Паскалем

Старый 04.06.2013, 11:28   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от NikitaX Посмотреть сообщение
Для заданной матрицы размером 8x8 найти:
1. Такие k, что k-я строка матрицы совпадает с k-м столбцом.
2. Найти сумму элементов в тех строках, которые содержат хотя бы один отрица*тельный элемент.
Без проблем:
Код:
Var
 A:Array[1..8, 1..8] of Integer;
 i,j,k:byte;
 Sum:Integer;
 b:boolean;
Begin
 For i:=1 to 8 do
  For j:=1 to 8 do
   begin
    Write('A[',i,',',j,']= ');
    Readln(A[i,j]);
   end;
 Writeln;

 For i:=1 to 8 do
  begin
   for j:=1 to 8 do write(A[i,j]:4);
   writeln;
  end;
 Writeln;
 Write('k= ');
 For k:=1 to 8 do
  begin
   b:=true;
   for i:=1 to 8 do
    if A[k,i]<>A[i,k] then b:=false;
   If b then Write(k:2);
  end;
 Writeln;
 Writeln;
 For i:=1 to 8 do
  begin
   b:=false;
   Sum:=0;
   for j:=1 to 8 do
    if A[i,j]<0 then b:=true;
   if b then
    begin
     for j:=1 to 8 do Inc(Sum,A[i,j]);
     writeln('i= ',i,'  Sum= ',Sum);
    end;
   end;
 Readln
End.
Vladimir_S вне форума   Ответить с цитированием
Старый 04.06.2013, 22:27   #3 (permalink)
NikitaX
Новичок
 
Регистрация: 04.06.2013
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

1. В одномерном массиве, состоящем из п целочисленных элементов, вычислить:

Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых не превышает единицу, а потом — все остальные.



2. Дана целочисленная квадратная матрица. Определить:


Минимум среди сумм модулей элементов диагоналей, параллельных побоч­ной диагонали матрицы.


Спасибо за первую задачу






NikitaX вне форума   Ответить с цитированием
Старый 07.06.2013, 14:02   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от NikitaX Посмотреть сообщение
1. В одномерном массиве, состоящем из п целочисленных элементов, вычислить:
Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых не превышает единицу, а потом — все остальные.
Элементы целочисленного массива не могут иметь ни целой, ни дробной частей.
Цитата:
Сообщение от NikitaX Посмотреть сообщение
2. Дана целочисленная квадратная матрица.
Определить: Минимум среди сумм модулей элементов диагоналей, параллельных побоч­ной диагонали матрицы.
Пожалуйста:
Код:
Const
 N=9;
Var
 A:Array[1..N,1..N] of Integer;
 D:Array[1..2*N-2] of Word;
 i,j,k:Byte;
 Min:Word;
Begin
 Randomize;
 Writeln('Initial matrix:');
 For i:=1 to N do
  begin
   for j:=1 to N do
    begin
     A[i,j]:=-10+Random(20);
     write(A[i,j]:4);
    end;
   Writeln;
  end;
 Writeln;
 Writeln('Array of sums:');
 For k:=1 to N*2-2 do D[k]:=0;
 k:=0;
 For j:=1 to N-1 do
  begin
   Inc(k);
   for i:=1 to j do D[k]:=D[k]+Abs(A[i,1-i+j]);
  end;
 For j:=2 to N do
  begin
   Inc(k);
   for i:=N downto j do D[k]:=D[k]+Abs(A[i,N-i+j]);
  end;
 For k:=1 to 2*N-2 do write(D[k]:4);
 Writeln;
 Writeln;
 Min:=D[1];
 For k:=2 to 2*N-2 do
  If D[k]<Min then Min:=D[k];
 Writeln('Minimal: ',Min);
 Readln
End.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 12:31.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.