IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> матрица и ее главная диагональ, прошу помочь
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Женский

Репутация: -  0  +


необходимо проверить является ли произведение элементов главной диагонали квадратной матрицй М ( n=4)
целым числом.
я написала программу для нахождения произведения диагонали, но как проверить является ли оно целым числом?

program matrica;
uses crt;
const n=4;
var
M:array[1..n,1..n] of integer;
i,j,s;integer;
begin
writeln ('введите матрицу М');
for i:=1 to n do
for j:=1 to n do
read (M[i,j];

s:=1;
for i:=1 to n do
for j:=1 to n do
if i=j then
S:=s*M[i,j];
writeln ('s=',s:4);
readln;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Проверяй, является ли дробная часть близким к нулю числом...

Кстати, совсем не обязательно делать 2 цикла, вполне хватит одного:
s:=1;
for i:=1 to n do
s:=s*M[i, i];
if Frac(abs(s)) < 1E-6 then writeln('целое число') { <--- Собственно, проверка }
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Женский

Репутация: -  0  +


посни пожалусто что такое 1E-6, и еще вопос-матрица у нас integer ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Цитата
посни пожалусто что такое 1E-6


1E-6 = 10 в минус шестой степени (погрешность)

Цитата
и еще вопос-матрица у нас integer ?


M:array[1..n,1..n] of integer;

smile.gif

Но судя по заданию должно быть НЕ integer (вообще не целочисленный тип)

Сообщение отредактировано: klem4 -


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Женский

Репутация: -  0  +


я тож так подумала. только real упорно не хочет приниматся
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


А что пишет ? Попробуй поставить {$N+} в первой строчке программы. Скорее всего дело в этом, подключения математического сопроцессора не хватает.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Ну, Real - то должен приниматься всегда... Это НЕ сопроцессорный тип... А вот S тоже должна быть описана, как Real, иначе будет попытка записать
Integer <- Real
, чего компилятор не пропустит...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Женский

Репутация: -  0  +


вот вся программа. помогите поменять тип, только чтоб она работала

Код
Program Matrica;
uses crt;
const n=4;
var
A:array[1..n,1..n] of integer;
B,C:array[1..n] of integer;
i,j,z,y,min,max,m,k,S:integer;
begin
writeln ('ввод масива А');
for i:=1 to n do
for j:=1 to n do
read (A[i,j]);


      for i:=1 to n do
      begin
        m:=m+1;
      for j:=1 to n do

     B[m]:=B[m]+A[i,j];
     end;

   min:=B[1];
   z:=1;
   for m:=1 to n do
   if B[m]<min then
   begin
     min:=B[m];
     z:=m;
   end;

   for j:=1 to n do
   begin
   k:=k+1;
   for i:=1 to n do
   begin
   A[i,j]:=abs(A[i,j]);
   C[k]:=C[k]+A[i,j];
   end;
   end;
   max:=C[n];
   y:=n;
   for k:=1 to n do
   if C[k]>max then
   begin
   max:=C[k];
   y:=k;
   end;
   s:=1;
   for i:=1 to n do
   for j:=1 to n do
   if i=j then
   S:=s*A[i,j];
if frac(abs(s))<1e-6 then
writeln ('произведение элементов диагонали целое число');

writeln('min=',min:4,'   z=',z:4);
writeln('max=',max:4,'   y=',y:4);
writeln ('s=',s:3);
   readln;
   repeat until keypressed
   end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Вот тако по крайней мере запускается и отрабатвыает без ошибок

{$N+}
Program Matrica;
uses crt;
const n=4;
var
A:array[1..n,1..n] of single;
B,C:array[1..n] of single;
i,j,z,y,m,k : integer;
S, min, max:single;
begin
writeln ('ввод масива А');
for i:=1 to n do
for j:=1 to n do
read (A[i,j]);


for i:=1 to n do
begin
m:=m+1;
for j:=1 to n do

B[m]:=B[m]+A[i,j];
end;

min:=B[1];
z:=1;
for m:=1 to n do
if B[m]<min then
begin
min:=B[m];
z:=m;
end;

for j:=1 to n do
begin
k:=k+1;
for i:=1 to n do
begin
A[i,j]:=abs(A[i,j]);
C[k]:=C[k]+A[i,j];
end;
end;
max:=C[n];
y:=n;
for k:=1 to n do
if C[k]>max then
begin
max:=C[k];
y:=k;
end;
s:=1;
for i:=1 to n do
for j:=1 to n do
if i=j then
S:=s*A[i,j];
if frac(abs(s))<1e-6 then
writeln ('произведение элементов диагонали целое число');

writeln('min=',min:4,' z=',z:4);
writeln('max=',max:4,' y=',y:4);
writeln ('s=',s:3);
readln;
repeat until keypressed
end.


Сообщение отредактировано: volvo -


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 18.12.2017 21:46
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"