C1%202012 10 09

background image

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

<iostream>

#include

<math.h>

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<<i<<

" "

<<l/i<<endl;


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 .
Znaleźć następną liczbę doskonałą

#include

<iostream>

#include

<math.h>

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<sqrt(l) ; i++)

if

(l%i==0) {prime=

false

;

break

;}

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;

background image

}

return

liczba;

}

int

main(){

long

long

int

l;

cout <<

"podaj liczbe"

<< endl;

cin >>l;

cout <<

"wprowadzona liczba "

<< ( (doskonala(l)) ?

"jest "

:

"nie jest"

) <<

"doskonala"

<<endl;

cout <<

"Kolejna liczba doskonała to: "

<<kolejna_doskonala(l)<<endl;

return

0;

}

Zadanie 3

Dla dwóch dowolnych liczb naturalnych obliczyć:

a. najmniejsza wspólną wielokrotność
b. największy wspólny dzielnik

#include

<iostream>

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<<

"Wprowadź dwie liczby naturalne"

<<endl;

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: "

<<nwd<<endl<<endl;

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)

background image

#include

<iostream>

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<a*a+b*b) cout<<

"\nTrojkat jest prostokatny"

;

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

<iostream>

using

namespace

std;

int

main(){

int

a,b;

cout<<

"podaj a="

; cin>>a;

cout<<

"podaj b="

; cin>>b;

cout<<

"y="

<<a<<

"x+("

<<b<<

")"

<<endl;

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, "

:

""

)<<endl;

}

background image

Zadanie 6

Podać algorytm sprawdzający czy dany rok jest przestępny

#include

<iostream>

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;

}


Document Outline


Wyszukiwarka

Podobne podstrony:
31 05 2012 10 09 2012 1 06 2012
31 05 2012 10 09 2012 1 06 2012
wyklad 2012 10 25 (Struktury systemów komputerowych)
Rozporz+RM+z+23.10.09+Dz.+U.+190, Straż Graniczna
Ekologia 24[1].10.09, ^ Turystyka i Rekreacja GWSH Katowice, 3 semestr, ekologia
Podstawy marektingu W 10 09 11
Wykład 3 OSOBA FIZYCZNA A OSOBA PRAWNA (23 10 09)
daily technical report 2012 10 03
loveparade 2010 anlage 05 protokoll ag verkehr 20 10 09
ekologia 20.10.09, ekologia
USTAWY-22.10.09, Gospodarka Przestrzenna, GP semestr II, Rysunek tech. i planistyczny
Konspekt 2 10.09 2k., Konspekty klasy 1-3
2012 10 07 cz4
loveparade 2010 anlage 04 protokoll 02 10 09
Fizjoterapia 1 10 10 09 Prezentacja laser wer2
podstawy turystyki 12.10.09, podstawy turystyki

więcej podobnych podstron