Skocz do zawartości
Moe

[Pascal] Zmienne

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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
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.

Udostępnij tego posta


Odnośnik do posta
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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Dziękuję!

Udostępnij tego posta


Odnośnik do posta
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.

 

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. ?

Udostępnij tego posta


Odnośnik do posta
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.

Udostępnij tego posta


Odnośnik do posta
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);
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?

Udostępnij tego posta


Odnośnik do posta
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.

Udostępnij tego posta


Odnośnik do posta
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).

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

@ANtY A ja coś mówiłem, że nie zadziała? A spróbowałeś ten program bez gotoxy, jeśłi o to chodzi? Wyświetla się wszystko od nowej linijki, a z gotoxy wszystko jest czytelne.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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

Tylko 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ę tutaj.

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×