Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: forlin в Oct 21, 2007, 19:08



Титла: въпрос свързан с паскал
Публикувано от: forlin в Oct 21, 2007, 19:08
здравейте имам да направя една програмка на турбо паскал но проблема е 4е не го разбирам дали има някой от форума който може да ми помогне ще съм много благодарен
ето я и самата задача:
Да се състави програма за обработка на масива А[11,11]където данните са цели числа в интервала от [0,1000]Съответните подпрограми да извършват следните действия:                                                                     1)отпечатване на условието на задачата и името на автора на програмата;2)въвеждане на входните данни; 3)отпечатване на входните данни; 4)  а)да се образува наов масив С,елементите на който са сумата от цифрите на съответните елементи на масива А,б)да се намери максималния елемент на масива С,както и номера на реда и номера на стълба,на които той лежи;5)отпечатване на получените резултати след обработка а) и  след обработка б);


Титла: въпрос свързан с паскал
Публикувано от: romeo_ninov в Oct 21, 2007, 20:04
А някой да дойде и да сготви и почисти у вас?
Напиши си я сам, ако (като) получиш грешки питай


Титла: въпрос свързан с паскал
Публикувано от: forlin в Oct 22, 2007, 23:13
E da prav si,no problemut e che nishtichko ne shvashtam ot Pascal! :( Vse pak se opitah da napravq ne6to,no dori ne sum siguren dali e vqrno.Ako nqkoi moje da mi pomogne she sum mu mnogo blagodaren, zashtoto chetvurtuk e krainiqt srok za predavane!  :crazy: Blagodarq vi predvaritelno! A eto i opita mi :                                                                    Program masiv;
Const m=11;
Var
A:array[1..m,1..m] of Integer;
,C,Br,Cmax,I,J,x,y,SUM:Integer;
Begin
Writeln(‘Avtor..’);
Writeln(‘Fak.nom..,gr..,spec..’);
Writeln(‘Uslovie na zadachata..’);

{Vavejdane na elementite na masivaA}

for I:=1 to m do
for J:=1 to m do
Repeat
Write(‘Vavejdate chislo mejdu 1;999.99-A[‘,I,’,’,J,’]=’);
Readln(A[I,J]);
until((A[I,J]>=1) and (A[I,J]<999.99));

{Izvejdane na elementite na masiva A}

writeln;
writeln(‘Vavedete stoinosti na masiva A:’);
for I:=1 to m do
begin
for J:=1 to m do
write(A[I,J]:11);
writeln;
end;

{Vavejdane na C I intervala [x,y]}

writeln;
write(‘Vavedete chisloto C=’);
readln©;
write(‘Vavedete dolna granica x=’);
readln(x);
write(‘Vavedete gorna granica y=’);
readln(y);


Титла: въпрос свързан с паскал
Публикувано от: crasher5 в Oct 23, 2007, 00:45
До тук виждам, че си направил 2 грешки... Нямам време сега да седна и да ги оправя, но ако имам време по-касно довечера ще ги имаш.. макар, че от 3 години не сам пипал паскал и сам позабравил нещата... Първо като въвеждаш числата, трябва да са =>1 и <=1000 и да са цели.. не ми е ясно защо го намесваш това 999.99 там. И втория ти проблем е С... какво точно го караш да бъде/прави за сега?! Наистина ще се постарая да драсна нещо по въпроса по-касно просто защото и аз започнах с Паскал... носталгия!


Титла: въпрос свързан с паскал
Публикувано от: n00b в Oct 23, 2007, 03:58
"Като знам какъв инженер съм, ме е страх да ида на доктор!"

Аре леко оффтопик - пич ако така небрежно го раздаваш далеч няма да стигнеш във Висшето си образование. После ще четем във форуми как има свободни работни места за инжинери и как някой се оплаква че не му се работи като Келнер защото имал висше.


Титла: въпрос свързан с паскал
Публикувано от: plamen_f в Oct 23, 2007, 07:52
@ forlin

Приятел,

от написаното като идея за програма, оставам с усещането, че или си в 1-ви курс някъде и си там случайно или се майтапиш ;)

Във пъврия сучай - трябва учене братко, доста от хората тук че ти напишат това което искаш в рамките на 3-5 минути, но не вярвам някой да смята това за правилно!

Във втория - дай още нещо весело, полезно е за всички :)

Упсех!


Титла: въпрос свързан с паскал
Публикувано от: forlin в Oct 23, 2007, 21:31
Редактирано съгласно т.3 от правилата на форума!


Титла: въпрос свързан с паскал
Публикувано от: BOT_ev в Oct 23, 2007, 21:57
//off:
Баси колко съм отвикнал да чета шльокавица ... разглезихте ме в тоя форум ейй ..


Титла: въпрос свързан с паскал
Публикувано от: forlin в Oct 24, 2007, 22:58
Добре,вече наистина направих всичко по силите си,но ми излиза грешка.Моля ви да ми помогнете да я открия!Благодаря ви предварително!!!А ето и какво сум направил:
program zadcha;
Const m=11;
Var A:array[1..m,1..m] of Integer;
    C,Cmax,I,J,x,y,:Integer;
Begin
Writeln(‘Avtor..’);
Writeln(‘Fak.nom..,gr..,spec..’);
Writeln(‘Uslovie na zadachata..’);

{Vavejdane na elementite na masivaA}

for I:=1 to m do
 for J:=1 to m do
  Repeat
   Write(‘Vavejdate chislo mejdu 0;1000-A[‘,I,’,’,J,’]=’);
   Readln(A[I,J]);
  until((A[I,J]>=0) and (A[I,J]<1000));

{Izvejdane na elementite na masiva A}

writeln;
writeln(‘Vavedenite stoinosti na masiva A:’);
for I:=1 to m do
begin
 for J:=1 to m do
  write(A[I,J]:11);
 writeln;
end;

{noviq masiv C}

for I:=1 to m do
 for J:=1 to m do
  begin
    C[I,J]:=0;
    pom:=A[I,J];
    repeat
      C[I,J]:=C[I,J]+(pom mod 10);
      pom:=pom div 10;
    until (pom=0);
  end;

{Izvejdane na elementite na masiva C}

writeln(‘Vavedenite stoinosti na masiva C:’);
for I:=1 to m do
begin
 for J:=1 to m do
  write(C[I,J]:11);
 writeln;
end;

{tyrsene an maksimalen element na masiv C i negovite indexi}

Cmax:=C[1,1];
x:=1; y:=1;
for I:=1 to m do
 for J:=1 to m do
   if (C[I,J]>Cmax) then begin
            Cmax:=C[I,J];
            x:=I;
            y:=J;
          end;
writeln("maximalniq element na masiva C e C[",I,",",J,"]=",Cmax:11, ".");
 end.


Титла: въпрос свързан с паскал
Публикувано от: n00b в Oct 25, 2007, 02:16
Помогни си сам да ти помогне и ...Линукс обществото.

Примерен код
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

Const m=3;
Var A:array[1..m,1..m] of Integer;
   pom, Cmax,I,J,x,y:Integer;
   C:array[1..m,1..m] of Integer;

Begin
Writeln('Avtor..');
Writeln('Fak.nom..,gr..,spec..');
Writeln('Uslovie na zadachata..');

{Vavejdane na elementite na masivaA}

for I:=1 to m do
for J:=1 to m do
 Repeat
  Write('Vavejdate chislo mejdu 0;1000-A[',I,',',J,']=');
  Readln(A[I,J]);
 until((A[I,J]>=0) and (A[I,J]<1000));

{Izvejdane na elementite na masiva A}

writeln;
writeln('Vavedenite stoinosti na masiva A:');
for I:=1 to m do
begin
for J:=1 to m do
 write(A[I,J]:11);
writeln;
end;

{noviq masiv C}

for I:=1 to m do
for J:=1 to m do
 begin
   C[I,J]:=0;
   pom:=A[I,J];
   repeat
     C[I,J]:=C[I,J]+(pom mod 10);
     pom:=pom div 10;
   until (pom=0);
 end;

{Izvejdane na elementite na masiva C}

writeln('Vavedenite stoinosti na masiva C:');
for I:=1 to m do
begin
for J:=1 to m do
 write(C[I,J]:11);
writeln;
end;

{tyrsene an maksimalen element na masiv C i negovite indexi}

Cmax:=C[1,1];
x:=1; y:=1;
for I:=1 to m do
for J:=1 to m do
  if (C[I,J]>Cmax) then
  begin
    Cmax:=C[I,J];
    x:=I;
    y:=J;
  end;
writeln('maximalniq element na masiva C e C[',x,',',y,']=',Cmax:11, '.');
end.


Програмата работи успешно на Delphi. Ако промениш първите няколко реда ще тръгне и на ТурбоПаскал.

Внимавай с апострофите! Отне ми 3 минути да ти ги оправя навсякъде.

Масива C не беше дефиниран! Не беше дефинирана и променливата pom!

И на финала имаше една логическа грешка при извеждането на максималната стойност. В твоя пример използваш i & j което е груба грешка защото винаги излизат със стойност равна на M. Трябвало е да разпечаташ X & Y.

Само съм променил M да е равно на 3 щото съм мързелив да въвеждам 11^2 стойности.

Заслужих ли си бирата?