programowanie
pascal:
Witam moze ktos zna sie na pascalu i powie dlaczego ten programik ponizej nie działa
prawidłowo tzn kompiluje sie bez błędów ale nie wyswietla minimum tylko konczy działanie po
podaniu liczb:
program minimum;
var
k,a,min:integer;
begin
writeln('Podaj ile chcesz podac liczb podaj conajmniej jedna liczbe');
readln(k);
min:=a;
while k>1 do
begin
write('Wprowadz liczbe');
readln(a);
k:=k−1
end;
if a < min then
min:=a;
begin
write('Najmniejsza z podanych liczb to', min);
end;
end.
11 mar 17:39
Trivial:
Pierwsze co rzuca się w oczy to to, że min ma losową wartość (chyba że Pascal domyślnie nadaje
jakieś wartości niezainicjowanym zmiennym na stosie). Drugi problem to nieodpowiednio
sparowane znaczniki begin−end w pętli while. Jako że nie znam w ogóle Pascala przedstawiam
działający analog w języku C:
#include <stdio.h>
int main(void) {
int k, a, min;
puts("Podaj ile chcesz podac liczb podaj conajmniej jedna liczbe:");
scanf("%d", &k);
puts("Wprowadz liczbe:");
scanf("%d", &min);
while (k>1) {
puts("Wprowadz liczbe:");
scanf("%d", &a);
k = k−1;
if (a < min)
min = a;
}
printf("Najmniejsza z podanych liczb to %d!\n", min);
return 0;
}
11 mar 21:41
pascal:
Ok dzięki popracuje z tym zaraz
11 mar 21:59
pascal:
A jeśli mógłbym mieć pytanie jeszcze bo mam tez do napisania program który przelicza liczbe
dziesiętną na system dwójkowy myślałem tu nad zastosowaniem tablicy tzn tablica byłaby po to
zeby zapisac do niej reszty z dzielenia liczby przez 2 czyli 0 albo 1 i pytanie jest takie jak
to by mozna było zrealizowac i w jaki sposob zapełniało by mi tę tablice (zeby pozniej
wyswietlic na ekran liczbe dwojkową prawidłowo)
11 mar 22:06
Trivial: Można to zrobić bez tablicy − po prostu wyświetlać kolejne liczby z dzielenia modulo.
11 mar 22:10
pascal:
aha faktycznie ale zeby w odwrotnej kolejnosci to trzeba uzyc odpowiedniej pętelki no tak
dzięki po raz drugi
11 mar 22:14
Trivial: spoko.
11 mar 22:26