Algorytmy i struktury danych, Ćwiczenia I
09.10.2012 r.
Lista 1
Rozwiąż zadania tworząc: pseudo kod, program komputerowy, rysunek lub algorytm.
Zadanie 1
Dla zadanej liczby naturalnej:
a. wypisać wszystkie jej dzielniki naturalne
b. sprawdzić, czy jest liczbą pierwszą
#include
#include
using namespace std;
int main(){
int l;
cout << "podaj liczbe" << endl;
cin >>l;
for (int i=sqrt(l);i>0;i--)
if (l%i ==0) cout< bool prime=true;
for(int i=2;i<=sqrt(l);i++)
if(l%i==0) {prime=false; break; }
cout <<(prime);
return 0;
}
Zadanie 2
Podać algorytm, który sprawdza, czy zadana liczba naturalna jest doskonała to znaczy, że suma jej
dzielników bez największego jest równa jej samej np. i .
Znalezć następną liczbę doskonałą
#include
#include
using namespace std;
bool doskonala(long long l){
long long suma=1;
for(long long i=2; i<=sqrt(l); i++) if(l%i==0) suma+=(i+l/i);
return (suma==l);
}
bool pierwsza(long long l){
bool prime=true;
for(long long i=2; i return prime;
}
long long kolejna_doskonala(long long l){
long long liczba=0;
for(long long potega=2,suma=1;liczba<=l;potega=potega<<1){
suma+=potega;
if(pierwsza(suma)) liczba=suma*potega;
}
return liczba;
}
int main(){
long long int l;
cout << "podaj liczbe" << endl;
cin >>l;
cout <<"wprowadzona liczba " << ( (doskonala(l)) ? "jest " : "nie jest") <<
"doskonala" < cout <<"Kolejna liczba doskonała to: "< return 0;
}
Zadanie 3
Dla dwóch dowolnych liczb naturalnych obliczyć:
a. najmniejsza wspólną wielokrotność
b. największy wspólny dzielnik
#include
using namespace std;
int NWD(int a, int b)
{ int c;
if (b>a)
{ c=b;
b=a;
a=c;
}
while(b!=0)
{ c=a%b;
a=b;
b=c;
}
return a;
}
int _tmain(int argc, _TCHAR* argv[])
{ unsigned int a,b, nwd;
cout<<"Wprowadz dwie liczby naturalne"< cout<<"a: ";
cin>>a;
cout<<"b: ";
cin>>b;
nwd=NWD(a, b);
cout<<"\nnajmniejsza wspólna wielokrotność wynosi: "<<(a*b)/nwd;
cout<<"\nnajwiekszy wspólny dzielnik wynosi: "< system("pause");
return 0;
}
Zadanie 4
Dla danych trzech odcinków o długości :
a. sprawdzić czy z tych odcinków można zbudować trójkąt
b. wypisać jaki to jest trójkąt (ostrokątny, prostokątny, rozwartokątny, różnoboczny,
równoboczny, równoramienny)
#include
using namespace std;
inline bool czy_trojkat(double a, double b, double c){
return(a+b>=c && a+c>=b && b+c>=a)?1:0;
}
int main(){
double a, b, c, d, warunek;
cout << "Podaj 3 liczby rzeczywiste: \na: ";
cin>>a;
cout<<"b: ";
cin>>b;
cout<<"c: ";
cin>>c;
warunek=czy_trojkat(a, b, c);
cout<<(warunek==1?"\nIstnieje taki trojkat\n\n":"\nNie istnieje taki
trojkat\n\n");
if (warunek==1){
if (c>a){
if(c>b);
else {
d=b;
b=c;
c=b;
}}
else {
d=a;
a=c;
c=d;
}
if (c*c>a*a+b*b) cout<<"\nTrojkat jest rozwartokatny";
if (c*c==a*a+b*b) cout<<"\nTrojkat jest prostokatny";
if (c*c if (a!=b && b!=c && a!=c) cout<<"\nTrojkat jest roznoboczny";
if (a==b && b==c && a==c) cout<<"\nTrojkat jest rownoboczny";
if (a==b || a==c || b==c) cout<<"\nTrojkat jest rownoramienny";
}
return 0;
}
Zadanie 5
Wypisać przez które ćwiartki płaszczyzny przechodzi prosta w zależności od wartości
współczynników i
#include
using namespace std;
int main(){
int a,b;
cout<<"podaj a="; cin>>a;
cout<<"podaj b="; cin>>b;
cout<<"y="< char c = (a==0) ? 0x00 : (a>0) ? 0xCC : 0x33;
c = c | ( (b==0) ? 0x00 : (b>0) ? 0xf0 : 0x0f );
cout <<"Przechodzi przez ćwiartki: " << ( 0xC0 & c ? "I, " : "" ) << ( 0x30 & c ?
"II, " : "" ) << ( 0x0c & c ? "III, " : "" ) << ( 0x03 & c ? "IV, " : "" )<}
Zadanie 6
Podać algorytm sprawdzający czy dany rok jest przestępny
#include
using namespace std;
int main(){
int rok;
cout << "podaj rok" << endl;
cin >>rok;
if (rok==0) cout<<"nie istnieje";
else
cout <<((rok%4==0 && rok%100!=0 || rok%400==0 )?"przestepny":"nieprzestepny");
return 0;
}
Wyszukiwarka
Podobne podstrony:
31 05 2012 10 09 2012 1 06 2012
Obwieszczenie Ministra Środowiska z 10 09 2012 w sprawie wysokości stawek opłat
trackery 10 09 2012, 15,02
daily technical report 2012 10 01
więcej podobnych podstron