Zyx-Cheater Ierakstīts Novembris 5, 2013 Share Ierakstīts Novembris 5, 2013 Sveiki! Šobrīd studēju un mācos darboties pascālā, programmēšana man nekad nav īsti gājusi un vienmēr sagādājusi lielas problēmas. Jau vairākas dienas cīnos ar vienu uzdevumu, kuru man uzdeva augstskolā, un netieku galā ar dažādām nepilnībām. Mans uzdevums ir Viendimensiju masīvā (masīvs ar dažādām skaitliskām vetrtībām, 50 elementi) noteikt mazākā elementa vērtību un indeksu, analizēt visus masīva elemntus, kas ir lielāki par 3. Man ir jāuzstaisa divas programmas, viena kas izveidos piecus masīvus, un otra, kas viņus analizēs un atradīs tuvāko vērtību 3, kas ir lielāka par 3. Ar pirmo darba daļu itkā galā esmu ticis, programma izveido 5masīvus, kuri ir txt failā. Programmas teksts, kas izveido masīvus: program masivs;uses crt;var mas:array[0..49] of real;i, j:integer;a, x, solis:real;fails:text;beginwriteln('Programma, kas genere masivu');assign(fails, 'masivs.txt' );rewrite(fails);for j:=1 to 5 dobeginwriteln;writeln;writeln('Ievadi x vertibu:');readln(x);writeln('Ievadi a vertibu:');readln(a);writeln('Ievadi soli par kadu pieaugs masiva elementi:');readln(solis);writeln;writeln('Masivs:');writeln; for i:=0 to 49 do begin mas:=a*x; x:=x+solis; write(mas:8:0, ''); write(fails,mas:8:0, ''); end; writeln(fails);end;writeln('');writeln('');close(fails);readkey;end. >>>>> Otras programmas teksts kas analizē masīvus: program masivs;uses crt;var mas:array[0..49] of real;i, j, l, id, ind:integer;b, a:real;fails:text;beginwriteln('Programma, kas analize masiva elementus');assign(fails, 'masivs.txt' );reset(fails);for j:=0 to 4 dobeginwriteln;for i:=0 to 49 dobeginread(fails,mas);write(mas:8:0, '');end;writeln;for l:=0 to 49 dobeginif (mas > 3) thenb:= mas;id:= l;breakend;for i:=0 to 49 dobegin if (mas > 3) then if (mas < b) then begin b:= mas; id:=i; end;end;writeln('Vismazaka masiva elementa, kas lielaks par 3 vertiba ir', b:3:0, ' ', 'un ta indeks ir=', id, '');end;writeln('');writeln('');write(fails);close(fails);readkey;end. >>> Pievienošu bildi, kurā redzama šī programma. Tajā ir nepilnības ar kurām nespēju tikt galā, šajā forumā noteikti lielākā daļa ir gudrāki par mani programmēšanā un ceru uz viņu padomiem un palīdzību. Programma jaucās ar indeksiem un brīžam arī ar skaitļu vērtībām. Nesaprotu kur ir manas kļūdas tekstā un kapēc viss nestrādā kā vajag. Tikko iedomājos izņemt no otrā cikla: break , bet tagad izskatās ka programma negattīvos skaittļus uzttver kā pozitīvus. masivs.txt Link to comment Share on other sites More sharing options...
persick Novembris 6, 2013 Share Novembris 6, 2013 Palīdzēt ar uzdevumu nevarēšu, bet varu ieteikt, ka kodu labāk izvietot ar iekrāsotu sintaksi lasāmības uzlabošanai. Ja forums neatbalsta Pascal , tad ievieto kādā ārējā resursā, piem. http://pastebin.com/ Link to comment Share on other sites More sharing options...
MOD Novembris 6, 2013 Share Novembris 6, 2013 Šeit ir tava kļūda. for l:=0 to 49 do begin if (mas[i] > 3) then b:= mas[i]; id:= l; break end Padomā, kas notiek gadījumos, ja nav tādas vērtības, kas ir lielāka par 3. Šobrīd Tev tur rādās rezultāts no iepriekšējās iterācijas. Link to comment Share on other sites More sharing options...
Zyx-Cheater Novembris 6, 2013 Author Share Novembris 6, 2013 Paldies par atbildi. Vakarnakt vēlāk arī pats to sapratu, un izdevās visu uzstaisīt Link to comment Share on other sites More sharing options...
Recommended Posts
Izveido kontu, vai pieraksties esošajā, lai komentētu
Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas
Izveidot jaunu kontu
Piereģistrējies un izveido jaunu kontu, tas būs viegli!
Reģistrēt jaunu kontuPierakstīties
Jums jau ir konts? Pierakstieties tajā šeit!
Pierakstīties tagad!