Резултати от 1 до 4 от общо 4

Паскал: Стълбове и Редове до безкрайност ? Как ?

Сподели във Facebook Сподели в Twitter Изпрати на Email Сподели в LinkedIn
  1. Junior Member
    Тук е от
    Nov 2004
    Мнения
    100
    #1

    Паскал: Стълбове и Редове до безкрайност ? Как ?

    Имам предвид да направя, така че деклараторът сам да определя броя на стълбовете и редовете на масива. На теория, знам че става чрез въвеждане на променлива F например и write(' Vuvedete broq na redovete i stulbovete na masiva');
    readln(F);

    Да обаче не става защото не ми разпознава интервала на матрицата без константата в него. Ето как изглежда програмата ми досега:

    Код:

    Код:
    PROGRAM Kursova_rabota_No1; 
    CONST 
        N=3; 
        M=(N*(N-1)) DIV 2; 
    VAR 
      A:ARRAY [1..N,1..N] OF REAL; 
      C:ARRAY [1..M] OF REAL; 
      X:REAL; 
      I,J,K:INTEGER; 
    
    BEGIN 
         writeln ('***********************************************************'); 
      writeln ('This program was made by Grigor Ivanov, N: 051208059 . '); 
      writeln (' TU - Sofia , Departament of Thermalengineering '); 
      writeln ('*************************************************************'); 
      writeln ('         ---===<<<  Kursova Zadacha N:1  >>>===---'); 
      writeln ('___________________________________________________________'); 
      writeln (' Da se sustavi programa za obrabotka na masiva A[N,N] kudeto'); 
      writeln (' dannite sa realni chisla v intervala [-1000; 1000], da izvurshvat slednite deistviq:'); 
      writeln (' * otpe4atvane na uslovieto na zada4ata'); 
      writeln (' * otpe4atvane avtora na programata'); 
      writeln (' * vuvejdane na vhodnite danni'); 
      writeln (' * otpe4atvane na vhodnite danni'); 
      writeln (' * a) da se obrazuva ednomeren masiv C, elementite na koito sa elementite na masiva A'); 
      writeln (' * namira6ti se pod glavniq, diagonal, b) polu4eniqt masiv da se sortira po golemina'); 
      writeln (' * otpe4atvane na polu4enite rezultati i sled obrabotka a) i sled obrabotka b)'); 
      writeln ('_____________________________________________________________'); 
      writeln; 
    
     { VYVEJDAME DANNITE } 
    
     FOR I:=1 TO N DO 
      BEGIN 
       WRITELN(I,':'); 
       FOR J:=1 TO N DO 
        BEGIN 
         REPEAT 
          WRITE(' ',J,'.'); 
          READLN(X); 
         UNTIL (X>=-1000) AND (X<=1000); 
         A[I,J]:=X; 
        END 
      END; 
    
     { IZVEJDAME MATRICATA } 
    
     WRITELN('Matrica:'); 
     FOR I:=1 TO N DO 
      BEGIN 
       FOR J:=1 TO N DO 
        WRITE(A[I,J]:2:2,' '); 
       WRITELN; 
      END; 
    
     { POPYLVAME MASIVA "C" S ELEMENTITE POD GLAVNIQ DIAGONAL } 
    
     K:=1; 
     FOR I:=2 TO N DO 
      FOR J:=1 TO I-1 DO 
       BEGIN 
        C[K]:=A[I,J]; 
        K:=K+1; 
       END; 
    
     { SORTIRAME MASIVA "C" } 
    
     FOR I:=2 TO M DO 
      BEGIN 
       X:=C[I];J:=I-1; 
       WHILE (X<C[J]) AND (J>0) DO 
        BEGIN 
         C[J+1]:=C[J]; 
         J:=J-1; 
        END; 
       C[J+1]:=X; 
      END; 
    
     { IZVEJDAME SORTIRANIQ MASIV } 
    
     WRITELN; 
     WRITELN('Sortirani elementi pod glavniq diagonal:'); 
     FOR I:=1 TO M DO 
      WRITE(C[I]:2:2,' '); 
      readln 
     END.

    Какво може да се сложи вместо това N=3 като константа за да разпознае променливата

  2.  
     
  3. Senior Member
    Тук е от
    Feb 2003
    Мнения
    2,351
    #2

    Re: Паскал: Стълбове и Редове до безкрайност ? Как ?

    Ааа, значи можело
    Пробвай да ползваш процедури за въвеждането и сортирането на данните. В тях (процедурите) спокойно можеш да използваш вече въведената чрез READLN(F) стойност.

  4. Junior Member
    Тук е от
    Nov 2004
    Мнения
    100
    #3

    Re: Паскал: Стълбове и Редове до безкрайност ? Как ?

    Задачката съвсем се у*ра. Когато сружа допълнителна променлива константата М губи смисъл. Тъй като тя работи със стойностите на N. Оф как да направя цялата фасмантагория, че вече ми писна.

  5. Member
    Тук е от
    Nov 2005
    Мнения
    295
    #4

    Re: Паскал: Стълбове и Редове до безкрайност ? Как ?

    Не съм много убеден, че на Pascal можеш да дефинираш масив с размерност, зададена като променлива. Може би, както @Black Adder каза, ако е във функиця и е зададена като параметър.
    Но от гледна точка на алгоритъм за решаване на задачата това не би трябвало да е проблем. Коректно зададената задача следва да определи N като някакъв максимум и с него да дефинираш масива, а реално да се използва размерност, въведена от програмата.

    Тогава би трябвало да се добави само някъде в началото:
    Код:
    VAR M: INTEGER;
    REPEAT 
      WRITE('Razmernost '); 
      READLN(M); 
    UNTIL (M>=2) AND (M<=N);
    и после да се използва M вместо N

    И по-голям успех със следващите задачи!

Сподели във Facebook Сподели в Google Plus Сподели в Twitter Изпрати на Email Сподели в LinkedIn

Подобни теми

  1. Въпрос за Паскал
    От xzone във форум Програмиране
    Отговори: 2
    Последно: 17-08-09, 01:16
  2. Помощ на Паскал
    От LiLiLiTa във форум Програмиране
    Отговори: 9
    Последно: 09-08-09, 22:56
  3. паскал или джава
    От sf7878 във форум Програмиране
    Отговори: 5
    Последно: 01-05-08, 06:58
  4. Отговори: 7
    Последно: 05-09-06, 17:04
  5. Паскал?
    От heat_ във форум Програмиране
    Отговори: 2
    Последно: 25-07-06, 11:09

SetCombG.com
SetCombG.com е портален сайт и Форум за битова техника, телевизори, климатици, лаптопи и смартфони, създаден през 1999 година.
Заедно сме над 20 години!
Следвай ни
Горе