vault backup: 2022-12-19 12:46:22
This commit is contained in:
152
PI/Ćwiczenia/1.Rekurencja.md
Normal file
152
PI/Ćwiczenia/1.Rekurencja.md
Normal file
@@ -0,0 +1,152 @@
|
||||
---
|
||||
date:
|
||||
- 20221024115005
|
||||
- 20221107120342
|
||||
- 20221121122351
|
||||
---
|
||||
# Jak policzyć słowa w książce?
|
||||
```cpp
|
||||
const int rozmiar_książki = 300;
|
||||
int liczba_słów_na_stronie[rozmiar_książki];
|
||||
liczba_słów_na_stronie[2]=20; // <-- 20 słów na stronie 3
|
||||
int suma = liczba_słów_na_stronie[0];
|
||||
for (int nr = 1;nr<rozmiar;nr++){
|
||||
suma+=liczba_słów_na_stronie[nr];
|
||||
}
|
||||
```
|
||||
![[Drawing 2022-10-24 12.04.19.excalidraw]]
|
||||
|
||||
# Funkcja wyliczająca minimum i maksimum
|
||||
|
||||
```CpP
|
||||
void minmax1(double a[],int &min, int &max){
|
||||
max = 0;
|
||||
for (int i = 1; i<n;i++)
|
||||
if (a[i]>a[max]){
|
||||
max = i;
|
||||
}
|
||||
min = 0;
|
||||
for (int i = 1; i<n;i++)
|
||||
if (a[i]<a[max]){
|
||||
min = i;
|
||||
}
|
||||
} //2(n-1)
|
||||
void minmax2(double a[],int &min, int &max){
|
||||
max = min = 0;
|
||||
for (int i = 1; i<n;i++)
|
||||
if (a[i]>a[max]){
|
||||
max = i;
|
||||
};
|
||||
if (a[i]<a[max]){
|
||||
min = i;
|
||||
};
|
||||
} //2(n-1)
|
||||
void minmax3(double a[],int &min, int &max){
|
||||
max = min = 0;
|
||||
for (int i = 1; i<n;i++)
|
||||
if (a[i]>a[max]){
|
||||
max = i;
|
||||
} else if (a[i]<a[max]){
|
||||
min = i;
|
||||
};
|
||||
} // opt n-1 where 1/n!; pes 2(n-1) where 1/n; avg 2(n-1)-ln(n)-C
|
||||
|
||||
```
|
||||
|
||||
```c++
|
||||
# l, p - leftmost rightmist
|
||||
void minmax3(double a[], int l, int p, int &min, int &max){
|
||||
if (l==p){
|
||||
## tablica jednoelementowa
|
||||
min=max=l;
|
||||
} else if (l+1==p) {
|
||||
if (a[l]>a[p]){max=l;min=p;}else{min=l;max=p;}
|
||||
max = l;
|
||||
} else {
|
||||
int m1,m2,M1,M2;
|
||||
minmax3(a,l,(l+p)/2,m1,M1);
|
||||
minmax3(a,l,(l+p)/2+1,m2,M2);
|
||||
if(a[m2]<a[m1])
|
||||
min=m2;
|
||||
else min=m1;
|
||||
if(a[M2]>a[m1])
|
||||
max=M2;
|
||||
else max=M1;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
## Reprezentacja w C++
|
||||
```cpp
|
||||
int f(int m,int m){
|
||||
if(m==1 || n ==1){
|
||||
return 1;
|
||||
} else if (m>n){
|
||||
return f(m-n,n)+f(m,n-1)
|
||||
}else{
|
||||
return 1+f(m,m-1)
|
||||
}
|
||||
}
|
||||
```
|
||||
# Na ile sposobów można przedstawić liczbę 5?
|
||||
5
|
||||
4+1
|
||||
3+2
|
||||
3+1+1
|
||||
2+2+1
|
||||
2+1+1+1
|
||||
1+1+1+1+1
|
||||
|
||||
### Stos:
|
||||
![[20221107120342 2022-11-07 12.08.17.excalidraw]]
|
||||
|
||||
# Trójkąt Sierpińskiego
|
||||
## Grafika:
|
||||
![[20221107120342 2022-11-07 12.15.53.excalidraw]]
|
||||
|
||||
## Kod:
|
||||
```cpp
|
||||
void tr(double bok, double min){
|
||||
if(bok>min){
|
||||
for(int i=0;i<3,i++){
|
||||
tr(bok/2, min);
|
||||
rysuj(bok);
|
||||
obrot(120);
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
# Drzewo:
|
||||
## Rysunek
|
||||
![[20221107120342 2022-11-07 12.22.55.excalidraw]]
|
||||
## Kod:
|
||||
```cpp
|
||||
void galaz(double a){
|
||||
rysuj(a);
|
||||
obrot(45);
|
||||
galaz(2a/3.0);
|
||||
obrot(-90);
|
||||
galaz(2a/3.0);
|
||||
obrot(-135);
|
||||
rysuj(a);
|
||||
obrot(180);
|
||||
}
|
||||
```
|
||||
# Problem skoczka szachowego:
|
||||
## Rysunek:
|
||||
![[20221107120342 2022-11-07 12.48.52.excalidraw]]
|
||||
## Kod:
|
||||
```cpp
|
||||
const n = 8;
|
||||
int Sz[n][n];
|
||||
int dx[8]={1,2,2,1,-1,-2,-2,-1};
|
||||
int dy[8]={2,1,-1,-2,-2,-1,1,2};
|
||||
bool Probuj(int x, int y, int nr){
|
||||
Sz[x][y]=nr;
|
||||
if(nr==n*n) return true;
|
||||
for (int i = 0;i<n;i++)
|
||||
}
|
||||
```
|
||||
```
|
||||
@@ -1,6 +1,8 @@
|
||||
```
|
||||
date: 20221205115525
|
||||
```
|
||||
---
|
||||
date:
|
||||
- 20221205115525
|
||||
- 20221219115224
|
||||
---
|
||||
|
||||
# Notacja Chomsky'ego:
|
||||
$G=<V,\Sigma,P,\sigma>$, gdzie:
|
||||
@@ -61,7 +63,7 @@ $V={a,b,c}$
|
||||
$\Sigma = \{<\alpha>,<\beta>\}$
|
||||
$P = \begin{gathered}\{<\alpha>::= a<\alpha>c|a<\beta>c \\ <\beta>::= a \}\end{gathered}$
|
||||
|
||||
b
|
||||
|
||||
### Nazwy zmiennych:
|
||||
$$\begin{gathered}
|
||||
V=\{a..z,A..Z,0..9\} \\
|
||||
@@ -74,6 +76,7 @@ P=\{<ident>::=<litera>|<ident><litera>|<ident><cyfra>\\
|
||||
|
||||
|
||||
### Adres IP
|
||||
```
|
||||
V={0..9,.}
|
||||
Σ = {<IP>, <bajt>, <l1>,<l2>,<l3>, <0-9>
|
||||
P={<IP>::=<bajt>.<bajt>.<bajt>.<bajt>
|
||||
@@ -85,4 +88,30 @@ P={<IP>::=<bajt>.<bajt>.<bajt>.<bajt>
|
||||
<l3>::=1<0-9><0-9>|2<0-4><0-9>|25<0-5>
|
||||
<0-4>::=0|1|2|3|4
|
||||
<0-5>::=5|<0-4>}
|
||||
σ=<IP>
|
||||
σ=<IP>
|
||||
```
|
||||
|
||||
### SQL INSERT
|
||||
`INSERT INTO tabela (kol1,kol2,kol3) VALUES (23,NULL,-125);`
|
||||
$$\begin{align}
|
||||
V &= \left\{ INSERT, INTO, VALUES, NULL, a-z, 0-9, \ , \ , ; ,(,) \right\}
|
||||
\\
|
||||
\Sigma &= \left\{ <instr>, <nagl>, <reszta>, <nazwa>, <litera>, <cyfra>,<wnetrze>,<wartosc>,<lista\ wartosci>,<liczba> \right\}
|
||||
\\
|
||||
P &=\begin{cases}
|
||||
|
||||
<instr>::=<nagl><reszta> \\
|
||||
<nagl>::= INSERT\ INTO\ <nazwa> \\
|
||||
<nazwa>::= <litera>|<nazwa><litera>|<nazwa><cyfra> \\ \\
|
||||
<litera>::= a|..|z \\
|
||||
<cyfra> ::= 0|..|9 \\
|
||||
<reszta> ::= (<wnetrze>);|VALUES (<lista\ wartosci>); \\
|
||||
<lista\ wartosci>::=<wartosc>|<lista\ wartosci>, <wartosc> \\
|
||||
<wartosc>::=NULL|<liczba> \\
|
||||
<liczba>::=<cyfra>,<liczba><cyfra> \\
|
||||
<wnetrze>::=<nazwa>)VALUES(<wartosc>|<nazwa>,<wnetrze>,<wartosc>
|
||||
\end{cases}
|
||||
\\
|
||||
\sigma &= <instr>
|
||||
|
||||
\end{align}$$
|
||||
@@ -1,48 +0,0 @@
|
||||
## Jak policzyć słowa w książce?
|
||||
```cpp
|
||||
const int rozmiar_książki = 300;
|
||||
int liczba_słów_na_stronie[rozmiar_książki];
|
||||
liczba_słów_na_stronie[2]=20; // <-- 20 słów na stronie 3
|
||||
int suma = liczba_słów_na_stronie[0];
|
||||
for (int nr = 1;nr<rozmiar;nr++){
|
||||
suma+=liczba_słów_na_stronie[nr];
|
||||
}
|
||||
```
|
||||
![[Drawing 2022-10-24 12.04.19.excalidraw]]
|
||||
|
||||
## Funkcja wyliczająca minimum i maksimum
|
||||
|
||||
```CpP
|
||||
void minmax1(double a[],int &min, int &max){
|
||||
max = 0;
|
||||
for (int i = 1; i<n;i++)
|
||||
if (a[i]>a[max]){
|
||||
max = i;
|
||||
}
|
||||
min = 0;
|
||||
for (int i = 1; i<n;i++)
|
||||
if (a[i]<a[max]){
|
||||
min = i;
|
||||
}
|
||||
} //2(n-1)
|
||||
void minmax2(double a[],int &min, int &max){
|
||||
max = min = 0;
|
||||
for (int i = 1; i<n;i++)
|
||||
if (a[i]>a[max]){
|
||||
max = i;
|
||||
};
|
||||
if (a[i]<a[max]){
|
||||
min = i;
|
||||
};
|
||||
} //2(n-1)
|
||||
void minmax3(double a[],int &min, int &max){
|
||||
max = min = 0;
|
||||
for (int i = 1; i<n;i++)
|
||||
if (a[i]>a[max]){
|
||||
max = i;
|
||||
} else if (a[i]<a[max]){
|
||||
min = i;
|
||||
};
|
||||
} // opt n-1 where 1/n!; pes 2(n-1) where 1/n; avg 2(n-1)-ln(n)-C
|
||||
|
||||
```
|
||||
@@ -1,71 +0,0 @@
|
||||
∈# Na ile sposobów można przedstawić liczbę 5?
|
||||
5
|
||||
4+1
|
||||
3+2
|
||||
3+1+1
|
||||
2+2+1
|
||||
2+1+1+1
|
||||
1+1+1+1+1
|
||||
|
||||
## Reprezentacja w C++
|
||||
```cpp
|
||||
int f(int m,int m){
|
||||
if(m==1 || n ==1){
|
||||
return 1;
|
||||
} else if (m>n){
|
||||
return f(m-n,n)+f(m,n-1)
|
||||
}else{
|
||||
return 1+f(m,m-1)
|
||||
}
|
||||
}
|
||||
```
|
||||
### Stos:
|
||||
![[20221107120342 2022-11-07 12.08.17.excalidraw]]
|
||||
|
||||
# Trójkąt Sierpińskiego
|
||||
## Grafika:
|
||||
![[20221107120342 2022-11-07 12.15.53.excalidraw]]
|
||||
|
||||
## Kod:
|
||||
```cpp
|
||||
void tr(double bok, double min){
|
||||
if(bok>min){
|
||||
for(int i=0;i<3,i++){
|
||||
tr(bok/2, min);
|
||||
rysuj(bok);
|
||||
obrot(120);
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
# Drzewo:
|
||||
## Rysunek
|
||||
![[20221107120342 2022-11-07 12.22.55.excalidraw]]
|
||||
## Kod:
|
||||
```cpp
|
||||
void galaz(double a){
|
||||
rysuj(a);
|
||||
obrot(45);
|
||||
galaz(2a/3.0);
|
||||
obrot(-90);
|
||||
galaz(2a/3.0);
|
||||
obrot(-135);
|
||||
rysuj(a);
|
||||
obrot(180);
|
||||
}
|
||||
```
|
||||
# Problem skoczka szachowego:
|
||||
## Rysunek:
|
||||
![[20221107120342 2022-11-07 12.48.52.excalidraw]]
|
||||
## Kod:
|
||||
```cpp
|
||||
const n = 8;
|
||||
int Sz[n][n];
|
||||
int dx[8]={1,2,2,1,-1,-2,-2,-1};
|
||||
int dy[8]={2,1,-1,-2,-2,-1,1,2};
|
||||
bool Probuj(int x, int y, int nr){
|
||||
Sz[x][y]=nr;
|
||||
if(nr==n*n) return true;
|
||||
for (int i = 0;i<n;i++)
|
||||
}
|
||||
```
|
||||
@@ -1,22 +0,0 @@
|
||||
```c++
|
||||
# l, p - leftmost rightmist
|
||||
void minmax3(double a[], int l, int p, int &min, int &max){
|
||||
if (l==p){
|
||||
## tablica jednoelementowa
|
||||
min=max=l;
|
||||
} else if (l+1==p) {
|
||||
if (a[l]>a[p]){max=l;min=p;}else{min=l;max=p;}
|
||||
max = l;
|
||||
} else {
|
||||
int m1,m2,M1,M2;
|
||||
minmax3(a,l,(l+p)/2,m1,M1);
|
||||
minmax3(a,l,(l+p)/2+1,m2,M2);
|
||||
if(a[m2]<a[m1])
|
||||
min=m2;
|
||||
else min=m1;
|
||||
if(a[M2]>a[m1])
|
||||
max=M2;
|
||||
else max=M1;
|
||||
}
|
||||
}
|
||||
```
|
||||
13
PI/Ćwiczenia/3. Projektowanie rozkazów.md
Normal file
13
PI/Ćwiczenia/3. Projektowanie rozkazów.md
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
tags:
|
||||
- MaszynaW
|
||||
Date:
|
||||
- 20221219122625
|
||||
---
|
||||
# Rozkazy w maszynie W
|
||||
|Kod rozkazu| Argument|
|
||||
|:--|--:|
|
||||
|
||||
|
||||
|
||||
![[3. Projektowanie rozkazów 2022-12-19 12.27.09.excalidraw]]
|
||||
@@ -1,6 +1,19 @@
|
||||
!Załączniki# Ćwiczenia Overview
|
||||
# Ćwiczenia Overview
|
||||
|
||||
Kartkówki - 2-3 na semestr
|
||||
|
||||
|
||||
```ad-todo
|
||||
|
||||
W marcu:
|
||||
dr Anna Gorawska - termin wprowadzenia do laboratorium
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
normalne zajęcia od drugiego tygodnia
|
||||
|
||||
|Punkty|Ocena|
|
||||
|:---:|---:|
|
||||
|6.0-6.79|3|
|
||||
|
||||
Reference in New Issue
Block a user