Zadania bardzo proste (dop) |
Napisz program, który wypisze liczbę pi:
|
Napisz program, który poprosi użytkownika o liczbę rzeczywistą x i wypisze na ekranie w sposób estetyczny:
|
Napisz program, który:
Liczba a wynosi 3, liczba b wynosi 5
a+b a-b a*b a mod b b div a
8 -2 15 3 1
|
Napisz program, w którym zadeklarujesz procedurę gora, która będzie działać następująco:
Wywołanie: gora('*'); ** **** ****** ******** **********
wywołanie gora('+'); ++ ++++ ++++++ ++++++++ ++++++++++
wywołanie gora('0'); 00 0000 000000 00000000 0000000000
itd. |
Napisz program, w którym zadeklarujesz procedurę o nazwie Trójkąt, która będzie działać w następujący sposób: przy wywołaniu Trojkat(1); wypisze na ekranie: 1
1 2 2
1 2 2 3 3 3
Wskazówka: Skorzystaj z dwóch zagnieżdżonych pętli FOR
|
Zmodyfikuj procedurę Trójkąt z poprzedniego zadania tak, aby działała w następujący sposób: przy wywołaniu Trojkat(1); wypisze na ekranie: 1 przy wywołaniu Trojkat(2); wypisze na ekranie: 2 2 1
3 3 3 2 2 1
|
Skonstruuj procedurę góra, która będzie działać następująco: wywołanie gora('*',5); wypisze na ekranie ** **** ****** ******** **********
++ ++++ ++++++ itd. Spróbuj teraz wywołać procedurę góra w następujący sposób: gora(5,'*'). Co się stało? DLACZEGO? |
Napisz algorytm (FUNKCJĘ) obliczający wartość premia zgodnie ze wzorem:
dla dowolnej zmiennej całkowitej zyski oraz zdefiniowanej stałej p = 25. |
Napisz program obliczający wartość z wyrażenia zgodnie ze wzorem:
dla dowolnie zadeklarowanej zmiennej rzeczywistej x i stałej p = 7.5. Wyświetlając wynik zastosuj ograniczenie do 3 miejsc po przecinku. |
Napisz program w którym użytkownik podaje 10 liczb rzeczywistych, a program wyświetla ich sumę. (wskazówka: zdefiniuj typ tablicowy). Wsk. Zdefiniuj funkcję suma, do której jako parametr przekażesz tablicę wartości. |
Napisz procedurę, który zamienia wartości dwóch zmiennych podanych jako parametry. |
Napisz 2 procedury, które dla podanych jako parametr wartości promienia lub średnicy koła wyliczają: · pole koła
· obwód koła |
Napisz program, który wczytuje pewną liczbę całkowitą i podaje, ile wynosi liczba: setek, dziesiątek, jedności. Wykorzystaj funkcje DIV i MOD. |
Napisz funkcję, która sumuje wszystkie cyfry podanej jako parametr liczby całkowitej i przetestuj ją w programie.
|
Napisz procedurę, która wypełnia tablicę podaną jako parametr, liczbami losowymi
|
Napisz program, który wczytuje temperaturę w stopniach Celsjusza i podaje ją w stopniach Kelwina. WSK. zdefiniuj funkcję |
Napisz program, który sumuje liczby całkowite z przedziału n..m, gdzie liczby n i m są podane przez użytkownika. |
Napisz program, który znajduje miejsce zerowe funkcji liniowej y = a*x + b WSK. Zdefiniuj funkcję y z parametrami a,b i x |
Napisz program wypisujący wszystkie podzielniki wpisanej przez użytkownika liczby całkowitej z zakresu od 1 do 1000. |
Napisz funkcję, w której wczytywane są kolejne liczby podawane przez użytkownika i zliczana jest ich suma, aż do wpisania liczby 0. (wsk. pętla repeat...until) |
Napisz program, w którym użytkownik podaje numer miesiąca, w którym się urodził. Wyświetl na ekranie tekst: `Miesiąc w którym się urodziłeś to: .........', gdzie miesiąc jest wyświetlany słownie (wykorzystać instrukcję case) |
Napisz program obliczający wartość wyrażenia
|
Zbadaj czy z docinków a, b, c można zbudować trójkąt i określ typ tego trójkąta. |
|
Zadania proste (dst) |
Napisz funkcję, która odwraca kolejność znaków w łańcuchu. Np. las -- sal |
W tablicy dwuwymiarowej znaleźć maksymalne elementy w poszczególnych kolumnach i minimalne w każdym wierszu, |
Napisz program - tabliczkę mnożenia dla liczb 1..10 i wyświetl ją w postaci krzyżowej (tablica 10x10). WSK. Procedura |
Napisz program (funkcję) obliczający wartość wyrażenia
|
Napisz program w którym wypełnisz tablicę [12x18] liczbami losowymi (procedura) i wyświetlisz liczbę maksymalną w tej tablicy (funkcja). |
Napisz procedurę, która wczytuje wartości pól do rekordu typu osoba (o polach: imię, nazwisko, wiek, czy_dzieci). |
Pamiętając, że pierwiastki równania kwadratowego
napisz program, który poprosi użytkownika o podanie współczynników a, b, oraz c, a następnie wyliczy na podstawie tych współczynników pierwiastki równania kwadratowego (zgodnie z podanymi wyżej wzorami) i wypisze je na ekranie |
Napisz procedurę, która wypełnia tablicę podaną jako parametr, liczbami losowymi |
Napisz program, który umożliwi zamianę wszystkich znaków w tekście przez podany znak. |
Napisz program (funkcję) na obliczanie średniej arytmetycznej liczb, który:
|
Napisz program, w którym użytkownik podaje dowolny łańcuch o długości nie większej niż 50 znaków. Powtarzaj wczytywanie dopóki łańcuch nie będzie miał odpowiedniej długości.(wsk. pętla repeat ...until; w przypadku gdy łańcuch ma dł>50 znaków wyświetl komunikat i z powrotem informację `Podaj dowolny łańcuch o długości nie większej niż 50 znaków'). Następnie wyświetl na ekranie: długość podanego łańcucha, ilość wyrazów w tym łańcuchu (wsk. policz spacje) oraz wyświetl łańcuch tak, aby wszystkie litery a były wyświetlane A. WSK. funkcja zliczająca ilość wyrazów w łańcuchu, procedura zamieniająca znaki |
Napisz program, w którym zdefiniujesz typ rekordowy określający datę (dzień, miesiąc, rok). Użytkownik podaje dwie daty (swojego urodzenia i obecną), a program wyświetla je na ekranie. WSK. Procedura wczytująca dane do rekordu |
Napisz program który wczytuje z klawiatury dwa napisy i funkcję która oblicza ile znaków pierwszego napisu jest takich samych jak odpowiednie znaki (na takiej samej pozycji licząc od początku) drugiego napisu. Np. Dla napisów: Ala ma kota Ola lubi matematykę Są 4 znaki takie same na pozycjach 2,3,4(spacja) i 10. |
Napisz procedurę wczytującą dane do rekordu osoba (pola: nazwisko, imię, kolor oczu), następnie napisz procedurę, która wyświetla wszystkie osoby o niebieskich oczach. Przetestuj w programie. |
Napisz program, który, wczytuje losowo do tablicy 50 elementowej liczby z zakresu (0..30). Zadaniem programu jest wypisanie indeksów elementów tablicy, których wartość wynosi k, gdzie k jest podane przez użytkownika. Jeśli nie ma takiego elementu, wypisuje komunikat „brak elementu równego k w tablicy”. Następnie wyświetlana jest suma elementów znajdujących się w tablicy. Np. mając daną tablicę: 3 4 0 1 0
Na ekranie pojawia się komunikat: Elementy tablicy, których wartość wynosi 0 są w tablicy na pozycji: 3, 5 Suma elementów tablicy = 8; (*zdefiniować procedury realizujące podane zadania oraz procedurę wyświetlającą tablicę i wykorzystać ją w programie) |
|
Zadania proste /niebanalne (db) |
Napisz program, który, wczytuje losowo do tablicy 20 elementowej liczby z zakresu (0..5). Zadaniem programu jest wypisanie indeksów elementu tablicy, którego wartość wynosi 0. Jeśli nie ma takiego elementu, wypisuje komunikat „brak elementu zerowego”. |
Napisz program zamiany liczby arabskiej na rzymską. |
Napisz program, w którym stworzysz typ rekordowy punkt. W programie użytkownik podaje współrzędne dwóch punktów |
Napisz program, w którym zadeklarujesz i wykorzystasz funkcję liczącą x do potęgi y. |
Napisz program, który przeczyta z klawiatury Twoje imię i nazwisko jako osobne dane typu string a następnie połączy je |
Napisz funkcję, która sprawdza czy liczba jest pierwsza. W programie przy pomocy tej funkcji sprawdzić które z liczb znajdujących się w pliku tekstowym są pierwsze i wyświetlić je na ekranie.
|
Napisz program, który realizuje zamianę systemu dziesiętnego na system dwójkowy (i na odwrót). Użytkownik podaje liczbę całkowitą w systemie dziesiętnym, a program wyświetla ją w systemie dwójkowym (i na odwrót). |
Napisać program umożliwiający wpisanie tekstu o długości nie przekraczającej 15 znaków lub zakończonego znakiem $ przydzielić do grupy znaków takich jak: litery, cyfry, operatory i znaki specjalne określając jednocześnie liczebność każdej grupy. Dla każdego znaku tekstu, w osobnym wierszu wyprowadzić ten znak i nazwę grupy do której należy np.: a- litera, 5 - cyfra itd. |
Napisać program który utworzy tablicę tab2, której każdy element jest iloczynem minimalnej liczby z i-tego wiersza przez maksymalną liczbę z j-tej kolumny tablicy dwuwymiarowej tab1. |
Wczytane są dwie liczby naturalne a i b (a>b). Program ma podać wszystkie liczby pierwsze z przedziału <a,b> i zapisac je do pliku tekstowego. |
Napisać program znajdowania N ( gdzie n parametr programu) składników następującej sumy, na przykład dla: n=3 wynik: 1+22+333 |
Napisz program sprawdzający czy podany łańcuch lub liczba jest palindromem. (napisać podprogramy realizujące zadanie) |
|
Zadania trudniejsze (bdb) |
Liczba 151 jest palindromem pierwszym, tzn. jest to liczba pierwsza, która jest palindromem. Napisz program wypisujący wszystkie palindromy pierwsze nie mniejsze niż a i nie większe niż b. Np. dla a=5, b = 200 - wynik: 7,11,101,131,181,191. |
Napisać podprogram który dla tablicy dwuwymiarowej zawierającej liczby rzeczywiste sumuje elementy tej tablicy leżące |
Napisać program zamiany wiersza i-tego z kolumną j-tą, gdzie i oraz j są odpowiednio numerami wiersza i kolumny, na przecięciu których umieszczony jest element maksymalny. Tablica zawiera n wierszy i tyle samo kolumn. |
Napisz program, który w dowolnym ciągu temperatur (min 10) znajduje największy skok temperatur, tzn. największą, co do wartości bezwzględnej różnicę pomiędzy kolejnymi wyrazami ciągu. WSK. Wartości temperatur odczytać z pliku tekstowego. |
Napisz program, który przetwarza dane słowo ustawiając litery w słowie w porządku alfabetycznym, na przykład słowo „burak” tworzy słowo: „abkru”. |
Pamiętając, że pierwiastki równania kwadratowego
napisz program, który poprosi użytkownika o podanie współczynników a, b, oraz c, a następnie wyliczy na podstawie tych współczynników pierwiastki równania kwadratowego (zgodnie z podanymi wyżej wzorami) i wypisze je na ekranie Następnie wykorzystaj napisany program do rozwiązania równania: 0.9x2 - 1.22x + 0.05 = 0 Zmodyfikuj program do rozwiązywania równania kwadratowego w taki sposób, aby: - można było rozwiązać wiele kolejnych równań kwadratowych bez konieczności ponownego uruchamiania programu (pętla repeat); - ciało programu wywoływało trzy procedury:
- parametr odp (zwracany przez procedurę zapytaj_co_dalej) powinien być wykorzystany jako warunek sterujący pętlą repeat (patrz punkt 1). |
Napisz program na obliczanie średniej arytmetycznej, który:
Zmodyfikuj program z poprzedniego zadania tak, aby wczytywał dane z pliku, w którym najpierw podano liczbę danych, |
Napisz program, w którym zdefiniujesz typ rekordowy ulamek i wykonasz dodawanie dwóch ułamków podanych przez użytkownika. (ułamki o różnych mianownikach, wynik wyświetl w postaci ułamka po skróceniu) |
Napisać program, który wczyta dane do tablicy 2-wymiarowej [n × n] i obliczy sumę elementów tablicy według podanego poniżej wzoru t1[i,j]+t2[i,j]=t3[i,j] gdzie i i j są odpowiednio numerami wiersza i kolumny a następnie ją wyświetli |
Określ liczbę odpowiednich banknotów i monet potrzebnych do wypłacenia pracownikowi wypłaty przy założeniu, że wypłata jest dokonywana przy użyciu najmniejszej liczby wypłacanych banknotów i monet oraz że znane są wartości banknotów, monet |
Liczby zaprzyjaźnione to takie liczby, z których każda jest równa sumie podzielników właściwych drugiej liczby. Napisać program znajdujący 4 pary liczb z przedziału od 1 do 5600 |
Dany jest ciąg k liczb rzeczywistych (k <= 50). Napisz program znajdowania i drukowania numeru i wartości takiego elementu ciągu, którego wartość różni się minimalnie od średniej arytmetycznej wszystkich elementów ciągu. |
Zadania trudne (cel) |
Napisz funkcję rekurencyjną realizującą obliczanie wartości n tego elementu ciągu Legrandre'a metodą iteracyjną, którego elementy są opisane w poniższy sposób: Po(x)=1 P1(x)=x Pn(x)= ((2n-1)/n)Pn-1(x)- ((n-1)/n)Pn-2(x) dla n>1 |
Oblicz NWD dwóch liczb metodą odejmowania i Euklidesa. Zaprojektuj menu programu wykorzystując instrukcję wyboru CASE. |
Napisz program realizujący zamianę dowolnego systemu liczbowego na inny system. W menu programu zaprojektuj wybór systemu początkowego i docelowego. Jedną z opcji powinna być możliwość zamiany liczby z dowolnego systemu na wszystkie pozostałe i wyświetlenie wyników. Program działa dopóki użytkownik nie wybierze z menu opcji wyjścia z programu. |
n-cyfrowa liczba naturalna jest liczbą Amstronga, jeśli jest równa sumie n-tych potęg swoich cyfr. Np. liczba 153=13+53+33. Napisać program znajdujący 2 i 3 cyfrowe takie liczby. |
Diagram przedstawia plan osiedla, które składa się Napisz program realizujący rozwiązanie zadania.
|
Napisać funkcję rekurencyjną obliczającą
Jak czas obliczania f(n) oraz zajętość stosu zależy od n? Przebuduj funkcję tak, aby f(n -1) było obliczane tylko jednokrotnie. |
Napisać funkcję rekurencyjną obliczania wartości funkcji Ackermanna dla m, n ∈ N:
Sprawdzić, dla jakich m i n możliwe jest obliczenie wartości tej funkcji. Ile wywołań funkcji rekurencyjnej jest konieczne do obliczenia kolejnych wartości funkcji A(m,n). |
Napisać funkcję rekurencyjną obliczania wartości zmodyfikowanej funkcji Ackermanna dla m, n ∈ N
Sprawdzić, dla jakich m i n możliwe jest obliczenie wartości tej funkcji. Ile wywołań funkcji rekurencyjnej jest konieczne do obliczenia kolejnych wartości funkcji A(n, m). |
Napisać funkcję rekurencyjną obliczania największego wspólnego dzielnika dla m, n ∈ N. |
Napisać funkcję rekurencyjną umożliwiającą rozwiązanie problemu Wieże Hanoi. |
Napisać program wybierający drogę przemieszczania skoczka szachowego po szachownicy, tak by nie wkroczył dwa razy na to samo pole i przebył wszystkie pola szachownicy. |
Napisać rekurencyjną funkcję wypisującą nieujemną liczbę całkowitą w zapisie dwójkowym (Uwaga na właściwą kolejność wypisywanych cyfr!). |
Sprawdzić rekurencyjnie, czy podany łańcuch tekstowy jest palindromem (wygląda identycznie czytany od przodu i od tyłu , np. "kajak " lub "kobyła ma mały bok"). |
Napisać rekurencyjną funkcję odwracającą kolejność liczb w tablicy n-elementowej. |
Napisać rekurencyjną funkcję rozkładającą liczbę n ∈ N na czynniki pierwsze. |
Napisać funkcję realizującą wyszukiwanie binarne liczby x w posortowanej tablicy. |
Porównać czasy obliczeń i zajętość stosu w poniższych metodach obliczania silni dla n ∈ N.
a)
b) Znajdź największą (dla danego typu wyniku) wartość n, dla której uzyskuje się jeszcze prawidłowy wynik. Napisz funkcję liczącą silnię zabezpieczoną przed podawaniem nieprawidłowego wyniku. |
Napisać program symulacyjny "Grę w Życie". Zasady gry w Życie. Gra w Życie jest symulacją odbywającą się na prostokątnej pokratkowanej planszy. Krawędzie planszy są ze sobą sklejone (tzn. idąc w prawo ze skrajnie prawego pola planszy przejdziemy na znajdujące się w tym samym wierszu skrajnie lewe pole i analogicznie w pionie). Każda kratka jest pusta lub zawiera komórkę, która reprezentuje żywego osobnika. Populacja żywych osobników zmienia się z pokolenia na pokolenie wg następujących reguł:
1. Jeżeli żywy osobnik ma co najwyżej jednego żywego sąsiada, to umiera z samotności. 3. Jeżeli żywy osobnik posiada co najmniej dwóch i co najwyżej trzech żywych sąsiadów, to przeżywa. 4. W pustej kratce rodzi się życie, jeżeli sąsiaduje ona z dokładnie 3 kratkami zawierającymi żywe osobniki.
Sąsiadami kratki jest wszystkie 8 otaczających ją kratek. Każda komórka ma ośmiu "sąsiadów", czyli komórki przylegające do niej bokami i rogami. Zauważmy, że „zewnętrzne sklejenie krawędzi” powoduje że każda kratka ma 8 otaczających ją komórek.
Program powinien: a) wczytać ze standardowego wejścia dane zawierające liczbę kroków symulacji i początkowy stan symulacji, b) w kolejnych krokach wyświetlać następujące po sobie układy osobników. Format danych wejściowych: * pierwszy wiersz zawiera liczbę naturalną k określającą liczbę kroków symulacji. * kolejne n-wierszy (n jest stała w programie, ustalamy że będzie ona równa 23) zawiera po n znaków. Każdy znak jest albo znakiem ' ' (spacja - reprezentuje puste pole) albo '*' (osobnik).
Format danych wyjściowych: k bloków o podanym niżej formacie: * n wierszy zawierających po n znaków (' ' i '*') interpretowanych jw. * między każdą kolejną parą bloków jeden wiersz zawierający n znaków '-' (minus)
Pierwszy blok reprezentuje stan początkowy (to, co podano na wejściu), każdy następny blok opisuje stan symulacji po kolejnym jej kroku.
Uwaga: wszystkie wiersze wypisywane przez program powinny mieć dokładnie n znaków. |
Napisz program umożliwiający przeglądanie i modyfikowanie bazy danych przechowującej następujące informacje o osobach:
- imie: napis długości maksymalnie 15 - nazwisko: napis długości maksymalnie 20 - plec: wartość typu wyliczeniowego (kobieta, mężczyzna) - rokUrodzenia: liczba całkowita
Baza danych będzie zapisana w trzech plikach. Pierwszy z nich przechowuje rekordy z informacjami wymienionymi powyżej. Dwa pozostałe pliki (tzw. indeksy) będą plikami liczb całkowitych (longint) zawierającymi numery rekordów bazy danych uporządkowane w kolejności niemalejącej wartości odpowiednio pól "nazwisko" oraz "rokUrodzenia".
Indeksy pozwolą na efektywną realizację wyszukiwania rekordów. Jeżeli np. pojawi się potrzeba odnalezienia rekordu o określonej wartości pola "rokUrodzenia", zastosujemy wyszukiwanie binarne jego numeru w indeksie.
Program będziemy wywoływali z trzema parametrami będącymi kolejno: nazwą pliku rekordów, nazwą pliku indeksu dla pola "nazwisko" i nazwą pliku indeksu dla pola "rokUrodzenia".
Po uruchomieniu program oczekuje na polecenia wydawane przez użytkownika. Polecenie wydajemy wprowadzając w oddzielnym wierszu pojedynczą literę, a następnie, w kolejnych wierszach, ewentualne argumenty polecenia.
Niektóre polecenia wymagają od programu wyświetlenia zawartości rekordów. Każdy rekord należy wyświetlać w oddzielnym wierszu podając kolejno: fizyczny numer rekordu w bazie danych, spacje, imię, spacje, nazwisko, spacje, płeć (napis kobieta lub mężczyzna), spacje i rok urodzenia.
Program powinien wykonywać następujące polecenia:
i - wyszukanie w bazie wszystkich osób o imieniu będącym argumentem polecenia. W odpowiedzi wyświetlamy zawartości odnalezionych rekordów. n - wyszukanie w bazie osób o podanym jako argument nazwisku. p - wyszukanie osób o podanej płci. Argumentem będzie napis: kobieta lub mężczyzna r - wyszukanie osób urodzonych w podanym roku a - wyświetlenie wszystkich rekordów bazy danych uporządkowanych wg niemalejącej wartości pola "nazwisko" o - wyświetlenie wszystkich rekordów bazy danych uporządkowanych wg niemalejącej wartości pola "rokUrodzenia"
d - dodanie rekordu do bazy danych. Argumentami polecenia będą wartości, które należy umieścić w poszczególnych polach. u - usunięcie rekordu o numerze podanym jako argument k - zakończenie pracy z bazą danych
Operacje szukające rekordów wg wartości pól "nazwisko" i "rokUrodzenia" powinny korzystać z indeksów bazy danych. Operacje dodawania i usuwania do bazy danych powinny także aktualizować pliki indeksów.
Należy zadbać o to, by po usunięciu rekordu z bazy danych nie pozostała w niej "dziura". W tym celu należy w miejsce po usuniętym rekordzie przenieść ostatni rekord bazy.
|
2
2
5
2
1
4
2
3
2
5
3
1
1
4
2
2
3
2
2
3
1
2
4
3