Pobierz - Informacje dla uzytkowników serwera antenor.pol.lublin.pl

Transkrypt

Pobierz - Informacje dla uzytkowników serwera antenor.pol.lublin.pl
SKA
EL
E
HN
B
P O LI T
C
IKA
LU
5
LABORATORIUM INFORMATYKI
Programowanie C#
Instrukcje iteracyjne (p tle)
For
while
for(instrukcja; warunek
while(warunek)
powtarzania;instrukcja
instrukcja
przy obrocie) instrukcja
for(int i=0;i<n;i++)
Console.WriteLine(i);
do
{
Do while
instrukcja
} while(warunek);
int i=0;
while(i<n)
Console.WriteLine(i++);
Zadanie do wykonania:
1. Uruchomi poni szy program
2. Zmierzy czas wyszukiwania liczb pierwszych dla ró nych zakresów. Dobra tak
aby czas wyszukiwania był nie mniejszy ni 1 minuta.
3. Zmodyfikowa funkcj bool CzyPierwsza(long x) wg wzoru
bool CzyPierwsza(long x)
{
bool CzyPierwsza = true;
long y = x >> 1;
for (int i = 2; i <= y; i++)
CzyPierwsza = CzyPierwsza && (x % i) != 0;
}
return CzyPierwsza;
Zmierzy czas wyszukiwania przy pomocy nowej wersji funkcji dla zakresu
ustalonego w p. 2. Porówna wyniki z p. 2. Co jest przyczyn zaistniałych ró nic?
4. Zmodyfikowa funkcj bool CzyPierwsza(long x) wg wzoru
bool CzyPierwsza(long x)
{
bool CzyPierwsza = true;
long y = x >> 1;
int i = 2;
while (CzyPierwsza && i <= y)
CzyPierwsza = CzyPierwsza && (x % i++) != 0;
}
return CzyPierwsza;
Zmierzy czas wyszukiwania przy pomocy nowej wersji funkcji dla zakresu
ustalonego w p. 2. Porówna wyniki z p. 2. Co jest przyczyn zaistniałych ró nic?
Program:
using System;
namespace LiczPierw
{
class LiczbyPierwsze
{
bool CzyPierwsza(long x)
{
bool CzyPierwsza = true;
for (int i = 2; i < x - 1; i++)
CzyPierwsza = CzyPierwsza && (x % i) != 0;
return CzyPierwsza;
}
SKA
EL
E
HN
B
P O LI T
C
IKA
LU
LABORATORIUM INFORMATYKI
5
Programowanie C#
//
public void Wyswietl(long n)
{
DateTime start = new DateTime();
DateTime stop = new DateTime();
Console.WriteLine();
start = DateTime.Now;
for (long i = 1; i < n; i++)
if (CzyPierwsza(i))
Console.Write("{0,8}", i);
stop = DateTime.Now;
Console.WriteLine();
Console.WriteLine("{0} {1} {2}", start.TimeOfDay.ToString(),
stop.TimeOfDay.ToString(), (stop.TimeOfDay - start.TimeOfDay).ToString());
}
//
public static void Main(string[] args)
{
LiczbyPierwsze lp = new LiczbyPierwsze();
Console.Write("Zakres: ");
long x = Convert.ToInt64(Console.ReadLine());
lp.Wyswietl(x);
Console.Write("Naci nij <ENTER> aby zako czy .");
Console.ReadLine();
}
}
}
Zadanie do wykonania:
1. Uruchomi poni szy program wy wietlaj cy kolejne wyrazy ci gu
arytmetycznego
2. Zmodyfikowa program, aby dodatkowo obliczał sum i iloczyn tego ci gu
3. Zast p instrukcj for instrukcj While
Program:
using System;
class Program
{
static void Main()
{
Console.WriteLine("Podaj pierwszy wyraz ci gu:");
int a = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("Podaj liczb wyrazów ci gu:");
int n = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("Podaj ró nic pomi dzy wyrazami w ci gu:");
int r = Convert.ToInt16(Console.ReadLine());
Console.WriteLine();
for (int i = 1; i <= n; i++)
{
Console.Write("{0} ", a);
a = a + r;
}
Console.WriteLine();
Console.ReadLine();
}
}

Podobne dokumenty