GRY-Online.pl --> Archiwum Forum

C++ zadanie

01.04.2006
10:45
smile
[1]

TCG [ Chorąży ]

C++ zadanie

Do zdefiniowanej tablicy o długości 500 wpisz wygenerowane liczby z przedziału <0;20000>; Znajdź w tej tablicy ile jest następujących po sobie ciągów 4 nieparzystych liczb z kolei.


Moze ktos pomoze?

Pozdrawiam.

01.04.2006
10:58
[2]

Toolism [ GameDev ]

prawda jest taka ze jesli nie wiesz jak za to się zabrać, to lepiej daj sobie spokój z programowainem.

01.04.2006
11:06
[3]

Loczek [ El Loco Boracho ]

ale co nie masz pomyslu jak to napisac, czy po prostu brakuje ci umiejetnosci?

Bo jesli chodzi o pomysł to przeciez to jest banalne.

Robisz tablice, losujesz 500 liczb, deklarujesz sobie zmienną nieparzyste, która podlicza ilosc nieparzystych liczb w ciągu, deklarujesz zmienną suma. W momencie kiedy program napotyka na liczbę parzystą robisz wyrażenie warunkowe (jesli nieparzyste>4 wtedy suma:=suma+(nieparzyste-4)) i wszystko :)

nie napisze ci tego bo nie znam C++ :P

pozdrawiam

01.04.2006
11:14
[4]

Toolism [ GameDev ]

"Po co mam to pisać, skoro ktoś może napisać to za mnie.." Riight?

01.04.2006
11:23
[5]

pecet007 [ ]



testowane przy Dev-C++ (komp: MinGW)

01.04.2006
11:27
smile
[6]

nutkaaa [ Icewoman ]

hmm żeby nie zakładać nowego wątku. Mam zadanie na informę:
"Napisz program obliczający pole kwadratu o podanej długości boku. W przypadku podania przez użytkownika niewłaściwej wartości, to jest ujemnej lub zero, program powinien prosić o podanie właściwej wartości."
Dopiero zaczynam programowanie, coś tam już napisałam ale ciągle nie chce mi funkcjonować :) mianowicie mam narazie to:
#include<iostream>
using namespace std;
int main ()

int bok;

cout <<"Wprowadz bok: "<<bok<<'\n';
cin >>bok;
cin.ignore();

if(bok>0)

while (bok>0)

cout <<"Pole wynosi: "<<bok*bok<<'\n';
cin >>bok;
cin.ignore();


else

cout <<"Wprowadz prawidlowa wartosc: "<<'\n';
cin >>bok;
cin.ignore();


cout <<"Nacisnij ENTER aby zakonczyc"<<'\n';

getchar();
return 0;


Program o ile jest wprowadzona dobra wartosc to oblicza pole jednak nie zamyka programu, gdy wprowadzam wartosc ujemna prosi o poprawna wartosc jednak pola juz nie oblicza. Mógłby ktoś sprawdzić gdzie popełniłam jakiś błąd? A może użyłam złej pętli bo już nie mam pomysłu a siedzę troszke już nad tym :)

01.04.2006
11:38
[7]

nutkaaa [ Icewoman ]

teraz dopiero zauwayzlam ze dziwnie nawiasy klamrowe mi skopiowal wiec te male samotne < > to oczywisce klamry więc to z pewnością nie od tego ;-)

01.04.2006
11:41
[8]

pecet007 [ ]

use pastebin.com :P

01.04.2006
11:42
[9]

Loczek [ El Loco Boracho ]

nutkaa: jak wspomnialem na tym języku sie nie znam, ale na chłopski rozum Twój algorytm wygląda tak:
1, wprowadź bok
2. jesli bok>0 to licz pole
3. w przeciwnym wypadku wprowadź właściwą wartosć

while chyba nie pełni funkcje taką jakie było założenie

ja bym to zrobil tak
powtarzaj
1. wprowadź bok
aż bok>0
2. oblicz pole

pozdrawiam :)
PS
powtarzaj aż to w pascalu repeat until bok>0... tu pewnie bedzie podobnie

01.04.2006
11:59
[10]

Kijano [ Generał ]

nutkaaa ->

01.04.2006
12:04
[11]

nutkaaa [ Icewoman ]

Kijano -> tam są jakieś komendy z których na oczy nie widziałam, a muszę się opierać na tym co mam w szkole. Już doszłam jakie miałam błędy jednak ciągle nie chce mi się program zamknąć

#include<iostream>
using namespace std;
int main ()

int bok;

cout <<"Wprowadz bok: "<<'\n';
cin >>bok;
cin.ignore();

while (bok<0)

cout <<"Wprowadz prawidlowa wartosc: "<<'\n';
cin >>bok;
cin.ignore();


if (bok>0)

cout <<"Pole wynosi: "<<bok*bok<<'\n';
cin >>bok;
cin.ignore();

cout <<"Nacisnij ENTER aby zakonczyc"<<'\n';
getchar();
return 0;

01.04.2006
12:10
[12]

nutkaaa [ Icewoman ]

ok problem rozwiazany w kazdym razie dzieki za proby pomocy :)

01.04.2006
12:49
[13]

ribald [ Konsul ]

nutkaaa, dużo za dużo instrukcji nawstawiałaś :)


int bok;

do

cout<<"Podaj dlugosc boku: "<<endl;
cin>>bok;
if(bok<=0)
cout<<"Podaj dodatnia wartosc!"<<endl;

while(bok<=0);

cout<<"Pole wynosi: "<<bok*bok<<endl;

system("PAUSE");
return EXIT_SUCCESS;

01.04.2006
19:47
[14]

nutkaaa [ Icewoman ]

ribald -> już sobie poradziłam i opierałam się na instrukcjach mi znanych, nie miałam doczynienia wcześniej np. z endl
co to jest silnia liczby naturalnej? bo mam zadanie o treści "Zaimplementuj algorytm obliczania silni liczby naturalnej n." ale nie wiem co to ta silnia ;-)

01.04.2006
19:50
[15]

Sir Skull [ Market Square Hero ]

01.04.2006
20:04
[16]

Kijano [ Generał ]

LOL nie wiesz co to jest silnia ? Czego was teraz ucza w tej szkole ?

Do ktorej klasy chodzisz ?

01.04.2006
23:01
[17]

ribald [ Konsul ]

endl to to samo co /n, to już zależy co kto lubi :)

01.04.2006
23:47
[18]

Loczek [ El Loco Boracho ]

n!(silnia)=1*...*(n-1)*n

:)

02.04.2006
00:45
[19]

Moby7777 [ Generał ]

pytanie brzmi: co robi cin.ignore()?? :)

A co do waszych pytan:
obydwoje (TCG i nutkaaa) zaczynajcie (zwlaszcza na poczatku nauki) pisanie programu od kartki i dlugopisa. Zapiszcie co chcecie osiagnac i jak mniej wiecej pasowaloby postepowac zeby sie udalo (mowiac po ludzku pomyslcie nad algorytmem rozwiazujacym dany problem). Dopiero pozniej zacznijcie myslec o c++ i tym, jak ten algorytm zapisac. Dzieki temu nauczycie sie owe algorytmy projektowac (tzn wymyslac rozwiazania zadan), upraszczac i nauczycie sie jak uproscic przejscie z jednego jezyka programowania na drugi.

nutkaaa --> a co do programu ktory umiescilas jako ostatni... dopisze kilka komentarzy :)

#include<iostream>
using namespace std;
int main ()

int bok;
/* caly ten fragment jest niepotrzebny - przy kompilacji zmienna bok i tak bedzie rowna 0 wiec program wejdzie w petle while. Zreszta sprawdz - dopisz w linii bezposrednio pod int bok; komende cout<<bok<<endl;
cout <<"Wprowadz bok: "<<'\n';
cin >>bok;
cin.ignore();
*/
while (bok<0) //tu powinien byc warunek (bok <= 0) poniewaz zero tez Ci z zalozenia nie pasuje

cout <<"Wprowadz prawidlowa wartosc: "<<'\n';
cin >>bok;
cin.ignore();


if (bok>0) //a co sie stanie jesli bok bedzie rowny 0? Program nie wyswietli nic...

cout <<"Pole wynosi: "<<bok*bok<<'\n';
cin >>bok; //ta komenda jest juz niepotrzebna - po co drugi raz prosic o wartosc ktora jest juz niepotrzebna
cin.ignore();

cout <<"Nacisnij ENTER aby zakonczyc"<<'\n'; //a te dwie linie lepiej zastapic komenda system("pls");
getchar(); //bardziej uniwersalny sposob :P
return 0;


Tyle o programie. Co do problemu z silnia to zasady sa proste:
- oznaczamy to to przez wykrzyknik (czyli silnia 4 zapisywana jest jako 4!)
- z definicji 0! = 1! = 1
- kazda nastepna silnia n! = 1*2*3*4*...*(n-1)
- lub, jesli wolisz :), n! = (n-1)! * n

02.04.2006
00:57
smile
[20]

Ramz [ Konsul ]

Moby7777 - dobrze gadasz. Najwazniejsze to zrozumiec problem, bo bez tego anirusz. Samo przepisanie pomyslu na jakis jezyk programownia to banal.

PS. Ostatnio rozwalilem w ten sposob metode SOR i CG rozwiazywania rownan liniowych i powiem ze bez katrki i dlugopisu niedalbym rady.

02.04.2006
01:08
smile
[21]

Moby7777 [ Generał ]

Ramz --> nie kojarze wprawdzie co to sa za metody ale jak jestem na 4 semestrze informy tak jest to pierwszy semestr na ktorym nam nie powtarzaja pierdzielenia historii z kartka :P Ale za to i tak w sprawkach z projektow bardziej interesujace dla sprawdzajacych sa schematy blokowe niz listingi... :]

02.04.2006
01:13
[22]

Ramz [ Konsul ]

Moby7777 - zabawa UML jest dobra przy wiekszych i grupowych projektach, a piszac proste programiki wydaje mi sie zbeden robienie calej dokumentacji :) (ktora pochlonie troche cennego czasu)

02.04.2006
01:18
[23]

Moby7777 [ Generał ]

Ja tu nie mowie od razu o UMLu... tymbardziej ze UML sluzy do opisania komunikacji miedzy obiektami a tu obiektow ni chuchu. Poza tym UML do powyzszych problemow to troche tak jakbys chcial strzelac z armaty do komara... Inna sprawa jest jednak ze jak mi prowadzacy laborek z jezykow na pierwszym semestrze (albo raczej jego pierwszej polowie :P) kazal kazdy kolejny program przedstawic blokowo zanim pozwolil pisac to pozniej jakos szybciej pisalem (jakos tak wyszlo ze "w pamieci" moglem sobie wiekszosc problemow rozplanowac i sprowadzalo sie to do klepania w klawiature)

BTW. tez kolega informatyk? :)

02.04.2006
01:44
smile
[24]

Ramz [ Konsul ]

Moby7777 - niestety przez to samo przechodzilem - a wtej chwili tak samo jak ty jestem na 4 sem.

PS. chociaz na zajecia z algorytmow nie narzekalem, a nawet moge powiedziec ze je lubilem :) :)

02.04.2006
02:12
[25]

Moby7777 [ Generał ]

No u nas paradoksalnie wymagali wiecej schemacikow na jezykach programowania niz na algorytmach i strukturach danych... ale obydwa powyzsze lubilem i cenilem (moze z wyjatkie jp3, ktory z cudnego c++ rzucil nas w paskudna JAVA'e... :P)

02.04.2006
09:23
[26]

pecet007 [ ]

Moby -- bardzo ta Java się różni od C++? Bo nie wiem czy o niej też mam zacząc myślec... Na razie myślę o nauce także C# bo podobno fajny, ale mi się on z VB.NETem jakoś kojarzy i nie mogę się przełamac... (Do C++ się z VB6 przerzuciłem właśnie nie dawno.)

02.04.2006
10:32
[27]

Moby7777 [ Generał ]

W zasadzie to tak strasznie sie nie roznia... ale jak sie wezmiesz na serio za C# to i z Java sobie pozniej poradzic (bylo nie bylo c# to takie wyposrodkowanie c++ i wlasnie Javy)...

02.04.2006
12:50
[28]

nutkaaa [ Icewoman ]

Moby7777 -> też tak kilka ostatnich zadań robiłam, że obierałam sobie jakąś liczbę i robiłam tak długo aż w końcu mi się zgadzało i ewentualne poprawki nanosiłam ;)

Kijano -> 2 LO profil mat-inf. Silnie jako słowo słyszałam, jednak nigdy mi na lekcji nie tłumaczono co to takiego, być może dopiero do tego dojdziemy teraz mam geometrię analityczną

© 2000-2022 GRY-OnLine S.A.