• Nie Znaleziono Wyników

Lista powtórkowa – Programowanie proceduralne 1.

N/A
N/A
Protected

Academic year: 2021

Share "Lista powtórkowa – Programowanie proceduralne 1."

Copied!
2
0
0

Pełen tekst

(1)

Lista powtórkowa – Programowanie proceduralne

1. Napisz program, który wyznacza iloczyn wartości skalarnej c i wektora A o dowolnej liczbie elementów. Mnożenie stałej i wektora ma być wykonane w zdefiniowanej osobno funkcji void iloczyn(int, float, float[]). Wynikiem wyświetlonym w konsoli mają być wartości dwóch wektorów: c * A = Ac. Przetestuj działanie zdefiniowanej funkcji iloczyn().

Przykładowy efekt działania programu dla stałej c = 2 oraz wektora A = {3, 4}:

2. Napisz funkcję, która dla danej tablicy liczb całkowitych o dowolnym rozmiarze ustawi w losowej kolejności występujące w niej liczby. Skompiluj i uruchom program, który wyświetli zawartość tablicy przed i po wywołaniu napisanej funkcji.

3. Zaimplementuj funkcję, która oblicza wskazaną przez użytkownika liczbę z ciągu Catalana.

4. W pliku seria_pomiarowa.dat w pierwszym wierszu znajduje się liczba całkowita określająca liczbę kolejnych wierszy, w kolejnych wierszach jako pary liczb zmiennoprzecinkowych przechowywane są dane o czasie t i położeniu y pewnej cząstki – dane tworzą dwie kolumny oddzielone tabulatorem. Napisz program, który prosi użytkownika o podanie nazwy pliku. Następnie odczytuje z tego pliku liczbę całkowitą n. W dalszej kolejności odczytuje n par liczb rzeczywistych do dwóch tablic n- elementowych. Rozbuduj program o funkcje obliczające przybliżenie pierwszej pochodnej (prędkości) ze wzoru 𝑣𝑖 =𝑦𝑖+1−𝑦𝑖

𝑡𝑖+1−𝑡𝑖 i drugiej (przyspieszenia) ze wzoru 𝑎𝑖 = 𝑦𝑖+2−2∗𝑦𝑖+1+𝑦𝑖

𝑡𝑖+1−𝑡𝑖 . Oczywiście te dwie pochodne da się policzyć dla wszystkich punktów poza ostatnim (i przedostatnim dla przyspieszenia). Wyposaż swój program w możliwość zapisu do pliku wyjściowego, którego nazwę poda użytkownik.

5. Pewna firma prowadzi rekrutację na staż na podstawie średniej z ocen studenta. Napisz strukturę student, która będzie przechowywać dane pojedynczego kandydata, to znaczy powyższą liczbę zmiennoprzecinkową, datę urodzenia, oraz imię i nazwisko (możesz odgórnie zadać rozmiar przechowywanych tablic). Wyposaż ją w funkcje pozwalające nawypisywanie na ekran i odczytywanie z klawiatury danych studenta.

Dodatkowo napisz funkcję, która dla zadanego kandydata i progu na średnią obliczy, czy student powinien zostać przyjęty na staż.

UWAGA: W celu przechowania daty urodzenia studenta napisz strukturę pomocniczą przechowującą trzy składowe typu całkowitoliczbowego reprezentujące dzień, miesiąc i rok.

(2)

6. Napisz program, który poprosi użytkownika o podanie liczby boków wielokąta foremnego oraz długość jego boku, a następnie obliczy oraz wyświetli wartość jego pola i obwodu. W tym celu napisz funkcję, pobierającą dwa argumenty: typu całkowitoliczbowego oraz typu zmiennoprzecinkowego. W funkcji wyświetl wartość pola i obwodu wielokąta. Do wyliczenia pola wielokąta skorzystaj ze wzoru:

P = 1/4 * n * a2 * ctan(π/n), gdzie: a - długość boku i n - liczba jego boków.

7. Napisz program, który poprosi użytkownika o podanie imion i nazwisk, a następnie wyświetli na ekranie napis zawierający stosowne inicjały. W tym celu napisz funkcję inicjaly() operująca na tablicy znaków, która będzie wypisywać na ekran stosowne litery. Postaraj się zwrócić inicjały w postaci dużych liter. Pamiętaj o możliwości posiadania kilku imion/nazwisk, np. Jan Maciej Karol Wścieklica -> J.M.K.W.

8. Zdefiniuj strukturę wymierna modelującą liczbę wymierną w postaci ułamka zwykłego, tzn. w składowych struktury przechowuj wartość licznika i mianownika ułamka.

Wyposaż ją w funkcje pozwalające na wypisywanie na ekran i odczytywanie z klawiatury ułamków zwykłych. Dodatkowo zaimplementuj funkcje umożliwiające:

a. dodawanie dwóch ułamków zwykłych, b. odejmowanie dwóch ułamków zwykłych, c. mnożenie dwóch ułamków zwykłych, d. dzielenie dwóch ułamków zwykłych,

e. porównywanie dwóch ułamków zwykłych (UWAGA: porównujemy liczby a nie ich konkretne zapisy, zapis 2/4 jest inny niż ½, ale to jest ta sama liczba!)

Mianownik powinien być dodatni, a znak liczby przetwarzany jako znak licznika.

Przetestuj działanie napisanych funkcji.

9. Napisz program wczytujący n liczb całkowitych z zakresu od -7 do 10 i wyznaczający ich medianę. W tym celu napisz funkcję median(), która będzie pobierać jako argumenty tablice i jej rozmiar, a zwracać wyznaczoną medianę. W funkcji median() wywołaj pomocnicza funkcje sortowanie(). Przetestuj działanie zaimplementowanych funkcji.

10. Opracuj algorytm obliczania wielkości n!! (przy założeniu n>0), określonej jako n!!=n*(n-2)*...*(n-2k) dla dodatnich czynników, czyli np. 6!!=6*4*2, 7!!=7*5*3*1.

Napisz funkcję, która obliczy podwójoną silnię – spróbuj rozwiązać to zadanie na dwa sposoby rekurencyjnie i iteracyjnie. Skompiluj i uruchom program, który wyświetli obliczony wynik dla argumentu podanego przez użytkownika (wpisanego z klawiatury).

Sylwia Majchrowska

Cytaty

Powiązane dokumenty

• Operator in (not in) można wykorzystać do sprawdzenia, czy wskazany ciąg zawiera się (nie zawiera się) w innym. ciag_tekstowy1

W programie wydziel funkcję, która przyjmuje jako argumenty współczynniki a, b oraz liczbę x, a zwraca jako wynik obliczoną wartość dwumianu.. Program

• Funkcje wywołuje się pisząc jej nazwę oraz nawiasy klamrowe z argumentami przekazywanymi do funkcji.

Napisz program, który prosi użytkownika o podanie dwóch liczb całkowitych, a następnie wypisuje na ekranie wyniki ich mnożenia, dzielenia, dzielenia modulo,

Zastanów się jak powinna wyglądać deklaracja tej funkcji (jakiego typu jest argument, czy funkcja zwraca wartość, jeśli tak to jakiego typu).. Gdzie powinna być umieszczona

Napisz funkcję, która oblicza wartość trójmianu kwadratowego o podanych współczynnikach, dla wskazanego argumentu.. Współczynniki powinny być zapisane w tablicy

Napisz program, który prosi użytkownika o podanie dwóch liczb całkowitych dodatnich, a następnie wyznacza ich najmniejszą wspólną wielokrotność.. Wskazówka:

Czym różnią się między sobą dwa sposoby przekazywania argumentów do funkcji: przez wartość i