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

Моля за помощ за една задача на Pascal

Сподели във Facebook Сподели в Twitter Изпрати на Email Сподели в LinkedIn
  1. Novice
    Тук е от
    May 2006
    Мнения
    3
    #1

    Моля за помощ за една задача на Pascal

    Здравейте!Нуждая се от помощ за една задача на Pascal.Нямам много опит с програмирането на Pascal и затова моля за помощ.Та задачата е следната:

    Направете програма на Pascal,която извърщва четенето от клавиатурата на едно цяло число N, което определя размера на
    квадратна матрица A[N x N].Изчислете нова матрица B=|| Bij ||със същия размер,където* Bij е минимума на елементите ,които се намират в защрихованата зона (под диагоналите, които* минаватат през* Aij)
    На прикачения file е картинката със защрихованата част,за по-голяма нагледност
    Моля,ако някой измисли нещо да ми го прати на e-mail: realdh@abv.bg ili ICQ:230-528-965.Благодаря предварително!!!
    Прикачени изображения Прикачени изображения

  2.  
     
  3. Senior Member Аватара на Bibi
    Тук е от
    Nov 2004
    Мнения
    2,757
    #2

    Re: Моля за помощ за една задача на Pascal

    Първо: картинката не се вижда.
    Освен това, моля те, опитай да напишеш нещо по задачата, и чак тогава да помагаме по конкретни въпроси. Няма никаква полза някой да ти я даде готова.
    Поне направи опит, става ли?

  4. Novice
    Тук е от
    May 2006
    Мнения
    3
    #3

    Re: Моля за помощ за една задача на Pascal

    Цитат Първоначално публикувано от Bibi
    Първо: картинката не се вижда.
    Освен това, моля те, опитай да напишеш нещо по задачата, и чак тогава да помагаме по конкретни въпроси. Няма никаква полза някой да ти я даде готова.
    Поне направи опит, става ли?
    Първо съжалявам за картинката!Сложил съм друга картинка.Относно задачата.Днес цял ден се мъча, но нищо не излиза.Проблемът е че не мога да отсея елементите под тези произволни диагонали. Ето какво съм направил,но ме е малко срам,защото всичко е объркано и не работи:

    Program Zad15;
    * * * * * * * * type
    * * * * * * * * * * Masiv2= array[1..20,1..20] of real;
    * * * * * * * * var
    * * * * * * * * * *n:integer;
    * * * * * * * * * *A:Masiv2;
    * * * * * * * * procedure ReadM (m:integer; var X:Masiv2);
    * * * * * * * * * *var
    * * * * * * * * * * * i,j:integer;
    * * * * * * * * * *begin
    * * * * * * * * * * * for i:=1 to n do
    * * * * * * * * * * * * * begin
    * * * * * * * * * * * * * * * *for j:=1 to n do read(X[i,j]);
    * * * * * * * * * * * * * * * *readln;
    * * * * * * * * * * * * * end;
    * * * * * * * * * *end;
    * * * * * * * * function Min(m:integer; var X:Masiv2):real;
    * * * * * * * * * * * * *var
    * * * * * * * * * * * * * * p,i,j:integer;
    * * * * * * * * * * * * * * S:array[1..20] of real;
    * * * * * * * * * * * * * * y:real;
    * * * * * * * * * * * * *begin
    * * * * * * * * * * * * * * * write('i=');read(i); (Тук искам да въведа елемента,който съм си избрал и да излезе на екрана, примерно А34
    * * * * * * * * * * * * * * * write('j=');read(j);
    * * * * * * * * * * * * * * * *read(X[i,j];
    p:=i;
    * * * * * * * * * * * * * * * for i:=p to m do
    * * * * * * * * * * * * * * * * * begin
    * * * * * * * * * * * * * * * * * * * *for j:=1 to m do
    * * * * * * * * * * * * * * * * * * * * * *if(i-j=2)and(m<>i) then write('Erreur')
    * * * * * * * * * * * * * * * * * * * * * *else
    * * * * * * * * * * * * * * * * * * * * * *if X[i,j]<S[i] then S[i]:=X[i,j];
    * * * * * * * * * * * * * * * * * *end;
    * * * * * * * * * * * * * * * * * *y:=S[1];
    * * * * * * * * * * * * * * * * * *for i:=2 to n do
    * * * * * * * * * * * * * * * * * * * *if S[i]<y then y:=S[i];
    * * * * * * * * * * * * * * * * * *Min:=y;
    * * * * * * * * * * * * * *end;
    * * * * * * * * * * * * * begin
    * * * * * * * * * * * * * * * *write('n=');readln(n);
    * * * * * * * * * * * * * * * *ReadM(n,A);
    * * * * * * * * * * * * * * * *writeln(Min(n,A));
    * * * * * * * * * * * * * readln;
    * * * * * * * * * * * * * end.
    Това е общо взето.Сега съм качил правилната картинка.


    Прикачени изображения Прикачени изображения

  5. Senior Member Аватара на Bibi
    Тук е от
    Nov 2004
    Мнения
    2,757
    #4

    Re: Моля за помощ за една задача на Pascal

    Добре :-)
    Първо виж процедурата ReadM.
    Там двата цикъла трябва да ги въртиш до m, а не до n.
    Нали това ти е вътрешната променлива за размера на масива.

    Честно казано позабравила съм в Паскала как стои въпроса с глобалните променливи, но доколкото n е глобална, можеш изобщо да не я предаваш на процедурата.
    Ако искаш, пробвай.
    Имам предвид процедурата ти да си остане както е в момента, само да й махнеш първия параметър.

    Нещо такова:
    Код:
    function MinElement(var mi, mj: integer; var X: Masiv2): real;
    var
     i, j, lo, hi: integer;
     y: real;
    
    begin
     if mi < n then
     begin
      y := X[mi + 1,mj];
      for i := mi + 2 to n do
      begin
       if (mi + mj - i + 1 > 1)
        then lo := mi + mj - i + 1
        else lo := 1;
       if (mj - mi + i - 1 < n)
        then hi := mj - mi + i - 1
        else hi := n;
       for j := lo to hi do
        if (X[i,j] < y) then y := X[i,j];
      end;
      MinElement := y;
     end
     else MinElement := X[mi,mj];
    end;
    И в главната:
    Код:
    begin
     write('n = '); readln(n);
     ReadM(A);
    
     for i:=1 to n do
      for j:=1 to n do
       B[i,j] = MinElement(i,j,A);
      
     WriteM(B);
    end.

  6. Novice
    Тук е от
    May 2006
    Мнения
    3
    #5

    Re: Моля за помощ за една задача на Pascal

    Ето какво се получи след няколкочасови мъки,благодарение на Bibi:
    * * * * Program Zad15;
    * * * * * * * * type
    * * * * * * * * * * Masiv2= array[1..20,1..20] of real;
    * * * * * * * * var
    * * * * * * * * * *i,j,n:integer;
    * * * * * * * * * *A,B:Masiv2;
    * * * * * * * * procedure ReadM (m:integer; var X:Masiv2);
    * * * * * * * * * *var
    * * * * * * * * * * * i,j:integer;
    * * * * * * * * * *begin
    * * * * * * * * * * * for i:=1 to n do
    * * * * * * * * * * * * * begin
    * * * * * * * * * * * * * * * *for j:=1 to n do read(X[i,j]);
    * * * * * * * * * * * * * * * *readln;
    * * * * * * * * * * * * * end;
    * * * * * * * * * *end;
    * * * * * * * * procedure WriteM(var X:Masiv2);
    * * * * * * * * * * var
    * * * * * * * * * * * *i,j:integer;
    * * * * * * * * * * begin
    * * * * * * * * * * * *for i:=1 to n do
    * * * * * * * * * * * *begin
    * * * * * * * * * * * *for j:=1 to n do write (X[i,j]:2);
    * * * * * * * * * * * *writeln;
    * * * * * * * * * * * *end;
    * * * * * * * * * * end;

    * * * * * * * * function MinElement(var mi,mj:integer;var X:Masiv2):real;
    * * * * * * * * * * * * *var
    * * * * * * * * * * * * * * i,j,lo,hi:integer;
    * * * * * * * * * * * * * * y:real;
    * * * * * * * * * * * * * * begin
    * * * * * * * * * * * * * * * * *if mj<n then
    * * * * * * * * * * * * * * * * *begin
    * * * * * * * * * * * * * * * * * y:=X[mi,mj+1];
    * * * * * * * * * * * * * * * * * for j:=j+2 to n do
    * * * * * * * * * * * * * * * * * begin
    * * * * * * * * * * * * * * * * * *if (mi+mj>j)then lo:=mi+mj-j+1 else lo:=1;
    * * * * * * * * * * * * * * * * * *if (mi-mj<n-j +1) then hi:=mi - mj +j-1 else hi:=n;
    * * * * * * * * * * * * * * * * * *for i:=lo to hi do
    * * * * * * * * * * * * * * * * * * * *if(X[i,j]<y) then y:=X[i,j];
    * * * * * * * * * * * * * * * * * end;
    * * * * * * * * * * * * * * * * * MinElement:=y;
    * * * * * * * * * * * * * * end
    * * * * * * * * * * * * * * else MinElement:=X[mi,mj];
    * * * * * * * * * * * * * end;
    * * * * * * * * * * * * * begin

    * * * * * * * * * * * * * * * *write('n=');readln(n);
    * * * * * * * * * * * * * * * *ReadM(n,A);
    * * * * * * * * * * * * * * * *for i:=1 to n do
    * * * * * * * * * * * * * * * * * *begin
    * * * * * * * * * * * * * * * * * * * * for j:=1 to n do B[i,j]:=MinElement(i,j,A);
    * * * * * * * * * * * * * * * * * * * *end;
    WriteM(B);

    * * * * * * * * * * * * * readln;
    * * * * * * * * * * * * * end.


    Ако някой има какво да каже и да сподели опит да заповяда!!!Благодаря

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

Подобни теми

  1. Отговори: 5
    Последно: 05-04-14, 07:31
  2. Моля за помощ за една системка !!!
    От Peckata във форум Аудиотехника
    Отговори: 2
    Последно: 21-03-10, 13:40
  3. Помощ за една задача....
    От catana във форум Дъра-Бъра
    Отговори: 6
    Последно: 23-01-07, 01:00
  4. Freee Pascal помощ!
    От Yasen6275 във форум Програмиране
    Отговори: 0
    Последно: 03-01-07, 13:57
  5. Една задача
    От The Mask във форум Мрежи
    Отговори: 8
    Последно: 18-04-03, 14:51

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