Kezdőoldal » Számítástechnika » Programozás » Free Pascal csillag kiíratási...

Free Pascal csillag kiíratási probléma?!?! (Sor, oszlop)

Figyelt kérdés

Az a feladat, hogy a beolvasott számokat (pl.: 4 oszlop, 7 sor) és a csillagokat azokra a koordinátákra írja ki, de úgy, hogy a sorokat és oszlopokat töltse ki.

Én megírtam a programot, de csak az adott koordinátára egy csillagot ír ki és az előtte lévő helyet nem tölti ki.

Lehet, hogy picit értelmetlen, de megpróbáltam elmagyarázni.


Itt a program:


PROGRAM oszlopsor;

uses crt;

var i,j,oszlop,sor:integer;

BEGIN

writeln('Melyik oszlopba írjam?';

readln(oszlop);

writeln('Melyik sorba írjam?');

readln(sor);

clrscr;

for i:=1 to oszlop do

for i:=1 to sor do

begin

gotoxy(oszlop,sor);

writeln('*');

end;

readln;

End.


Nem látok benne semmi hibát.



2013. febr. 12. 09:59
 1/9 anonim ***** válasza:
100%

1. Minkét ciklusban i-t futtatod.


2. gotoxy(oszlop,sor)?? Miért, ha i és j a ciklusváltozód?

2013. febr. 12. 10:06
Hasznos számodra ez a válasz?
 2/9 A kérdező kommentje:

Hoppsz, igazad van. Még csak most nézem!

Köszi!

2013. febr. 12. 10:08
 3/9 anonim ***** válasza:

Nos igen mert a programot egy ciklust használ, és csupán egy koordinátára ír javítom a híbát:

program oszlopsor;

uses crt;

var i,j,oszlop,sor:byte;

Begin

Wirteln('Melyik sorba írjam');

readln(sor);

Writeln('melyik oszlopba írjam');

readln(oszlop);

ClrScr;

for i:=1 to oszlop do begin

for j:=1 to oszlop do begin

Gotoxy(i,j);

Writeln('*');

end;

end;

readln;

end.


Ez kitölti addig a pontig ameddig megadtad. Az integer helyet word adattipust használtam( max 255 sorra működik de az elég is.)

2013. febr. 12. 10:08
Hasznos számodra ez a válasz?
 4/9 anonim ***** válasza:

program oszlopsor;

uses crt;

var i, j, oszlop, sor: byte;

Begin

Clrscr;

Wirteln('Melyik sorig írjam');

readln(sor);

Writeln('melyik oszlopig írjam');

readln(oszlop);

ClrScr;

for i:=1 to sor do begin

for j:=1 to oszlop do begin

Write('*');

end;

Writeln;

end;

readln;

end.


GotoXY nélkül szerintem szebb:)

2013. febr. 12. 10:16
Hasznos számodra ez a válasz?
 5/9 anonim ***** válasza:

Jogos, hiszen úgyis egyesével haladunk előre mind sorban mind oszlopban:)

De az GOTOXY általánosabb, mondjuk ha egy előre feltöltött tömben megadnánk, hogy ide meg ide írjon egy csillagot, akkor lenne értelme a használatának. De nem ez volt a feladat:)

2013. febr. 12. 10:25
Hasznos számodra ez a válasz?
 6/9 A kérdező kommentje:

Igazából nemrég kezdtem el foglalkozni ezzel, de elég ügyetlen vagyok. Gyorsan tanulok és nagyjából értem is, de néha elakadok.

Most van egy elég hülye feladat.

Kiíratjuk 1-től 50-ig a számokat, majd 10 sorral arrébb kiírjuk a számoknak a kétszeresét.

Valaki segítene?

Nagyon megköszönném!

Elnézést, hogy ilyen szerencsétlen vagyok ,de még nagyon kezdő vagyok és kellene a jó pont.

2013. febr. 12. 10:50
 7/9 anonim ***** válasza:

Oké, de milyen irányba írjuk ki a 100 számot?

program kiiír;

uses crt;

var i, j, sor:integer;

BEGIN

for i:=1 to 100 do begin

Write(i);

sor:=i;


Gotoxy(sor,11);

Writeln(2*i);

end;

readln;

end.

Ez egy egyszerűsített megoldás a bonyolultabb az lenne, hogy az utolsó karaktertől számított 10 oszloppal írná ki.


( bocs de most sor vagy oszlop kell? mert ez nem egyértelmű számomra)

2013. febr. 12. 10:58
Hasznos számodra ez a válasz?
 8/9 A kérdező kommentje:
Oszlop!!
2013. febr. 12. 11:02
 9/9 anonim válasza:

Üdv!


Nos, még mindig nem nagyon vágom mi a feladat, de mind a kétféle értelmezésem szerint megcsinálom neked...


Egyik verzió (itt kiírom a számokat egymás alá 1-től 50-ig, majd 10 sorral lejjebb megint egymás alá a kétszeresüket):


program oszlop;

uses crt;

var i: integer;


begin

clrscr;

for i:= 1 to 50 do

writeln(i);


for i:= 1 to 50 do

begin

gotoXY(1,60);writeln(2*i);

end;

repeat until keypressed;

end.


Másik verzió (amit sztem neked kell csinálni, hogy kiírom a számokat 50-ig egymás alá, majd melléjük a kétszeresüket is):


program oszlop2;

uses crt;

var i : integer;


begin

clrscr;

for i:= 1 to 50 do

begin

gotoXY(1,i);write(i);

gotoXY(10,i);write(i*2);

end;

end.



Ha erre gondoltál remélem segíthettem :) Ja, és ne szabadkozz, mindenki volt kezdő, részemről szívesen segítek, nem megterhelő ilyen progikat írni :)) A továbbiakban azért, ha javasolhatom saját magad is foglalkozz a feladatokkal, különben nincs sok értelme az egésznek...

2013. febr. 13. 17:04
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!