Dobrý den,potřeboval bych poradit s pár programy, nevím jak je korektne rozhodit :(
1)Sestavte program, který vygeneruje 20 čísel v intervalu 1 - 10. Poté určí, která čísla se opakuji a zjistí, která se opakují nejčastěji (nejčastější a druhé nejčastější číslo)
2)Sestavte program, ve kterém nejprve zadáte počet řádků a sloupců max 5, takto velkou matici naplníte náhodnými čísly do 100, vytisknete ji na obrazovku a k ní vytisknete matici transponovanou.
3)Zadat matici 3x3 (je jedno jak je zadáme) a zpočítat determinant pomocí ,,sadisova´´ pravidla
4)Sestavte program pro zpracování deseti fyzikálních měření. Na začátku zadáme 10 hodnot, program spočítá průměr, odchylky jednotlivých měření, absolutní a relativní odchylku. Abs. hodnoty odchylek, z nich aritmet průměr. Relativní odchylka je absolutní dělena průměrem krát 100%. Pole 10 řádků a 2 sloupce. (ve druhém o kolik se liší naměřená hodnota od průměru)
Tisk jednotlivých měření a tisk odchylek.
Fórum › Pascal
Ukoly v pascalu - IVT
![](img/forum_vlakno_help_vyreseno.png)
To SeraphCZ : tak treba ten prvni zacal jsem ho psat takhle ale podle me To SeraphCZ : nefunguje.
program dvakrat_podruhe;
var
a,b,c:integer;
i:array[1..20] of integer;
j:array[1..20] of integer;
begin
randomize;
for a:= 1 to 20 do
begin
i[a]:=random(10);
for b:= a to 19 do
begin
if i[a] = i[b+1] then
j[a]:=i[a];
end;
end;
readln;
end.
Tenhle cyklus se mi moc nelibi:
for a:= 1 to 20 do
begin
i[a]:=random(10);
for b:= a to 19 do //<-- tohle je podle me blbost viz.[1]
begin
if i[a] = i[b+1] then
j[a]:=i[a];
end;
end;
[1] Kdyz na to jen tak zbezne koukam a nejak extra nepremejslim nad algoritmem tak je tohle blbost protoze at je a jakykoliv tak dalsi prvky pole jsou porad prazdna a kdyz uz to konecne zaplni pole tak to skonci. Udelej si nejdriv cyklus na zaplneni pole tema nahodnejma hodnotama a az potom s polem pracuj
Sarusova pravidla, když chci něco programovat, tak se to alespoň naučím pojmenovat
Zde máš příklad 1.
program Posl;
{$APPTYPE CONSOLE}
uses
SysUtils;
var i,j,maxc: Integer;
s: String;
p: array [1..20] of Integer;
cis: array [1..10] of Integer;
pov: array of String;
begin
Randomize;
WriteLn;
WriteLn(' Vygenerovana posloupnost:');
Write(' ');
for i := 1 to 20 do //20x opakujeme generovani cisel
begin
p[i] := Random(10)+1; //generujeme cislo 1-10 a zapiseme ho do pole
if i<20 then
s := ','
else
s := '';
Write(p[i],s); //a zapiseme ho na obrazovku
end;
WriteLn;
WriteLn;
WriteLn(' Pocet vyskytu cisel 1-10 v posloupnosti:');
//tady hledame kolikrat se kazde cislo 1-10 vyskytuje v dane posloupnosti
for i := 1 to 10 do
for j := 1 to 20 do
if p[j]=i then
cis[i] := cis[i]+1; //pocet vyskytu daneho cisla 1-10 zvysime o 1
for i := 1 to 10 do
if cis[i]<>0 then //a zapisujeme, ktere cislo a kolikrat je v posloupnosti
WriteLn(' cislo ',i,' je v posloupnosti ',cis[i],'x')
else
WriteLn(' cislo ',i,' v posloupnosti neni');
//tady hledame cisla s nejvyssim poctem vyskytu
maxc := 0;
SetLength(pov,0);
for i := 1 to 10 do
if cis[i]>=maxc then
maxc := cis[i];
for i := 1 to 10 do
if cis[i]=maxc then
begin
SetLength(pov,Length(pov)+1);
pov[Length(pov)-1] := IntToStr(i);
cis[i] := -1; //abychom ho uz dal nehledali priradime mu pocet vyskytu zaporny
end;
s := '';
Writeln;
//zde zapisujeme cisla s nejvyssim poctem vyskytu
if Length(pov)>1 then
begin
for i := 0 to Length(pov)-2 do
s := s+pov[i]+',';
s := s+pov[Length(pov)-1];
WriteLn(' Nejvyssi pocet vyskytu maji cisla ',s,' a to: ',maxc,'x');
end
else
begin
s := pov[0];
WriteLn(' Nejvyssi pocet vyskytu ma cislo ',s,' a to: ',maxc,'x');
end;
//tady hledame cisla s druhym nejvyssim poctem vyskytu
maxc := 0;
SetLength(pov,0);
for i := 1 to 10 do
if cis[i]>=maxc then
maxc := cis[i];
for i := 1 to 10 do
if cis[i]=maxc then
begin
SetLength(pov,Length(pov)+1);
pov[Length(pov)-1] := IntToStr(i);
cis[i] := -1;
end;
s := '';
Writeln;
//zde zapisujeme cisla s druhym nejvyssim poctem vyskytu
if Length(pov)>1 then
begin
for i := 0 to Length(pov)-2 do
s := s+pov[i]+',';
s := s+pov[Length(pov)-1];
WriteLn(' Druhy nejvyssi pocet vyskytu maji cisla ',s,' a to: ',maxc,'x');
end
else
begin
s := pov[0];
WriteLn(' Druhy nejvyssi pocet vyskytu ma cislo ',s,' a to: ',maxc,'x');
end;
ReadLn;
end.
Dobrý, ale nech HenXovi aspoň něco. Říkal, že to píše podle sebe a pak to sem šoupne, tak proč mu kazit radost z vlastní práce? ;-)
Moje stránka.
sry, jsem byl lehce rozhozen :)
![](img/forum_nove_psp_new.png)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
![](/img/smile/1.gif)
![](/img/smile/2.gif)
![](/img/smile/3.gif)
![](/img/smile/4.gif)
![](/img/smile/5.gif)
![](/img/smile/6.gif)
![](/img/smile/7.gif)
![](/img/smile/8.gif)
![](/img/smile/9.gif)
![](/img/smile/10.gif)
![](/img/smile/11.gif)
![](/img/smile/12.gif)
![](/img/smile/13.gif)
![](/img/smile/14.gif)
![](/img/smile/15.gif)
![](/img/smile/16.gif)
![](/img/smile/17.gif)
![](/img/smile/18.gif)
![](/img/smile/19.gif)
![](/img/smile/20.gif)
![](/img/smile/21.gif)
![](/img/smile/22.gif)
![](/img/smile/23.gif)
![](/img/smile/24.gif)
![](/img/smile/25.gif)
![](/img/smile/26.gif)
![](/img/smile/27.gif)
![](/img/smile/28.gif)
![](/img/smile/29.gif)
![](/img/smile/30.gif)
![](/img/smile/31.gif)
![](/img/smile/32.gif)
Uživatelé prohlížející si toto vlákno
Podobná vlákna
úkol do IVT — založil Jana
Výuka prvňáků a druháků v ivt kroužku — založil schimpanze_001
Má cenu studovat IVT, když neumím matiku? — založil Andy
úkoly ??? — založil total.random
Moderátoři diskuze