johnnny
Newbie
Liczba postów: 1
Reputacja:
0
|
kłopot z porgramem...
mam do zrobienia program- Zaproponuj algorytm sprawdzający, czy dany ciąg jest ciągiem malejących. Narysuj schemat blokowy tego algorytmu (to proste). Napisz i uruchom program realizujący ten algorytm oraz dodatkowo obliczający na życzenie użytkownika iloczyn zadanej liczny elementów ciagu począwszy od zadanego elementu. Program ma umożliwiać a). Automatyczne wpisanie ciągu o szukanych właściwościach , cool.gif. Wygenerowanie ciągu liczb losowych z zadanego zakresu, c). Wpisanie elementów ciągu z klawiatury. Pogrupuj części programu w funkcje.
koledzy pomogli mi zrobic coś takiego ale program nie rozpoznaje czy ciąg jest malejący.
mógłby ktoś obeznany sprawdzic dlaczego to nie chodzi? z góry dziękuje.
Kod: #include <time.h>
#include <iostream>
#include <ctime>
#include <conio.h>
using namespace std;
void wpisz (int * tab, int x,int i,int n,int y)
{
cout <<endl;
for (i=0;i<x;i++)
{
n=n+1;
cout <<"podaj "<<n<<" liczbe";
cin >>y;
tab[i] = y;
}
n = 0;
for (i=0;i<x;i++)
{
n = n+1;
cout<<"liczba["<<n<<"]="<<tab[i];
}
}
//funkcja wypelnij
void wypelnij (int * tab, int x,int i,int n)
{
cout <<"automatycznie wypelniony ciag o szukanych wlasciwosciach";
for(i=2;i<x;i++)
{
tab[i] = tab[i-1] + tab[i-2] +1;
}
for (i=0;i<x;i++)
{
n = n+1;
cout<<"liczba["<<n<<"]="<<tab[i];
}
}
void losowe (int * tab, int x,int i,int n)
{
srand(time(0));
for(i=0;i<x;i++)
{
tab[i]=rand()%x;
}
cout<<"tablica wypelniona liczbami losowymi to";
for (i=0;i<x;i++)
{
n = n+1;
cout<<"liczba["<<n<<"]="<<tab[i];
}
}
//sprawdzanie czy ciag malejacy... (tu cos nie chodzi)
void sprawdzenie (int * tab, int x,int ok)
{
for (int i=2;i<x-1;i++)
{
ok = 1;
if (tab[i] <= tab[i+1])
{
cout << "Ciąg nie jest malejący" << endl;
}
if(tab[i] == tab[i-2])
cout << "Podany ciąg jest malejący" << endl;
}
}
int main(int argv, char * argc[])
{
int x,i,y,n,z,u,min,ok,wybor,petla1,petla2,petla3;
do
{
petla3 = 0;
x=0;
y=0;
n=0;
z=1;
ok=0;
i=0;
int *tab = new int[x];
do
{
petla2 = 0;
//podanie zakresu ciagu
cout <<"podaj zakres ciagu";
cin >>x;
tab = new int[x];
do
{
petla1 = 0;
cout <<"co chcesz zrobić"<<endl;
cout <<endl;
cout <<"1 - wygenerowac ciąg liczb losowych z danego zakresu ("<<x<<")"<<endl;
cout <<"2 - automatycznie wypelnic ciąg liczbami o szukanych właściwosciach"<<endl;
cout <<"3 - wpisac elementy cigau z klawiatury"<<endl;
cout <<"4 - zmienić zakres ciągu"<<endl;
cout <<"5 - zakonczyc program"<<endl;
cout <<endl;
cin >> wybor;
cout <<endl;
if (wybor == 1)
{
losowe(tab, x, i, n);
}
else if (wybor == 2)
{
wypelnij(tab, x, i, n);
}
else if (wybor == 3)
{
wpisz(tab, x, i, n, y);
}
else if (wybor == 4)
{
petla2 = 1;
}
else if (wybor == 5)
{
goto koniec;
}
else
{
cout <<"nieprawidlowy wybor !"<<endl<<endl;
petla1 = 1;
}
}
while (petla1 == 1);
}
while (petla2 == 1);
min = tab[0];
for (i=1;i<x;i++)
{
if (tab[i]<min)
{
min = tab[i];
z = i+1;
}
}
cout <<"wartosc minimalna ciagu to: "<<min<<" na pozycji "<<z<<endl<<endl;
// zamienienie najmnieszej wartosci z nowa wpisaną z klawiatury
cout <<"podaj nową liczbe"<<endl;
cin >>u;
tab[z-1] = u;
cout <<"liczba "<<min<<" zostala zamieniona na "<<u<<endl<<endl;
for (i=0;i<x;i++)
{
n = n+1;
cout <<"liczba["<<n<<"]="<<tab[i]<<endl;
}
sprawdzenie(tab, x, ok);
cout <<endl;
cout <<"czy chcesz kontynuować ? 1-Tak 2-Nie"<<endl;
cin >>petla3;
}
while (petla3 == 1);
koniec:
cout <<endl;
}
|
|
02-01-2009, 17:20 |
|
jarex_67
Znawca
Liczba postów: 90
Reputacja:
0
|
RE: kłopot z porgramem...
|
|
29-08-2017, 18:43 |
|