Mehisto [ Pretorianin ]
Turbo Pascal - prosze o pomoc
Tresc zadania
Zadanie
Jeśli a i b są liczbami nieujemnymi, to mniejszą z nich można otrzymać korzystając z wzoru
Napisz program, który wczyta liczbe całkowitą z zakresu 1000..9999 i wyznaczy najmniejszą z cyfr, której użyto do zapisu liczby.
Wsk.: |x| = Abs(x), nie wolno korzystać z instrukcji warunkowej
Wejście
Pierwszy i jedyny wiersz wejścia zakończony znakiem nowej linii zawiera liczbę całkowitą z zakresu 1000..9999.
Wyjście
Pierwszy i jedyny wiersz wyjścia zakończony znakiem nowej linii powinien zawierać jedną liczbę całkowitą równą najmiejszej cyfrze podanej liczby.
Przykład
Dla pliku wejściowego:
3468
poprawną odpowiedzią jest plik wynikowy:
3
Wykonanie
program zad110;
var
a,x,y,z,q,r:1000..9999;
l,p,g:real;
begin
readln(a);
x:=a div 1000;
r:=a mod 1000;
y:=r div 100;
r:=r mod 100;
z:=r div 10;
r:=r mod 10;
q:=r div 1;
l:=(x+y-(Abs(x-y)))/2;
p:=(z+q-(Abs(z-q)))/2;
g:=(l+p-(Abs(l-p)))/2;
writeln(g:1:0);
end.
Otoz wyniki wychodza prawidlowe,ale gdy chce wyslac program do sprawdzenia wyskakuje cos takiego
Niedozwolone słowo "REAL".
Plik źródłowy nie może zawierać pewnych słów i wyrażeń.
Lista niedozwolonych słów zależy od konkretnego zadania, np. pisząc prosty program z instrukcją warunkową
raczej nie należy korzystać z modułów, tablic, funkcji i procedur.
Widocznie trzeba zrobic to zadanie innym sposobem, tylko jakim?
Prosze was o pomoc
kastore [ Troll Slayer ]
Nie za bardzo rozumiem co to znaczy "wyslac do sprawdzenia" , ale jezeli rozumuje dobrze, to "sprawdzenie" polega na autmatycznej kontroli wykonania zadania. W takim ukladzie widac z tego jasno ze nie mozesz korzystac z liczb rzeczywistych , deklarowanych poprzez typ Real.
Rozwiazanie jest takie. Zamiast Real uzyj Integer. Tyle ze wtedy bedziesz otrzymywal tylko i wylacznie wyniki calkowite. Aha i wtedy zamiast
/2 musisz uzyc div 2, a do tego wystarczy WriteLn(g), bez ograniczeń