Skocz do zawartości

[Pascal] Zmienne


Moe

Rekomendowane odpowiedzi

Witam, chciałbym utworzyć taki program w pascalu, piszę tak jak bym zrobił w GML, częściowo w pascalu:

 

// Zmienna
plik=0 // Ustalamy zmienną na 0
begin
delay(1000) //Czekamy sekundę 
writeln('Witaj! za sekundę zmienię zmienną plik na 1!');
delay(1000);
plik=1 //zmieniamy zmienną na 1
if plik=1 then writeln('Powodzenie!');
End.

W skrócie:

1. Ustalamy zmienną plik na 0.

2. Czekamy 1s.

3. Wyświetlamy wiadomość.

4. Czekamy 1s.

5. Zmieniamy plik na 1.

6. Gdy plik = 1 to wyświetl wiadomość.

7. Koniec.

 

Jak takie coś zrobić? Jakie błędy robię?

 

Pozdrawiam,

Moe

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności
program plik;
uses Crt;
var plik : Byte;


begin
plik:=0;
clrscr  //czyscimy ekran konsoli
delay(1000); //nie jestem pewien czy jest taka komenda
writeln('Witaj! za sekundę zmienię zmienną plik na 1!');
delay(1000);
plik:=1;
if plik=1 then writeln('Powodzenie!');
end.

Odnośnik do komentarza
Udostępnij na innych stronach

uses CRT;
// Zmienna
var plik: integer; // Ustalamy zmienną na 0
begin
plik:= 0;
delay(1000); //Czekamy sekundę 
writeln('Witaj! za sekundę zmienię zmienną plik na 1!');
delay(1000);
plik:=1 //zmieniamy zmienną na 1
if plik=1 then 
begin
writeln('Powodzenie!');
end;
while not keypressed do;
End.

ten ostatni while jest niekonieczny, zatrzymuje program do czasu naciśnięcia klawisza.

 

jakie błędy:

-najpierw trzeba inicjować zmienną i jej typ

-wartość zmiennej przypisuje się :=

-po if też jest begin i end z tym że end ze średnikiem.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności
uses CRT;
// Zmienna
var plik: integer; // Ustalamy zmienną na 0
begin
plik:= 0;
delay(1000); //Czekamy sekundę 
writeln('Witaj! za sekundę zmienię zmienną plik na 1!');
delay(1000);
plik:=1 //zmieniamy zmienną na 1
if plik=1 then 
begin
writeln('Powodzenie!');
end;
while not keypressed do;
End.

ten ostatni while jest niekonieczny, zatrzymuje program do czasu naciśnięcia klawisza.

 

jakie błędy:

-najpierw trzeba inicjować zmienną i jej typ

-wartość zmiennej przypisuje się :=

-po if też jest begin i end z tym że end ze średnikiem.

 

nie osmieszaj sie. Do jednej komendy nie trzeba pisac begina i edna -_-

Poza tym na poczatku piszemy program nazwa;

do tak malej wartosci nie trzeba integera

 

while not keypressed do;

End.

 

lol?

 

nie lepiej readln; end. ?

Odnośnik do komentarza
Udostępnij na innych stronach

Można także bardziej rozbudowanie:

USES CRT;

VAR
plik,na:integer;

begin
plik:=0;
na:=0;
delay(1000);
repeat
gotoxy(1,1);
writeln('Witaj! za sekundę zmienię zmienną plik na ', plik + 1 ,'!');
delay(1000);
plik +=1;
if plik=1 THEN writeln('Powodzenie!');
until na = 1;
end.

Teraz będzie co sekundę dawało w nieskończoność ale jak osiągnie 1 napisze Powodzenie!.

Można wstawić też po

if plik=1 THEN writlen('Powodzenie!');

if plik=MAX THEN na:=1;

 

W MAX możesz wpisz jakąś liczbę na której ma przerwać.

 

 

 

nie lepiej readln; end. ?

Nie specjalnie to polecam, bo będziesz mógł wypisywac pierdoły jakieś. Lepiej Readkey; .

 

 

EDIT:

I pozmieniaj wszystkie ę na e, no chyba, że dorobisz znaki polskie w pascalu. Ja wiem jak to się robi. Z miłą chęcią zrobię Ci bibliotekę ze znakami polskimi.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności
Można także bardziej rozbudowanie:

USES CRT;

VAR
plik,na:integer;

begin
plik:=0;
na:=0;
delay(1000);
repeat
gotoxy(1,1);
writeln('Witaj! za sekundę zmienię zmienną plik na ', plik + 1 ,'!');
delay(1000);
if plik=1 THEN writlen('Powodzenie!');
until na = 1;
end.

Teraz będzie co sekundę dawało w nieskończoność ale jak osiągnie 1 napisze Powodzenie!.

Można wstawić też po

if plik=1 THEN writlen('Powodzenie!');

if plik=MAX THEN na:=1;

 

W MAX możesz wpisz jakąś liczbę na której ma przerwać.

 

Po co gotoxy(1,1) , skoro automatycznie na poczatku sie tam ustawia?

Odnośnik do komentarza
Udostępnij na innych stronach

nie osmieszaj sie. Do jednej komendy nie trzeba pisac begina i edna -_-

Poza tym na poczatku piszemy program nazwa;

do tak malej wartosci nie trzeba integera

 

while not keypressed do;

End.

 

lol?

 

nie lepiej readln; end. ?

przyzwyczajenie mistrzu. A readln nie, bo readln reaguje tylko na enter a keypressed na każdy klawisz. Nie trzeba pisać program nazwa, skompilowany ma nazwe pliku .pas . Integer a byte ma znaczenie przy megawypaśnym programie a nie przy paru linijkach na krzyż. Sam sie nie ośmieszaj takimi postami, każdy pisze tak jak mu wygodniej.

Odnośnik do komentarza
Udostępnij na innych stronach

@ANty to spróbuj bez gotoxy.

Daję linka do biblioteki z polskimi znakami aby poprawnie wyświetlało się np. Witaj! za sekundę zmienię zmienną plik na 1!

Oto link:

https://gmclan.org/up6201_3_PLCHR.html

 

 

W readme txt wszystko jest wytłumaczone. 'Wi',S_PE,'c wszystko jasne' :P (tak by było z mojej biblioteki).

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności
przyzwyczajenie mistrzu. A readln nie, bo readln reaguje tylko na enter a keypressed na każdy klawisz. Nie trzeba pisać program nazwa, skompilowany ma nazwe pliku .pas . Integer a byte ma znaczenie przy megawypaśnym programie a nie przy paru linijkach na krzyż. Sam sie nie ośmieszaj takimi postami, każdy pisze tak jak mu wygodniej.

wygodniej=/=lepiej

po co innym pokazywac gorsze sposoby?

Lepiej lapac dobre nawyki przy malych programach niz pozniej sie meczyc

 

 

 

@Ferrari a co nie zadziala? xd

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności
Anty, a co w moim przykładzie jest gorszego? Że zajmuje kilka bajtów więcej? Działanie jest takie samo.

Beginy (po co wiecej pisac?), integery do tak malej zmiennej, ja bym w ogole uzyl boolean (pamiec) i reszta co wymienilem. Przy wiekszych projektach to ma znaczenie

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...