ďťż

Ładny brzuch

Oto moj program:
Program Zadanie; Uses Crt; Var x:real; c:char; Begin ClrScr; WriteLn('Podaj Liczbe : '); ReadLn(x); WriteLn('Jezeli chcesz, aby liczba byla wyswietlona w formacie dlugim wcisnij "d"'); WriteLn('Jezeli chcesz, aby liczba byla podana w formacie min 8 cyfrach z co najwyzej 4 miejscami po przecinku wcisnij "k"'); ReadLn(c); if c='d' then writeln ( x:0:0); if c='k' then WriteLn ( x:1:4); Else WriteLn('Nie podales zadnej cyfry!'); end.
Chodzi oto, ze gdy wcisne d wyswietla mi sie '3' czyli dobrze tak jak ma byc ale tez 'Nie podales zadnej liczby!' .. Nie czaje dlaczego?
Moze to co mam w writeln ("d" "k")? Moze one nie musza byc w "" ? Wlasnie tego nie wiem czy readln© czyta te liczby ktore sa we writeln w znacznikach "" czy nie musza byc w nich zapisane?

Aha BTW jak napisac ten program..? :

Zad.A. Napisz program, który pobiera od użytkownika współczynniki a, b, c równania ax2 + bx + c = 0, a następnie wylicza pierwiastki równania kwadratowego (zakładamy, że użytkownik nie poda dla a wartości 0) i wyświetla ich wartości na ekranie (z odpowiednim komentarzem). Wsk. sqrt(x) - funkcja zwracająca wartość pierwiastka kwadratowego z x sqr(x) - funkcja obliczająca kwadrat x (to znaczy x2) ... pierwiastek_delty := sqrt(sqr(b) - 4*a*c); ...
Użytkownik B-L-I-z-Z-A-R-D edytował ten post 25 październik 2006, 18:25


Jesli chodzi o 1 problem to zamiast Readln, uzyj takiej instrukcji:
c:=ReadKey;

A co do drugiego to napisz czego nie wiesz, bo przeciez to nie jest jakis trudny program, przy ktorym trzeba by bylo cos kombinowac. (no chyba ze nie znasz wzorow na pierwiastki rownania kwadratowego).
Użytkownik palestynczyk1 edytował ten post 25 październik 2006, 18:33
W pierwszym zdaje się, że to dlatego, że else odnosi się tylko do ostatniego if. Drugie if musisz zastąpić kompinacją else if:

if c='d' then writeln ( x:0:0); else if c='k' then WriteLn ( x:1:4); Else WriteLn('Nie podales zadnej cyfry!');

A czy przed "else" nie powinno nie być średnika (";")?



Lampak racja else po 1 if :)
Dzieki
A co powiecie na ten programik?:

ZADANIE: 1. Napisać program, ktory sprawdza, czy liczba 'n' podana z klawiatury jest kwadratem innej liczby naturalnej, tzn, czy istnieje taka liczba naturalna 'k', że n= k2

probowalem tak (oczywiscie ma byc z uzycia petli For:
ogram Forszkola; Uses Crt; Var n,k : real; Begin ClrScr; Writeln('Podaj liczbe n: '); Readln(n); For k:=1 to n do sqr(n) =k; writeln(k); readln; end.


...
Źle zrozumiałeś zadanie. Chodzi o to, żeby sprawdzić czy pierwiastek z liczby n jest liczbą naturalną.

Kodzik:
var i:integer; n:integer; read(n); for i=0 to n do if sqrt(n)=i then wrtieln("jest taka") else wrtieln("to nie ta liczba"); Dawno nie programowałem w pascalu, prosze o wyrozumiałość w błędach w kodzie :).

Ok, mam jeszcze problem z dwoma prostymi programami otoz:

1 program:
A. Napisz program drukujący na ekranie gwiazdki wg wzoru: * ** *** **** *****

To co probowalem zrobic:
{ A. Napisz program drukujący na ekranie gwiazdki wg wzoru: * ** *** **** ***** Wykorzystać pętlę "for". B. Powyżej jest 5 rzędów gwiazdek. Zmodyfikuj program aby to użytkownik podawał "z klawiatury" liczbę rzędów } Program gwiazdki; Uses Crt; Var i, ilosc : integer; Begin ClrScr; ilosc:=1; For i:=1 to 5 do Writeln('*'); ilosc:=ilosc+1; WriteLn('*'); End.

2 program (proba zrobienia):
{ ZADANIE: 1. napisac program, ktory wczytuje liczbe 'n' i wylicza sume liczb od 1 do n, tzn. 1+2+3+...+n } Program suma34; Uses Crt; Var n,i, suma : integer; Begin ClrScr; WriteLn('Podaj liczbe n: '); ReadLn(n); Suma:=0; For i:=1 to n do Begin Inc(Suma); Suma:=Suma+1; WriteLn('Suma ', n ,'wynosi',Suma); End; End.
Użytkownik B-L-I-z-Z-A-R-D edytował ten post 25 październik 2006, 21:31
Coś dobrze kombinujesz ale nie do końca. Proszę... w ramach odprężenia od dyskretnej machnąłem to wielkie dzieło programistyczne :Pvar ilosc, rzad, i, j: byte; begin readln(rzad); ilosc:=1; for i:=1 to rzad do begin for j:=1 to ilosc do write('*'); inc(ilosc); { inc(ilosc) <=> ilosc:=ilosc+1 } writeln; end; readln; end.

Edit...
@Up... nie przesadzaj dodając kolejne zadania, są tak proste, że już bardziej się nie da.
Użytkownik reVis edytował ten post 25 październik 2006, 21:57
Co do sumy 1+2+...+n. Suma = (1+n)*n/2 :)

Cyrkiel lepiej zrobic Inc(Suma, i);
:)

Co nie tak robie w tych programach?
{ 1. zmodyfikowac poprzedni program tak, by dla danej liczby 'n' wyliczana byla suma kwadratow liczb od 1 do n, tzn. 12+22+32+...+n2 } Program suma334; Uses Crt; Var n,i, suma : integer; Begin ClrScr; WriteLn('Podaj liczbe n: '); ReadLn(n); Potega:=1; For i:=1 to n do Begin Inc(SQR(Suma),i); End; Write('Suma liczb od 1 do ',n,' wynosi:', Suma); End.

2 program:

{ ZADANIE: 1. Napisać program, ktory sprawdza, czy liczba 'n' podana z klawiatury jest kwadratem innej liczby naturalnej, tzn, czy istnieje taka liczba naturalna 'k', że n= k2 } Program kwadrat1; Uses Crt; Var n, k, Liczba : LongInt; Begin ClrScr; WriteLn('Podaj liczbe n '); ReadLn(n); Liczba:=0; For k:=1 to n do Begin Inc(SQR(k)/n =0, k); End; WriteLn('Istnieje taka liczba, oto ona: ')
Użytkownik B-L-I-z-Z-A-R-D edytował ten post 26 październik 2006, 00:10
1 zad - nie baw sie makrem Inc, skoro nie wiesz jak dziala ; gdzie inicjalizacja zmiennej suma?
Begin ClrScr; WriteLn('Podaj liczbe n: '); ReadLn(n); suma:=0; For i:=1 to n do Begin Inc(suma,sqr(i)); End; Write('Suma kwadratow liczb od 1 do ',n,' wynosi:', suma); End.
co do sumy akurat to Cyrkiel ma racje - Twoje rozwiazanie wymaga uzycia petli co jest znacznie wolniejesze od (jak nie patrzec) prostego obliczenia..

2 zad - Ty wychodzisz z zalozenia, ze liczba istnieje, a nie zawsze musi tak byc (np n = 5 ?)
Begin ClrScr; WriteLn('Podaj liczbe n '); ReadLn(n); Liczba:=0; For k:=1 to n do Begin if sqr(k)=n then Liczba := k; End; if Liczba = 0 then writeln('Taka liczba nie istnieje') else WriteLn('Istnieje taka liczba, oto ona: ', Liczba); End.

aaaaaaaa co do gwiazdek - reVis zrobil jak najbardziej dobrze, ale tak prosciej:
var rzad, i, j: byte; begin readln(rzad); for i:=1 to rzad do begin for j:=1 to i do write('*'); writeln; end; readln; end.
PS. Pisze z pamieci - nie wiem czy kompilator przepusci..

Podsumowujac - radze Ci NAJPIERW narysowac sobie schemat (algorytm) i sprawdzic go (na kartce), a potem brac sie za programowanie
Użytkownik fernandez edytował ten post 26 październik 2006, 08:11
Dzieki wam :) za wszystko. Chyba zastosuje sie do wskazowki z kartka :D

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •