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

Цитата:
Сообщение от diagen_62 Посмотреть сообщение
да я хочу понять всё и научиться!я не ищу халявы, просто хочу во всем разобраться)) вот не знаю, что не так
Похвально, приветствую. Только... знаете, чтобы научиться, нужно действительно стараться писать программы (пусть даже самые простенькие!) самостоятельно, и при том ясно, четко и абсолютно понимать смысл каждого действия. Пусть даже программа реализует формулу c=a+b. А бездумное скатывание откуда ни попадя приведет к полностью обратному эффекту.
Вот Вы, якобы самостоятельно решая задачу о количестве ненулевых элементов матрицы, понаопределяли и понавводили кучу собственных пользовательских типов. Вопрос - зачем? Ответ я, кажется, знаю - затем, что так было сделано в некоей программе, откуда Вы это тупо скатали. Но там-то наверняка автор перешел к динамическим переменным, указателям, стекам и прочему такому разному, до чего Вам пока, как до звёзд, поэтому ему и понадобились переопределения типов. А Вам они ровно ни к чему.
В общем так. Вот Вам вариант решения задачки, попробуйте разобраться. А лучше - читайте книжки и пособия по Паскалю и пишите, пишите, пишите программки. Сами! Вот что главное. Только так чему-нибудь научитесь.
Код:
CONST
 N=10;
VAR
 A:Array[1..N,1..N] of Integer;
 N_higher,N_lower,N_on:Byte;
 i,j:Integer;

BEGIN
 Randomize;
 For i:=1 to N do
  For j:=1 to N do
   A[i,j]:=10-Random(20);

 For i:=1 to N do
  begin
   For j:=1 to N do
    Write(A[i,j]:4);
   WriteLn;
  end;

 WriteLn;

 N_higher:=0;
 N_lower:=0;
 N_on:=0;

 For i:=1 to N do
  For j:=1 to N do
   begin
    If (j>i) and (A[i,j]<>0) then Inc(N_higher);
    If (j=i) and (A[i,j]<>0) then Inc(N_on);
    If (j<i) and (A[i,j]<>0) then Inc(N_lower);
   end;

 WriteLn('N_higher= ',N_higher);
 WriteLn('N_on= ',N_on);
 WriteLn('N_lower= ',N_lower);

 ReadLn;
END.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

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