30.11.2006

Informatyka w I-szej A
Lista nr 6

Zadania obowiązkowe 

1.	Napisz program, generujący wszystkie liczby pierwsze mniejsze od 10 000000.  Twój program powinien implementować sito Eratostenesa. 
2.	Przeanalizuj niżej napisany program. 

#include<iostream>
using namespace std;
#include<cstdlib>
char a[10];

int main()
{ int i;
 char c;
 cout<<"Podaj dziesiec liter:"<<endl;
 for (i=0; i<10; i++) cin>>a[i];
 cout<<endl<<endl<<"Najpierw odwracanka z przerywnikiem:-)"<<endl;
 for (i=9; i>=0; i--) cout<<a[i]<<',';
 cout<<endl<<endl<< "Teraz kody:"<<endl;
 for (i=0; i<10; i++) cout<<a[i]+0<<" ";
 cout<<endl<< endl<< "A teraz przesuwanka:"<<endl;
 for (i=0; i<10; i++) {c=a[i]+1; cout<<c;}
 cin>>i;
}

Zastanów się, co on robi. Następne uruchom ten program (na żądanie wpisz 10 znaków). 
3.	Litery alfabetu {a, b, c, … , x, y ,z} możemy w naturalny sposób uporządkować cyklicznie: a<b, b<c, …, y<z, z<a. Szyfrem Cezara o przesunięciu k nazywamy przekształcenie, które każdej literze z tego alfabetu przyporządkowuje literę oddaloną od niej o k  pozycji w prawo w uporządkowaniu cyklicznym alfabetu. Napisz program, który wczytuje liczbę k oraz dowolne słowo zbudowane z małych liter a następnie wypisuje słowo powstałe przez zakodowanie słowa wejściowego szyfrem Cezara o przesunięciu k. Zakładamy, że słowo zakończone jest znakiem różnym od  małej litery.

Termin nadsyłania rozwiązań: 4.12.06; godz. 23.59.
	
Zadania nadobowiązkowe
1.	Napisz program, który czyta ciąg liczb naturalnych (zakończony zerem) i wypisuje wszystkie liczby tego ciągu, które są liczbami pierwszymi. Przyjmij następujące założenia:
a.	Wszystkie liczby w ciągu są nie większe od 10 000 000.
b.	Ciąg może zawierać nawet 1000000 liczb.
Uwaga: Twój program będzie testowany na tak długich ciągach. Ponadto będzie on porównywany z programem wzorcowym, który ja napiszę. Nie powinien być od niego dużo wolniejszy. 

.

Krzysztof Loryś