Pomoc w dokończeniu zadania.

0

Witam:)
Mam problem z taki o to zadaniem: Poproś użytkownika o podanie jednej z 3 liczb(1,2,3), następnie w zależności od jego wyboru wykonaj polecenia. Jeśli użytkownik wybierze liczbę 1 poproś go o podanie swojego imienia, nazwiska oraz numeru telefonu. Następnie wyświetl te dane w podsumowaniu zbiorczym. Jeśli użytkownik wybierze liczbę 2 poproś go aby zgadł jedną z losowo wybranych przez komputer liczb z zakresu od 0 do 9. Jeśli użytkownik zgadnie poproś go o podanie imienia, nazwiska i adresu w celu przesłania mu nagrody, jeśli zaś nie zgadnie zachęć go do ponownego spróbowania. Jeśli użytkownik wybierze liczbę 3 poproś go aby podał Ci swoje imię i rok urodzenia, jeśli użytkownik będzie pełnoletni wyświetl mu kod dostępu do programu, jeśli zaś będzie nie pełnoletni wyświetl na ekranie odmowę dostępu.

Stanąłem w miejscu i nie wiem co dalej. Byłbym wdzięczny gdyby ktoś mną pokierował i wskazał błędy jak i prawidłowe zakończenie.

Z góry dziękuje:)

 Program Praca;
var
a,x,telefon,   ;integer;
imie,nazwisko,  ;string;
BEGIN
Randomize;
writeln('Podaj liczbe od 1 do 3');
readln(x);
if x=1 then begin
writeln('Podaj imie');
readln(imie);
writeln('Podaj nazwisko')
readln(nazwisko);
wrtieln('Podaj numer telefonu');
readln(telefon)
writeln('Hej', imie,'', nazwisko,' telefon');
end;
if x=2 then begin
a:=random(10);
writeln('Zgadnij liczbe')'
readln(b);
if a=b the begin
end;
if x=3 then begin
writeln('Podaj imie');
readln(imie);
writeln('Podaj rok');
readln(rok);
y:= 2012 - rok;
if y>= 18 then
writeln('Kod dostepu');
if y<=18 then
writeln('Odmowa');
end;
end. 
0

A dokładnie z czym masz problem? Czemu pod koniec, po funkcji wstawiłeś ', tak sobie to zakomentowałeś czy jak xD?

0

W tym problem, że się z lekka pogubiłem i nie wiem co dalej:P Może wydawać się to śmieszne, lecz we wtorek mam sprawdzian iw wolałbym to umieć;]
Byłby ktoś w stanie poprawić to? Naprawdę tego potrzebuje:)

0

Po pierwsze, jak chcesz żeby ktoś w ogóle spojrzał na kod, musisz go sformatować. Po drugie, opisz czego nie umiesz/co chcesz zrobić/jakie ew. błędy masz.

0

Sformatować kod, tzn.? Wracając do tematu, nie wiem co dalej mam zrobić. W kompilatorze wyskakuje mi błąd w 3 linijce... A tak w ogóle robię to w Hugo 2.2.1 to też ma znaczenie?

1

Co to jest? Zadzwoń do wróżbity Macieja: http://wrozbita-maciej.pl/kontakt.php.

Na poważnie: http://wrozbita-maciej.pl/kontakt.php http://pl.wikipedia.org/wiki/Formatowanie_kodu

a,x,telefon,   ;integer;
imie,nazwisko,  ;string;

Skąd żyś to wziął?

Zmienne deklaruje się tak...

a, x, telefon   : integer;
imie, nazwisko  : string;

...jak już.

0
 Program Praca;
var
a,x,telefon      : integer;
imie,nazwisko  : string; 

Dalej nie dałem rady czytać, formatowanie!

0

Poprawiłem, dzięki!:) Teraz linijka 21 oraz 22;/

Program Praca;
var
a, x, telefon   : integer;
imie, nazwisko  : string;
BEGIN
Randomize;
writeln('Podaj liczbe od 1 do 3');
readln(x);
if x=1 then begin
writeln('Podaj imie');
readln(imie);
writeln('Podaj nazwisko');
readln(nazwisko);
writeln('Podaj numer telefonu');
readln(telefon);
writeln('Hej', imie,'', nazwisko,' telefon');
end;
if x=2 then begin
a:=random(10);
writeln('Zgadnij liczbe');
readln(b);
if a=b the begin
end;
if x=3 then begin
writeln('Podaj imie');
readln(imie);
writeln('Podaj rok');
readln(rok);
y:= 2012 - rok;
if y>= 18 then
writeln('Kod dostepu');
if y<=18 then
writeln('Odmowa');
end;
end.
0

Muszę zacząć zażywać magnez, bo zapewne zapomniałem napisać o formatowaniu kodu...

Program Praca;var a,x,telefon:integer;imie,nazwisko:string;BEGINRandomize;writeln('Podaj liczbe od 1 do 3');readln(x);if x=1 then beginwriteln('Podaj imie');readln(imie);writeln('Podaj nazwisko');readln(nazwisko);writeln('Podaj numer telefonu');readln(telefon);writeln('Hej', imie,'', nazwisko,' telefon');end;if x=2 then begina:=random(10);writeln('Zgadnij liczbe');readln(b);if a=b the beginend;if x=3 then beginwriteln('Podaj imie');readln(imie);writeln('Podaj rok');readln(rok);y:=2012-rok;if y>=18 thenwriteln('Kod dostepu');if y<=18 thenwriteln('Odmowa');end;end.

Tak wygląda lepiej, czyż nie? W której linijce mówiłeś jest błąd?

0

21, 22

0

W pierwszym poście wspomniałem o ' na końcu linijki, który jest zbędny, a jest zamiast średnika. writeln('Zgadnij liczbe')' <- tutaj. Wstaw za niego średnik.

Ostatni raz ci pomagam, bo nie trzymasz się zasad forum, a co gorsze zasad dobrego programisty jakiegokolwiek programisty...

0

OKey, dzięki chociaż za tyle:) DoZobaczenia:D

0

Jeżeli chodzi o formatowanie kodu, mam dla Pana @Biedny bardzo dobrą lekturę: Object Pascal Style Guide; Szkoda tylko, że po angielsku, bo pewnie narodzi się wiele pytań odnośnie jego;

Panie @Biedny, który kod jest bardziej czytelny? Twój:

Program Praca;
var
a, x, telefon   : integer;
imie, nazwisko  : string;
BEGIN
Randomize;
writeln('Podaj liczbe od 1 do 3');
readln(x);
if x=1 then begin
writeln('Podaj imie');
readln(imie);
writeln('Podaj nazwisko');
readln(nazwisko);
writeln('Podaj numer telefonu');
readln(telefon);
writeln('Hej', imie,'', nazwisko,' telefon');
end;
if x=2 then begin
a:=random(10);
writeln('Zgadnij liczbe');
readln(b);
if a=b the begin
end;
if x=3 then begin
writeln('Podaj imie');
readln(imie);
writeln('Podaj rok');
readln(rok);
y:= 2012 - rok;
if y>= 18 then
writeln('Kod dostepu');
if y<=18 then
writeln('Odmowa');
end;
end.

czy np. ten:

Program Praca;
var
  A, X, Telefon: Integer;
  Imie, Nazwisko: String;
begin
  Randomize;
  WriteLn('Podaj liczbe od 1 do 3');
  ReadLn(X);

  if X = 1 then
    begin
      WriteLn('Podaj imie');
      ReadLn(Imie);
      WriteLn('Podaj nazwisko');
      ReadLn(Nazwisko);
      WriteLn('Podaj numer telefonu');
      ReadLn(Telefon);
      WriteLn('Hej', Imie,'', Nazwisko,' Telefon');
    end;

  if X = 2 then
    begin
      A := Random(10);
      WriteLn('Zgadnij liczbe');
      ReadLn(B);

      if A = B the begin
    end;

  if X = 3 then
    begin
      WriteLn('Podaj imie');
      ReadLn(Imie);
      WriteLn('Podaj rok');
      ReadLn(Rok);
      Y := 2012 - Rok;

      if Y >= 18 then
        WriteLn('Kod dostepu');

      if Y <= 18 then
        WriteLn('Odmowa');
    end;
end.

Który jest bardziej czytelny? Dzięki wprowadzeniu zamętu znalezienie błędu w Twoim kodzie graniczy z cudem; Nic w nim nie wiadomo, wygląda jakby się komputer zawiesił i wyświetlał zawartość pamięci RAM...

Poniżej Twojego kodu masz w miarę sformatowany, w którym gołym okiem widać błędy, jakie narobiłeś; Przyjrzyj się uważnie, a znajdziesz; Zawsze możesz uruchomić kompilacje, po czym kompilator zasygnalizyje błąd i go opisze; Wystarczy znać podstawy angielskiego, by zrozumieć opis błędu; Jak go nie zrozumiesz, masz Internet, w którym znajdziesz wszystko;

0

Skoro wiesz w których linijkach masz błąd, to powinieneś bez trudu je poprawić. Są widoczne jak psia kupa na białych płytkach. Aż razi :P. Przyjrzyj się i zastanów się. Tu na forum pomaga się rozwiązywać problemy lub ew. wskazuje błędy, których autor nie zauważa. Jednakże forum nie jest od nauczania podstaw programowania. Od tego są nauczyciele. Szkoda, że nie wykorzystałeś czasu na lekcjach/wykładach.

0
Sarrus napisał(a)

Skoro wiesz w których linijkach masz błąd, to powinieneś bez trudu je poprawić.

Do kogo to? Myślę, że do autora tematu; Ja wiem gdzie są błędy i wiem jak je naprawić, ale celowo tego nie zrobiłem, żeby autor wątku mógł wykazać trochę chęci w napisaniu tego programu;

1 użytkowników online, w tym zalogowanych: 0, gości: 1