Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

9.06.

2021 Kolokwium - termin 1 (12:07 - 13:17) (60 minut)

Kokpit Kursy Wydział Inżynierii Mechanicznej i Informatyki Informatyka

Programowanie aplikacji internetowych Paradygmaty programowania - laboratorium - PD 2020/21ST

Kolokwium z laboratoriów Kolokwium - termin 1 (12:07 - 13:17) (60 minut)

Pytanie 1

Odpowiedź zapisana

Punkty: 10,00

F#: Napisz funkcję rekurencyjną, która określi ile razy w danym łańcuchu znaków wystąpiła każda z cyfr. Jeżeli
jakaś cyfra nie występuje w tekście jej wartość w wynikach powinna zawierać 0

let rec ileLiczb(slowo:string) =


let rec liczba(s:string,i:int,n:int,m:int)=
if(n>m)then
liczba(s,i,n,n)
elif (i>s.Length-1) then
m
elif (s.[i]= '0') then
liczba(s,i+1,n+1,m)
elif (s.[i]= '1') then
liczba(s,i+1,n+1,m)
elif (s.[i]= '2') then
liczba(s,i+1,n+1,m)
elif (s.[i]= '3') then
liczba(s,i+1,n+1,m)
elif (s.[i]= '4') then
liczba(s,i+1,n+1,m)
elif (s.[i]= '5') then
liczba(s,i+1,n+1,m)
elif (s.[i]= '6') then
liczba(s,i+1,n+1,m)
elif (s.[i]= '7') then
liczba(s,i+1,n+1,m)
elif (s.[i]= '8') then
liczba(s,i+1,n+1,m)
elif (s.[i]= '9') then
liczba(s,i+1,n+1,m)
else
liczba(s,i+1,0,m)

liczba(slowo,0,0,0)

https://moodle.pcz.pl/mod/quiz/attempt.php?attempt=717626&cmid=333000 1/5
9.06.2021 Kolokwium - termin 1 (12:07 - 13:17) (60 minut)

Pytanie 2

Odpowiedź zapisana

Punkty: 10,00

F#: Zdefiniuj nowy typ Lista reprezentujący listę łączoną mogącą przechowywać wartości dowolnego typu.
Następnie napisz funkcję, która policzy sumę wartości spełniających warunek określony w funkcji przekazanej jako
parametr. Zademonstruj jej działanie.

type Lista<'a>=
| Pusta
| Wezel of 'a*Lista<'a>;;
let agregacja agregat wartoscPoczatkowa drzew =
let rec agregacja wynik =
function
|Puste ->wynik
|Galezie(x,p,Puste) -> agregacja( agregat wynik x) p
|Galezie(x,Puste,p) -> agregacja( agregat wynik x) p
|Galezie(x,l,p)->
agregacja (agregat wynik x) l + agregacja (agregat wynik 0.0) p

agregacja wartoscPoczatkowa drzew

let drzewo=Galezie(2.0,Galezie(2.5,Puste,Puste),Galezie(3.5,Puste,Puste))
let x=agregacja suma 0.0 drzewo

https://moodle.pcz.pl/mod/quiz/attempt.php?attempt=717626&cmid=333000 2/5
9.06.2021 Kolokwium - termin 1 (12:07 - 13:17) (60 minut)

Pytanie 3

Odpowiedź zapisana

Punkty: 10,00

C#: Stwórz klasę Motocykl zawierającą pola Marka, Model, PojemnoscSilnika i RokProdukcji. Zaimplementuj w niej
interfejs IComparable, który pozwoli sortować instancje tej klasy wg. właściwości RokProdukcji. Jeżeli ten będzie
taki sam, to wg. właściwości PojemnośćSilnika.

class Motocykl : IComparable


{
public string Marka { get; set; }
public string Model { get; set; }
public float PojemnoscSilnika{ get; set; }
public int RokProdukcji { get; set; }

public Motocykl(string Marka, string Model, float PojemnoscSilnika, int RokProdukcji)


{
Marka = Marka;
Model = Model;
PojemnoscSilnika = PojemnoscSilnika;
RokProdukcji = RokProdukcji;
}
public int Posortuj(Motocykl obj)
{
int flaga = 0;
if (this.PojemnoscSilnika < obj.PojemnoscSilnika)
{
flaga=-1;
}
else if (this.PojemnoscSilnika > obj.PojemnoscSilnika)
flaga= 1;
else flaga=0;
return flaga;
}
public int CompareTo(object obj)
{
throw new NotImplementedException();
}

https://moodle.pcz.pl/mod/quiz/attempt.php?attempt=717626&cmid=333000 3/5
9.06.2021 Kolokwium - termin 1 (12:07 - 13:17) (60 minut)

Pytanie 4

Odpowiedź zapisana

Punkty: 10,00

C#: Napisz zapytanie LINQ, które dla dowolnej policzalnej kolekcji punktów dwuwymiarowych określi ile punktów
znajduje się w poszczególnych ćwiartkach układu współrzędnych. Wyniki wyświetl w kolejności określonej
numerem ćwiartki malejąco. Punkty mogą być reprezentowane w dowolny sposób.

var c1 = z.Where(p[i].x>0&&p[i].y>0).Count();
var c2 = z.Where(p[i].x<0&&p[i].y>0).Count();
var c3 = z.Where(p[i].x<0&&p[i].y<0).Count();
var c4 = z.Where(p[i].x>0&&p[i].y<0).Count();
Console.WriteLine($"Liczba punktow w 4 cwartce"+c4);
Console.WriteLine($"Liczba punktow w 3 cwartce"+c3);
Console.WriteLine($"Liczba punktow w 2 cwartce"+c2);
Console.WriteLine($"Liczba punktow w 1 cwartce"+c1);

Previous activity
◄ Oświadczenie dotyczące kolokwium

Przejdź do...

Pozostańmy w kontakcie
Kontakt
 www.pcz.pl
 admin@e-learning.pcz.pl

https://moodle.pcz.pl/mod/quiz/attempt.php?attempt=717626&cmid=333000 4/5
9.06.2021 Kolokwium - termin 1 (12:07 - 13:17) (60 minut)

  

 Podsumowanie zasad przechowywania danych

Polityki

https://moodle.pcz.pl/mod/quiz/attempt.php?attempt=717626&cmid=333000 5/5

You might also like