Skocz do zawartości
andixad

C++ ćwiczenia.

Rekomendowane odpowiedzi

Witam :)

 

Mam pewien problem. :? Otóż zbliża mi się koniec półrocza w szkole, i muszę zaliczyć C++'sa. Sęk w tym że że ja to miałem 2 lata temu, a teraz większości rzeczy nie pamiętam. Sprawdzian mam za parę dni..

Mam trochę zadań, zadań które pomogą mi w przygotować się do zaliczania tego materiału jednak sam nie jestem wstanie w tak szybkim tempie tego opanować. Więc pytanie mam do was czy poświęcilibyście mi trochę czasu na pomoc w rozwiązywaniu zadań. Bardzo byłbym wdzięczny :wink:

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Np taki nie wiem czemu nie działa...

Napisz program, który pobierze liczbę i wypisze jej podwojoną wartość.

 

#include <iostream.h>#include <as.h>using namespace std;int main(){	int m=2,k,l;	cout<<("Podaj k:");	cin>>k;	l=k*m}system("pause");return 0;

jedno już mi się udało zrobić ( z pomocą :P )

 

Podać dwie liczby i zsumować..

 

#include <iostream>using namespace std;int main(){	int k,n,l;	cout<<"Podaj liczbe:";	cin>>n;	cout<<"Podaj liczbe:";	cin>>k;	cout<<"suma liczb wynosi:";	cout<<k + n<<"\n";	system("pause");	return 0;}
Edytowane przez andixad

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Może tak:

to zadanie już kapuję:

#include <iostream>using namespace std;int main(){	int m=2,k,l;	cout<<("Podaj k:");	cin>>k;	cout<<"Podwojona wartość tej liczby to:";	cout<<k * m<<"\n";	system("pause");	return 0;}

Jest OK.

 

Najlepiej podam za dania (można rozwiązywać od 4 dalej bo wcześniejsze już mi się udało wykonać):

 

1. Napisz program, który pobierze liczbę i wypisze jej podwojoną wartość.

2. Napisz program, który pobierze od użytkownika liczbę i wypisze jej kwadrat.

3. Napisz program, który pobierze 2 liczby i wypisze ich sumę.

4. Napisz program, który pobierze długość podstawy i wyskość trójkąta i wypisze jego pole.

5. Napisz program, który pobierze liczbę i wypisze jej odwrotność i liczbę do niej przeciwną.

6. Napisz program, który pobierze dwie liczby, i wypisze iloraz pierwszej przez drugą (program zabezpiecz przed dzieleniem przez zero.

7. Napisz program, który pobierze długości boku kwadratu i wypisze jego obwód i pole.

8. Napisz program, który pobierze dwie liczby i wypisze większą z nich (rozważ również sytuację, gdy liczby są sobie równe.

9. Napisz program, który pobierze liczbę i wypisze jej wartość bezwzględną.

10. Napisz program, który pobierze liczbę i wypisze komunikat informujący, o tym czy liczba jest parzysta czy też nieparzysta.

11. Napisz program, który pobierze dwie liczby i wypisze komunikat informujący, czy pierwsza z nich jest podzielna przez drugą.

12. Napisz program, który pobierze liczbę i wypisze jej cyfrę jedności.

13. Napisz program, który pobierze dwie liczby i wypisze iloraz większej z nich, przez mniejszą. Wynik wypisz z dokładnością do trzech miejsc po przecinku.

14. Napisz program, który pobierze płeć od użytkownik. Płeć powinna być zmienną typu char i pobierać jeden ze znaków "K" lub "M". Po podaniu znaku powinna zostać wypisana pełna informacja "Kobieta" lub "Mężczyzna".

15. Napisz program, który pobierze numer dnia, tygodnia i wypisze nazwę rego dnia np. po podaniu liczby 1 powinien zostać wypisany "Poniedziałek", po podaniu 2 - "Wtorek" itd.

16. Napisz program, który pobierze wiek użytkownika, a następnie wypisze jeden z konunikatów : przedszkolak, szkoła podstawowa, gimnazjum itd.

17. Napisz program, który pobierze trzy liczby i sprawdzi, czy mogą być długościami boków trójkąta.

18. Napisz program, który pobierze trzy liczby i sprawdzi, czy mogą być długościami boków trójkąta prostokątnego.

19. Napisz program, który pobierze liczbę i wypisze pierwiastek z tej liczby.

20. Napisz program, który pobierze trzy liczby i wypisze największą z nich.

Edytowane przez andixad

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ja bym Ci radził jednak podawać tu na bieżąco rozwiązania swoje i ew. problemy, bo rozwiązań to od nas nie oczekuj. Chyba, że zwrócisz się do d0b0c0p, który się niejako zaoferował.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

OK Prog.

 

4. Napisz program, który pobierze długość podstawy i wysokość trójkąta i wypisze jego pole.

W tym zad. niby kompilacja przechodzi pomyślnie, ale po podaniu wartości a i h, niestety wynik jest cały czas taki sam: 0.

 

#include <iostream>using namespace std;int main(){	int a,h,p;	cout<<"Podaj długość podstawy trójkąta (a):";	cin>>a;	cout<<"Podaj wysokość trójkąta (h):";	cin>>h;	cout<<"Pole trókąta wynosi:";	cout<<1/2*a*h<<"\n";	system("pause");	return 0;}
Edytowane przez andixad

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

p=0.5*a*h;

cout<<p<<"\n";

no rzeczywiście :wink:

 

6. Napisz program, który pobierze dwie liczby, i wypisze iloraz pierwszej przez drugą (program zabezpiecz przed dzieleniem przez zero.

nie wiem dokładnie jak tu warunek utworzyć:

...int main(){	int a,p;	if (a=0){	cout<<"Wartość a nie może być równa 0, podaj inną liczbę(a):";	cin>>a;}	cout<<"Podaj pierwszą liczbę(a):";	cin>>a;	cout<<"Podaj drugą liczbę(b):";	cin>>b;	cout<<"Iloraz wynosi:";	cout<<b/a<<"\n"; ...
Edytowane przez andixad

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

int a,p;

 

if (a=0){

cout<<"Wartość a nie może być równa 0, podaj inną liczbę(a):";

cin>>a;}

cout<<"Podaj pierwszą liczbę(a):";

cin>>a;

cout<<"Podaj drugą liczbę(b):";

cin>>b;

cout<<"Iloraz wynosi:";

cout<<b/a<<"\n";

...

int main(){

int a,p;

float iloraz;

cout<<"Podaj pierwszą liczbę(a):";

cin>>a;

cout<<"Podaj drugą liczbę(b):";

cin>>p;

while(p==0){

cout<<"Wartość a nie może być równa 0, podaj inną liczbę(a):";

cin>>p;

}

cout<<"Iloraz wynosi:";

iloraz=a/p;

cout<<iloraz<<"\n";

system("pause");

return 0;

}

 

Korzystajac z while, uzyszkodnik moze wbijac zero az do jutra i sie progz nie wylaczy.

Edytowane przez tukamon

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

zauwżyłem zę jeżeli liczba 'b' będzie mniejsza od 'a' to wartość ilorazu będzie 0 (pomijam wartość 0 dla 'a' i 'b')

Np: a=8, b=5 ; b/a=5/8=0,625 Wartość po przecinku jest automatycznie wycinana więc wyświetli nam 0. Zatem co napisać żeby wynik był podawany z 2 cyframi po przecinku?

Edytowane przez andixad

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

tez sqrt()

hmm, to co tu jest nie tak?

 

9. Napisz program, który pobierze liczbę i wypisze jej wartość bezwzględną.

 

#include <iostream>using namespace std;int main(){	int a,p;	cout<<"Podaj dowolną liczbę(a):";	cin>>a;	cout<<"Odwrotność tej liczby to:";	cout<<sqrt(a*a)<<"\n";	system("pause");	return 0;}

no niby są te 3 liczby po przecinku, ale nie wiedzieć czemu np 8/9 to 0,000

 

#include <iostream>#include <stdio.h>using namespace std;int main(){int a,b;float iloraz;cout<<"Podaj pierwszą liczbę(a):";cin>>a;cout<<"Podaj drugą liczbę(b):";cin>>b;while(a==0){cout<<"Wartość a nie może być równa 0, podaj inną liczbę(a):";cin>>a;}cout<<"Iloraz wynosi:";iloraz=b/a;printf("%.3f", iloraz);cout<<iloraz<<"\n";system("pause");return 0;}

a jeżeli b >= a, to wynik 1,001 zawsze .... :?

Edytowane przez andixad

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

OK.

zupełnie nie wiem co z tym zrobić :mur: :

10. Napisz program, który pobierze liczbę i wypisze komunikat informujący, o tym czy liczba jest parzysta czy też nieparzysta.

Edytowane przez andixad

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jak masz dwa typy int mnożone czy dzielone przez siebie to kompilator może uznać, że wynik też ma być typu int. Zatem to rozwiąże problem:

 

iloraz=(float)b/(float)a;

Czyli operator rzutowania.

 

EDIT: Co do twojego problemu... Wiesz co to reszta z dzielenia ? ? ? [x mod y]

Edytowane przez Prog

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

OK.

zupełnie nie wiem co z tym zrobić :mur: :

10. Napisz program, który pobierze liczbę i wypisze komunikat informujący, o tym czy liczba jest parzysta czy też nieparzysta.

np tak możę wyglądać taki program :

 

#include <iostream>

 

using namespace std;

 

int main ()

{

int liczba;

 

cout<<"podaj liczbe ";

cin>>liczba;

cin.ignore();

 

if (liczba%2==0)

cout<<"podana liczba jest parzysta"<<'\n';

else

cout<<"podana liczba jest nieparzysta"<<'\n';

cout<<"nacisnij enter aby zakonczyc";

getchar();

return 0;

}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

ja myślałem że zobaczę tu problemy w stylu, klasy, dziedziczenie, metody virtualne, templejty a Ty masz tu banalne wręcz zadania, które berdziej niż C++ tyczą się programowania jako takiego - na poziomie 2 pierwszych tygodni nauki...

 

jeśli już c++ to może wystarczy skrótowy zapis ifelsa.. po co sztucznie powiększać programy, które można napisać w 3 linijkach :)

cout<< (k%2 ? "nieparzysta" : "parzysta");

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

ja myślałem że zobaczę tu problemy w stylu, klasy, dziedziczenie, metody virtualne, templejty a Ty masz tu banalne wręcz zadania, które berdziej niż C++ tyczą się programowania jako takiego - na poziomie 2 pierwszych tygodni nauki...

 

jeśli już c++ to może wystarczy skrótowy zapis ifelsa.. po co sztucznie powiększać programy, które można napisać w 3 linijkach :)

cout<< (k%2 ? "nieparzysta" : "parzysta");
No fakt, że są to proste zadania zadania. Ale w końcu od czegoś trzeba zacząć.

Spodobała mi się twoja wersja (program jest bardziej przejrzysty, od razu połowa linijek znikła).

_________________

 

a jak w zad 12 napisać program który wyświetli cyfrę jedności podaną przez użytkownika liczbę?

 

_________________

 

#include <iostream>using namespace std;int main(){int a,b;cout<<"Podaj pierwszą liczbę(a):";cin>>a;cout<<"Podaj drugą liczbę(b):";cin>>b;cin.ignore();if (a=b==0)cout<<"Wartości a i b są takie same"<<"\n";elseif (a<b==0)cout<<"Wartość a jest większa od b"<<"\n";elsecout<<"Wartość b jest większa od a"<<"\n";cout<<"nacisnij enter aby zakonczyc";getchar();system("pause");return 0;}

Program działa poprawnie bez:

 

if (a=b==0)

cout<<"Wartości a i b są takie same"<<"\n";

 

Co tu trzeba poprawić?

Czy nie aby coś takiego.. :?

 

cout<< (a>b ? "a wieksza" : a=b ? "tak" : "b większa")<<"\n";

Edytowane przez andixad

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

a jak w zad 12 napisać program który wyświetli cyfrę jedności podaną przez użytkownika liczbę?

Nadal widzę nie rozumiesz reszty z dzielenia. Przecież dajesz mod danej liczby przez 10 i gotowe...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

skrót jest dobry czasami.. ale nie powinno sie go nadużywać :)

 

Cyfrę jedności można na kilka sposobów... matematycznie....

 

cout<<"liczba jedności we wpisanym ciągu to "<< liczba%10;

Inne podejście jest : stringowe... wczytaną liczbę traktujesz jako stringa i wypisujesz ostatni znak...

CString strLiczba = liczba_wczytana;  // tu masz konwersję inta do CStringacout<< "liczba jedności we wpisanym ciągu to "<< strLiczba[strLiczba.Lenght()-1];
oczywićei kod wyssany z palca i nie gwarantuję że będzie działał bo kompiloara w głowie nie mamjako takiego :), Oczywiscie jesli podasz mu napis to zwróci ostatnią literę, ale założenie jest takie że masz liczbę w postaci inta... Edytowane przez PelzaK

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

ok, juz rozumiem jak wypisać cyfre jedności

 

Napisz program, który pobierze liczbę i wypisze jej odwrotność i liczbę do niej przeciwną.

 

#include <iostream>using namespace std;int main(){	int a,p;	cout<<"Podaj liczbę:";	cin>>a;	cout<<"Dodwrotność tej liczby to:";	cin<<(-1)*a<<"\n";	system("pause");	return 0;}

Nie rozumiem w tym zadaniu różnicy pomiędzy odwrotnością a przeciwnością.

_______________

 

Jak sprawdzić która z podanych liczb jest większa?

Edytowane przez andixad

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Odwrotność liczby x to 1/x

A wiesz że na to nie wpadłem... :mur:, matmy nigdy nie lubłem.

____________

 

cin<<1/a<<"\n";

tutaj wyskakuje błąd:

no match for 'operator<<' in 'std::cin << (1 / a)'

no match for 'operator<<' in 'std::cin << (a * -0x000000001)'

Edytowane przez andixad

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

chcialbym tylko dodac, bo zadania sa banalne jak sikanie... otoz wydajniej jest sprawdzac parzystosc przez liczbz&1, a nie liczba%2 :) . Ot taki maly sekrecik :].

 

 

#include<iostream>int main(void){	double b;	std::cout << "wbijasz liczbe" << std::endl;	std::cin >> b;	std::cout << "odwr: " << 1/b << " przec: " << (-1*b) << std::endl;}
Edytowane przez MeHow

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

cin<<1/a<<"\n";

 

tutaj wyskakuje błąd:

no match for 'operator<<' in 'std::cin << (1 / a)'

no match for 'operator<<' in 'std::cin << (a * -0x000000001)'

Zmien "cin" na "cout" ;)

Edytowane przez Errorx

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

zamiast 50 programików 3 linijkowych mógł wam zlecić napisanie jednego wszystkomającego :)

 

otoz wydajniej jest sprawdzac parzystosc przez liczbz&1, a nie liczba%2 icon_smile3.gif .

przesada... Obecne programy są milion razy bardziej złożone i czasochłonne a tu o taki szczegół się czepiać... Do tego nie jestem pewien, ale kompilator zapewne zoptymalizuje sobie ten kod do tego samego kodu wynikowego.. więc wsio ryba jak napiszesz :)

 

CIN - wejscie, tędy wchodzą dane

COUT - wyjscie.. tędy dany wyprowadzasz na zewnątrz

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie



×
×
  • Dodaj nową pozycję...