Zadanie:
ten sam system parkingowy, który wyposażyłeś kilka lekcji wcześniej w funkcję zliczającą wjeżdżające i wyjeżdżające samochody oraz ilość wolnych miejsc, posiada zabezpieczenie na wypadek przekłamań we wskazaniach fotokomórek. Na podstawie dalmierzy zamontowanych nad każdym miejscem parkingowym system sprawdza czy na danym miejscu jest zaparkowany samochód.
Dalmierze zainstalowane są pod sufitem parkingu i mierzą odległość do najbliższej przeszkody pionowo w dół. Aby odczytać dane z dalmierzy należy użyć zawartej w API systemu funkcji int get_range(int floor, int place), która zwraca odczyt odległości do nabliższej przeszkody. Parametr floor jest numerem piętra, natomiast paramter place jest numerem miejsca parkingowego na danym piętrze. Parking jest trzypoziomowy. Na pierwszym i na drugim piętrze znajduje się po 125 miejsc parkingowych, na trzecim piętrze znajduje się 80 miejsc parkingowych. Miejsca są liczone od numeru 1.
Odległość od dalmierza do podłogi wynosi 280 cm, przy czym producent podaje, że czujnik działa z tolerancją 10 cm (czyli jego wskazania mogą różnić się do 10 cm od stanu faktycznego).
Uzupełnij funkcję count_free w taki sposób, aby obliczyła ilość wolnych miejsc parkingowych na podstawie wskazań wszystkich dalmierzy i zwróciła tę wartość.
Moj kod:
#include "parking.h"
int count_free()
{
int x = 1,y = 1,n = 0;
if(x == 1 || x == 2)
{
if(y <= 125)
{
if(get_range(x,y) < 270)
{
n++;
y++;
count_free();
}
}
else
x++;
count_free();
}
else if(x == 3)
{
if(y <= 80)
{
if(get_range(x,y) < 270)
{
n++;
y++;
count_free();
}
}
else
return n;
}
return n;
}
plik parking.h:
#ifndef PARKING_API_H
#define PARKING_API_H
// get_range: Funkcja zwraca odległość w [cm] między dalmierzem a przeszkodą
// Argumenty:
// floor: numer piętra
// place: numer miejsca parkingowego
// return:
// int: zwraca ilość cm od przeszkody
// error:
// w przypadku błędu pomiaru funkcja zwraca wartość -1
int get_range( int floor, int place );
#endif // PARKING_API_H
Problem:
po skompilowaniu mam błąd "Nieprawidłowe zakończenie programu - kod = 255"
Proszę o sugestie jak zrobić to zadanie. Nie skorzystałem z iteracji for, ponieważ nie wiem jak.
Podpowiedz z zadania:
Wartość, którą zwraca funkcja get_range(x, y) świadczy o tym, czy na piętrze x na miejscu parkingowym o numerze y zaparkowany jest samochód. Jeżeli wartość tej funkcji jest mniejsza niż 270, oznacza to, że miejsce jest zajęte. Skorzystaj z licznika zainicjowanego w pętli for w wywołaniu funkcji get_range w instrukcji sprawdzającej status miejsc.