Post numer: #1Wysłany: 2010-10-27, 22:50 Proste zadanie z C++
Mam problem z takim zadaniem z C++.
Cytat:
Napisz program, który wyliczy, przez które ćwiartki układu współrzędnych przechodzi funkcja liniowa.
Wejście:
Podane są 2 liczby rzeczywiste a i b (odpowiednio).
Wyjście:
Należy wypisać numery ćwiartek w kolejności rosnącej (I - dodatnie wartości X i Y; II - ujemne X i dodatnie Y; III - ujemne X i ujemne Y; IV - dodatnie X i ujemne Y).
Przykład: Wejście:
1.0 -1.0
Wyjście:
I III IV
Na razie zrobiłem coś takiego
Cytat:
#include <cstdio>
int main()
{
double y, a, x, b;
scanf("%lf%lf", &a, &b);
if (x > 0 && y > 0)
printf ("I\n");
else if (x < 0 && y > 0)
printf ("II\n");
else if (x < 0 && y < 0)
printf ("III\n");
else if (x > 0 && y < 0)
printf ("IV\n");
else
{
y = a*x + b;
}
return 0
}
Właśnie mam problem z tym jak zrobić, aby program po sprawdzeniu warunku i w przypadku, gdy on będzie się zgadzał kontynuował dalej.
Prosił bym o jakieś nakierowanie mnie na poprawną odpowiedź, bo sam chciał bym dojść do ostatecznego rozwiązania.
Zacznijmy od tego, że w temacie piszesz o C++, a program jest pisany w C, więc nie wiem jak ma być on pisany.
w tych Twoich warunkach wystarczy pisać tylko if, bez else i wtedy program będzie kontynuował, ale to i tak nic nie zmieni, ponieważ program jest źle napisany.
Przeanalizuję teraz to co napisałeś w kodzie:
Na początku pobierasz wartości a i b, ok spoko, ale lepiej wyglądałoby jakbyś napisał coś w stylu:
printf ("Podaj wartość a\n");
scanf("%lf",a);
i analogicznie z b, ponieważ tak jest przejrzyście.
Po pobraniu wartości a i b nagle sprawdzasz czy x i y są dodatnie czy ujemne, tylko, że nie wyliczyłeś w ogóle wartości x i y, więc jest to bez sensu, ponieważ niezależnie od tego jakie dasz a i b będziesz miał ciągle ten sam wynik, a w elsie to w ogóle nie rozumiem czemu chcesz liczyć y=ax+b.
Przed pisaniem programu musisz go dobrze przemyśleć, najlepiej rozrysuj sobie to wszystko na kartce i sam spróbuj podstawiać wartości do wzoru i później pomyśl jak to przenieść do programu.
Twój program byłby w miarę dobry jeżeli na początku podawałbyś wartości x i y, ale to byłoby za proste ;].
Jak będę miał chwilę czasu to może napiszę taki program, tylko zdecyduj się czy w C czy w C++.
@UP
OK, mam program, w trochę prymitywny sposób to zrobiłem ale jest ;p.
Jeżeli chcesz sam napisać, to zwróć uwagę na zależności a i b z ćwiartkami układu współrzędnych. Chodzi mi o to, że gdy a>0, wtedy funkcja jest rosnąca, gdy a<0 malejąca a gdy a=0 to mamy funkcję stałą. Jeżeli masz jeszcze jakieś pytania to pisz.
A może weź spisz wszystko od kolegów z klasy, po co masz się męczyć?
Zapisałem się na kółko informatyczne w UMK w torcu, dlatego zpisanie nie wchodzi w grę.
Pepe dzięki za wyczerpującą odpowiedź, ale jak napisałem wcześniej to jest kółko, ale online, podają Ci lekcje, a potem na koniec masz zadania, które im wysyłasz, a tam ich program to sprawdza. To jest 3 lekcja, pierwsze zadanie zrobiłem całe dobrze, zaś za to drugie dostałem 1/3 punkty, tylko jest taki problem, że oni to jakoś mało zrozumiale tłumaczą, pokazują jedne zadania dla przykładu, a zadają inne.
A no i jest to C++.
Pepe, jak byś mógł to napisz ten program, to wtedy go przeanalizuje i wyciągnę wnioski. A jak byś mógł to podaj mi z czego Ty się uczyłeś ? ;)
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Nie możesz ściągać załączników na tym forum