Pascal - pomoc s prikladmi

Programovacie jazyky, rady, poradňa...
Hossa1881
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1071
Registrovaný: 31 júl 2005, 21:51
Bydlisko: Martin//Ostrava
Kontaktovať používateľa:

Pascal - pomoc s prikladmi

Príspevok od používateľa Hossa1881 »

1. da sa z pola kde je napr 1 1 1 spravit jedna premenna, jedno cislo 111?

2.program....textovo alebo graficky...vstup – utvar ktoreho uhlopriecku tvori iny znak...napr. v=5

****
* ***
** **
*** *
****
3.program...text alebo graf. rezim....po zadani vstupu vykresli utvar(vyska a dlzka schodov) napr. v=5

*****
*****
*****
*****
*****
4. ) program...text alebo graf. rezim.....
napr. v=5

*****
****
***
**
*


ak daktory z tychto budete vediet pls napiste, dakujem za pomoc a k+
konyk87
King
King
Používateľov profilový obrázok
Príspevky: 1709
Registrovaný: 24 okt 2007, 15:56

Príspevok od používateľa konyk87 »

1. od najvyssieho nasobis prvky pola nasobkami desiatky + scitas vysledky..napr mas pole 1 2 3, tak nasobis 3*1 + 2*10 + 1*100 = 123
ak je pole prilis velke je lepsie si spravit nejaky cyklus (zrejme while - kym ti neskonci pole) kde sa bude premenna nasobit 10...

2. 2 cykly (napr i a j) - v jednom sa bude zvysovat pocet riadkov, v druhom pocet stlpcov, na zaciatku alebo konci vonkajsieho z tychto cyklov odriadkujes..niekde tam das podmienku, ze ak sa i=j tak nech vypise iny znak..

3. nepochopil som "dlzka schodov"..

4. treba skusat - neviem ti povedat z hlavy algoritmus.. :oops:
morfeusko
Medium Star
Medium Star
Príspevky: 395
Registrovaný: 19 mar 2008, 15:21
Bydlisko: Nitra
Kontaktovať používateľa:

Príspevok od používateľa morfeusko »

Skus tie zadania trosku preformulovat alebo dat lepsie ukazky lebo tazko ti je poradit ked zo zadania nie je poriadne rozumiet co to ma robit..

a k tej 4:

Kód: Vybrať všetko

for i:=n downto 1 do
  begin
  for j:=1 to i do
    write('*');
  writeln;
  end;
este k tej 1 ako pisal konyk87 to je najjednoduchsi sposob ako to spravit ale moze tam nastat problem ak mas pole deklarovane pre napr. 10 prvkov a do pola zadas len 3 potom teoreticky by tych zvysnych 7 casti pola malo byt prazdnych....ale prakticky nie su. Takze tam moze nastat problem ako to zohladnit...lenze tazko radit ak nemas presne definovany vstup...
tuti
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 740
Registrovaný: 01 okt 2006, 19:23
Bydlisko: Prievidza

Príspevok od používateľa tuti »

k tomu prvemu:
asi sa to ma nacitavat po znakoch. osobne by som to riesil tak ze by som nacital znak(cislicu) a pred kazdym nacitanim by som vynasobil vyslednu premennu 10. potom by som nacitanu hodnotu pripocital k vyslednej.
Kedze pascal je u mna uz zabudnuty jazyk tak aspon nejaky pseudokod:

Kód: Vybrať všetko

integer vysledok=0;
for i =1 , i <= dlzka pola, i=i+1
  vysledok = 10*vysledok + pole[i];
dufam ze som tie indexi pola nepoplietol a v pascale je to od 1 do dlzky pola vratane
Hossa1881
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1071
Registrovaný: 31 júl 2005, 21:51
Bydlisko: Martin//Ostrava
Kontaktovať používateľa:

Príspevok od používateľa Hossa1881 »

ten treti priklad to malo byt vzdy o jedno posunute ako schody, zle to asi skopirovalo, nejak takto to ma vyzerat:
*****
s*****
ss*****
sss*****

dik za pomoc, ak vas este napadne tak napiste...wdaka vsetkym

tie "s" su tam preto lebo inak by mi tam nespravilo medzeru a vdycky to dalo pod seba
morfeusko
Medium Star
Medium Star
Príspevky: 395
Registrovaný: 19 mar 2008, 15:21
Bydlisko: Nitra
Kontaktovať používateľa:

Príspevok od používateľa morfeusko »

Kód: Vybrať všetko

for i:=1 to n do
 write('*');
for i:=1 to n-1 do  //n-1 preto lebo prvy riadok neni zahrnuty v tomto cykle
 begin
   for i:=1 to i do
     write(' ');
   for i:=1 to n do
     write('*');
 end;
no ak to mam mat pre n=5... 5 poschodi a tiez v riadku 5 * tak by to mohlo byt tak ako som napisal...
tuti
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 740
Registrovaný: 01 okt 2006, 19:23
Bydlisko: Prievidza

Príspevok od používateľa tuti »

drobny deteail
morfeusko napísal:

Kód: Vybrať všetko

for i:=1 to n-1 do  //n-1 preto lebo prvy riadok neni zahrnuty v tomto cykle
 begin
   for i:=1 to i do
by som vymenil za

Kód: Vybrať všetko

for j:=1 to n-1 do  //n-1 preto lebo prvy riadok neni zahrnuty v tomto cykle
 begin
   for i:=1 to j do
morfeusko
Medium Star
Medium Star
Príspevky: 395
Registrovaný: 19 mar 2008, 15:21
Bydlisko: Nitra
Kontaktovať používateľa:

Príspevok od používateľa morfeusko »

tuti// Jasne mas pravdu....tak bolo to robene narychlo :?
Hossa1881
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1071
Registrovaný: 31 júl 2005, 21:51
Bydlisko: Martin//Ostrava
Kontaktovať používateľa:

Príspevok od používateľa Hossa1881 »

diki moc, uz len ten druhy priklad a mam po probleme....
morfeusko
Medium Star
Medium Star
Príspevky: 395
Registrovaný: 19 mar 2008, 15:21
Bydlisko: Nitra
Kontaktovať používateľa:

Príspevok od používateľa morfeusko »

a vtom druhom to ako myslis stou uhloprieckou...aky znak tam mam byt a kde presne?
tuti
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 740
Registrovaný: 01 okt 2006, 19:23
Bydlisko: Prievidza

Príspevok od používateľa tuti »

asi takto

Kód: Vybrať všetko

for i:=1 to n do
begin
   for j:=1 to n do
   begin
     if i=j then
       write(' ');
     else
       write('*'); 
   end
end
Hossa1881
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1071
Registrovaný: 31 júl 2005, 21:51
Bydlisko: Martin//Ostrava
Kontaktovať používateľa:

Príspevok od používateľa Hossa1881 »

morfeusko napísal:a vtom druhom to ako myslis stou uhloprieckou...aky znak tam mam byt a kde presne?
medzera ma byt raz za prvou hviezdou, potom za druhou...

for tuti... skusil som vypise ich do riadka
tuti
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 740
Registrovaný: 01 okt 2006, 19:23
Bydlisko: Prievidza

Príspevok od používateľa tuti »

Hossa1881 napísal:for tuti... skusil som vypise ich do riadka
tak medzi tie dva endy daj writeln; ;) takto sa velmi programovat nenaucis
Hossa1881
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1071
Registrovaný: 31 júl 2005, 21:51
Bydlisko: Martin//Ostrava
Kontaktovať používateľa:

Príspevok od používateľa Hossa1881 »

tuti napísal:tak medzi tie dva endy daj writeln; ;) takto sa velmi programovat nenaucis
s tym writelnom ma to napadlo, uz to mam tak aby to robilo ako v zadani, dik za pomoc:
begin
clrscr;
writeln('zadaj vysku');
readln(n);
for i:=1 to n-1 do
write('*');
writeln;
for i:=2 to n do begin
for j:=1 to n do begin
if i=j then write(' ' )
else write('*');
end;
writeln;
end;
readln;
end.
Napísať odpoveď