Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- #####################################################################################
- W niniejszym kolokwium do zdobycia jest 79 punktów.
- Należy nie usuwać komentarzy a kod pisać bezpośrednio pod nimi.
- Nie należy definiować zmiennych o ile nie jest to treścią zadania.
- W niektórych zadaniach, jest wskazane, co powinno zostać wyświetlone w konsoli.
- Treść do wyświetlenie, jest umieszczona w komentarzach pomiędzy prami linii gwizdek
- początku ciągu Fibbonaciego, takimi jak poniżej:
- ******** ***** *** ** * *
- ***** *** ** * *
- Jeśli w przedstawianym tekście pojawią się znaki specjalne, będzie to oznaczać,
- że w tym miejscu, treść zależy od przebiegu działania programu.
- #####################################################################################
- */
- /*
- Definicje stałych (3p)
- Zdefiniuj stałą _C_ przechowującą znak C,
- stałą _bezsens_ przechowującą wartość 75,68,
- stałą _napisy_ przechowującą wartość 100.
- */
- #define _C_ "C"
- #define _bezsens_ 75.68
- #define _napisy_ 100
- /*
- Biblioteki(3p)
- Załącz potrzebne i tylko potrzebne biblioteki
- */
- #include<stdio.h>
- #include<stdlib.h>
- #include<math.h>
- #include<time.h>
- int main () {
- /*
- Deklaracja zmiennych(8p)
- W czterech liniach kodu (możesz użyć maksymalnie czterech średników) zadeklaruj:
- zmienne do przechowywania liczb całkowitych o nazwach: sensWszystkiego, iter, celZyciaInf, celZyciaSup,
- wskaźniki do zmiennych przechowujących liczby całkowite o nazwach: celZycia, szukamCeluZycia,
- zmienną do przechowywania znaków o nazwie: znak,
- zmienną do przechowywania liczb zmiennoprzecinkowych o nazwie: liczymy.
- */
- printf("%d",2+2*2);
- int sensWszystkiego, iter, celZyciaInf, celZyciaSup;
- int *CelZycia, *SzukamCeluZycia;
- char znak;
- float liczymy;
- /*
- Menu(1p)
- Wypisz w konsoli następujący tekst
- ******** ***** *** ** * *
- Co robić?
- a - Znalezc sens wszystkiego i w ogole.
- b - Znalezc cel w zyciu.
- c - To zalezy.
- ***** *** ** * *
- */
- printf("Co robic?\n");
- printf("a - Znalezc sens wszystkiego i wogole.\n");
- printf("b - Znalezc cel w zyciu.\n");
- printf("c - to zalezy.\n");
- /*
- Pobranie znaku i czyszczenie bufora(2p)
- Za pomocą funkcji pobierania znaku (nie scanf) pobierz z konsoli znak
- do zmiennej znak.
- UWAGA: Pamiętaj by wyczyścić bufor ze znaku przejścia do kolejnej linii.
- W przeciwnym razie domyślny przypadek napisanej dalej konstrukcji switch
- nie będzie działał poprawnie.
- */
- //strcpy(znak,"%s");
- znak=getchar();
- /*
- Wymisanie co wybrano(5p)
- Za pomocą instrukcji warunkowej if napisz kod, który zrealizuje następujący
- schemat działania:
- - Jeśli w zmiennej znak przechowywana jest jedna z wartości: a, b lub c,
- to na ekranie zostanie wypisany tekst
- ******** ***** *** ** * *
- wybrano opcje: &
- ***** *** ** * *
- gdzie & - wartość przechowywana w znak.
- wypisanie wartości przechowywanej w znak oraz przejście do kolejnej lini
- należy zrealizować za pomocą funkcji do wypisywania znaków (nie scanf).
- - W przypadku przeciwnym zostaje wypisana treść oraz przejście do kolejnej linii.
- ******** ***** *** ** * *
- Jest zle.
- ***** *** ** * *
- */
- if(znak=='a' || znak=='b' || znak=='c') {
- printf("wybrano opcje: %c\n", znak);
- } else {
- printf("jest zle");
- }
- /*
- Główny podział działania programu(5p)
- Korzystając z instukcji switch oraz zmiennej znak, zrealizuj kolejne przypadki działania programu.
- Działanie switch
- Jesli w zmiennej znak przechowywany jest znak "a", to wykonywany jest kod 1.
- Jesli w zmiennej znak przechowywany jest znak "b", to wykonywany jest kod 2.
- Jesli w zmiennej znak przechowywany jest znak "c", to wykonywany jest kod 3.
- W przypadku domyślnym wykonywany jest kod 4.*/
- //printf("jesli w zmiennej jest znak 'a' to wykonywany jest kod 1");
- //printf("jeżeli w zmiennej jest znak 'b' to wykonywany jest kod 2");
- //printf("jeżeli w zmiennej jest znak 'c' to wykonywany jest kod 3");
- /*
- Poszczególne kody
- kod 1. "Sens Wszystkiego" (11p)
- - Po operacji rzutowania na odpowiedni typ, wprowadź wartość przechowywaną
- w stałej _bezsens_ do zmiennej sensWszystkiego,
- - Za pomocą złożonych operatorów przypisania, kolejno powiększ sensWszystkiego o 12,
- podziel sensWszystkiego przez 3, pomniejsz sensWszystkiego o 7,
- - Zastosuj operację dekrementacji do pomniejszenia sensWszystkiego o 1,
- - Za pomocą złożonych operatorów przypisania, kolejno pomnóż sensWszystkiego przez 13,
- wykonaj na sensWszystkiego dzielenie modulo 17,
- - Za pomocą pętli for iterowanej zmienną iter oraz operaci inkrementacji,
- dodaj do sensWszystkiego wartość 40.
- - Za pomocą funkcji printf, wypisz wraz z przejściem do kolejnej linii
- ******** ***** *** ** * *
- Sens wszystkiego to $
- ***** *** ** * *
- gdzie & jest wartością przechowywaną w sensWszystkiego.
- kod 2. "Cel w życiu" (20p)
- - Zainicjalizuj finkcję losującą (nie są potrzebne dodatkowe zmienne lecz w ostateczności można coś zadeklarować),
- - wylosuj i zapisz do celZyciaInf liczbę całkowitą z przedziału od 36 do 42 (dla wątpiących: włącznie z 36 i 42),
- - wylosuj i zapisz do celZyciaSup liczbę całkowitą z przedziału od 43 do 45 (dla wątpiących: włącznie z 43 i 45),
- - za pomocą funkcji printf wypisz wraz z przejściem do kolejnej linii
- ******** ***** *** ** * *
- No to szukaj. Twoj cel w zyciu lezy gdzies
- ***** *** ** * *
- - za pomocą JEDNEJ funkcji printf wypisz wraz z przejściem do kolejnej linii
- ******** ***** *** ** * *
- wsrod liczb calkowitych z przedzialu od # do $
- ***** *** ** * *
- gdzie # - wartość przechowywana w celZyciaInf, $ - wartość przechowywana w celZyciaSup,
- - wylosuj i zapisz do zmiennej celZyciaInf liczbę całkowitą z przedziału od celZyciaInf do celZyciaSup
- (dla wątpiących: włącznie z celZyciaInf i celZyciaSup)
- - ustaw wskaźnik celZycia na celZyciaInf
- - utaw wskaźnik szukamCeluZycia na celZyciaSup
- UWAGA: warunku pętli opisanej poniżej oraz jej wnętrzu, można korzystać tylko ze zmiennych celZycia oraz szukamCeluZycia
- - utwórz pętlę do...while, która przestanie się wykonywać, gdy wartość wskazywana przez celZycia
- będzie taka sama jak wartość wskazywana przez szukamCeluZycia
- - wewnątrz utworzonej w poprzednim punkcie pętli wykonaj następujące zadania (wskazane przez ->)
- -> za pomocą funkcji scanf pobierz z konsoli liczbę do miejsca wskazywanego przez szukamCeluZycia
- -> za pomocą instrukcji if oraz jeszcze innej odpowiedniej instrukcji, omiń dalsze wykonanie pętli
- jeśli wartość wskazywana przez szukamCeluZycia jest ujemna lub większa od 100.
- -> wypisz wraz z przejściem do kolejnej linii
- ******** ***** *** ** * *
- Probuj dalej! Niezle ci idzie! Jestes blisko.
- ***** *** ** * *
- - za pomocą instrukcji warunkowej, wskaźnika na celZycia oraz funkcji printf, zrealizuj następijące działanie (wskazane przez ->)
- -> Jeśli celZycia wskazuje na 42 to wypisz wraz z przejściem do następnej linii
- ******** ***** *** ** * *
- Cel zostal znaleziony. Wynosi on $.
- ***** *** ** * *
- gdzie $ jest wartością wskazywaną przez celZycia
- -> Jeśli celZycia wskazuje na 41 lub 43 to wypisz wraz z przejściem do następnej linii
- ******** ***** *** ** * *
- Zostal znaleziony cel o wartosci $.
- Prawie dobrze, ale lepiej obierz inny cel, proponuje 42.
- ***** *** ** * *
- gdzie $ jest wartością wskazywaną przez celZycia
- -> W przypadku domyślnym wypisz wraz z przejściem do następnej linii
- ******** ***** *** ** * *
- Zostal znaleziony cel o wartosci $.
- Nie jest dobrze, lepiej obierz inny cel, proponuje 42.\n");
- ***** *** ** * *
- gdzie $ jest wartością wskazywaną przez celZycia
- kod 3. "To zależy" (8p)
- - za pomocą funkcji printf wypisz na eranie tekst wraz z przejściem do kolejnej linii
- ******** ***** *** ** * *
- Policzmy zatem pierwiastek kwadratowy jakiejs liczby
- Podaj liczbe:
- ***** *** ** * *
- - pobierz z konsoli wartość do zmiennej liczymy
- - przypisz do zmiennej liczymy pierwiastek z niej samej
- - za pomocą funkcji printf wypisz wraz z przejściem do kolejnej linii
- ******** ***** *** ** * *
- Wyszlo ci: $
- ***** *** ** * *
- gdzie $ - wartość przechowywana w zmiennej liczymy wypisana z dokładnością
- do drugiego miejsca po przecinku
- - za pomocą funkcji printf wypisz na eranie tekst wraz z przejściem do kolejnej linii
- ******** ***** *** ** * *
- A teraz 3.4 potege jakiejs liczby
- Podaj liczbe:
- ***** *** ** * *
- - pobierz z konsoli wartość do zmiennej liczymy
- - przypisz do zmiennej liczymy jej wartość podniesioną do potęgi 3,4
- - za pomocą funkcji printf wypisz wraz z przejściem do kolejnej linii
- ******** ***** *** ** * *
- Wyszlo ci: $
- ***** *** ** * *
- gdzie $ - wartość przechowywana w zmiennej liczymy wypisana z dokładnością
- do drugiego miejsca po przecinku
- kod 4. "Reszta"
- - za pomocą funkcji printf wypisz na eranie tekst wraz z przejściem do kolejnej linii,
- ******** ***** *** ** * *
- Naucz sie czytac, pisac oraz porgramowac w $.
- ***** *** ** * *
- gdzie $ - jest znakiem przechowywanym w stałej _C_,
- - zaalokuj statycznie dwie tablice znaków o rozmiarze przechowywanym w stałej _napisy_
- oraz o zazwach Imie, Nazwisko,
- - zaalokuj dynamicznie tablicę znaków o rozmiarze przechowywanym w stałej _napisy_
- oraz o nazwie czytamyPiszemy,
- - za pomocą funkcji printf wypisz na eranie tekst wraz z przejściem do kolejnej linii,
- ******** ***** *** ** * *
- Zaczynamy od czytania - z konsoli. Podaj swoje imie:
- ***** *** ** * *
- - za pomocą jednego wywołania odpowiedniej funkcji, pobierz z konsoli ciąg znaków i zapisz
- w tablicy Imie,
- - za pomocą funkcji printf wypisz na eranie tekst wraz z przejściem do kolejnej linii,
- ******** ***** *** ** * *
- A teraz nazwisko:
- ***** *** ** * *
- - za pomocą jednego wywołania odpowiedniej funkcji, pobierz z konsoli ciąg znaków i zapisz
- w tablicy Nazwisko,
- - za pomocą funkcji printf wypisz na eranie tekst wraz ze spacją na końcu,
- ******** ***** *** ** * *
- To teraz pisanie - na konsoli: Nazywasz sie
- ***** *** ** * *
- - przepisz zawartość tablicy Imie do tablicy czytamyPiszemy,
- - dołącz znak spacji do treści przechowywanej w tablicy czytamyPiszemy,
- - dołącz zawartość tablicy Nazwisko do treści przechowywanej w tablicy czytamyPiszemy,
- - za pomocą jednego wywołania odpowiedniej funkcji, wypisz w konsoli
- zawartość przechowywaną w tablicy czytamyPiszemy,
- - bez wykorzystania funkcji strcpy wypisz w konsoli znak przejścia do kolejnej linii,
- - zwolnij zaalokowane dynamicznie miejsce w pamięci.
- */
- switch(znak) {
- case 'a':
- printf("kod 1 - sens wszystkiego");
- sensWszystkiego = (int)_bezsens_;
- sensWszystkiego=(sensWszystkiego+12)/3-7;
- --sensWszystkiego;
- sensWszystkiego=(sensWszystkiego*13)%17;
- int iter;
- for(iter =0; iter<40; ++iter) ++sensWszystkiego;
- printf("Sens wszystkiego to %d", sensWszystkiego);
- break;
- case 'b':
- printf("kod 2 - cel w zyciu");
- srand(time(NULL));
- celZyciaInf= (int)((float)rand()/RAND_MAX*(42-36)) + 36;
- celZyciaSup= (int)((float)rand()/RAND_MAX*(45-43)) + 43;
- printf("\nNo to szukaj. Twoj cel w zyciu lezy gdzies");
- printf("\nwsrod liczb calkowitych z przedzialu od %d do %d",celZyciaInf, celZyciaSup);
- celZyciaInf=(int)((float)rand()/RAND_MAX*(celZyciaSup-celZyciaInf)) + celZyciaInf;
- CelZycia = &celZyciaInf;
- SzukamCeluZycia = &celZyciaSup;
- do{
- scanf("%d", SzukamCeluZycia);
- if((*SzukamCeluZycia-50)*(*SzukamCeluZycia-50)>50*50)continue;
- printf("\nProbuj dalej! Niezle ci idzie! Jestes blisko.\n");
- }while(*CelZycia!=*SzukamCeluZycia);
- if(*CelZycia==42)
- printf("Cel zostal znaleziony. Wynosi on 42.");
- else if(*CelZycia==41 || *CelZycia==43)
- printf("\nZostal znaleziony cel o wartosci %d.\nPrawie dobrze, ale lepiej obierz inny cel, proponuje 42.",*CelZycia);
- else printf("\nZostal znaleziony cel o wartosci %d.\nNie jest dobrze, lepiej obierz inny cel, proponuje 42.",*CelZycia);
- break;
- case 'c':
- break;
- default:
- printf("reszta");
- printf("Naucz sie czytac, pisac oraz porgramowac w %s\n",_C_);
- break;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement