
Autor: 03.11.2023
Język C - praktyczne zadania z rozwiązaniami
W tym artykule zaprezentujemy trzy proste zadania w języku C. Są to przykłady zadań, z jakim możesz się spotkać np. na egzamienie albo kolokwium. Do każdego zadania dodaliśmy opis problemu, przykładowe testy funkcji oraz krótkie objaśnienie rozwiązania.
C - Ćwiczenia praktyczne
Sprawdź swoje umiejetności pisania kodu w języku C. Wykonaj wiele zróżnicowanych zadań. Kurs stworzyliśmy w taki sposób, aby objemował jak najszerszy zakres tematów z języka C. Znajdziesz w nim zadanie proste, dotyczące takich tematów jak zmienne czy stałe. Znajdziesz także zadania bardziej złożone, dotyczące takich tematów jak wskaźniki, struktury czy rekurencja. Dowiedz się więcej
Zadanie z użyciem typów wyliczeniowych
Napisz program w języku C, który wykorzystuje typ wyliczeniowy enum Directions do reprezentowania kierunków geograficznych NORTH, SOUTH, EAST, WEST. Następnie zdefiniuj funkcję get_direction(), która przyjmuje jako argument kierunek (wartość typu enum Directions) i zwraca odpowiadający mu znak kierunku ('N' - północ, 'S' - południe, 'E' - wschód, 'W' - zachód).
Oczekujemy, że funkcja calculate_circle_area() spełni następujące testy:
- get_direction(EAST) -> E
- get_direction(NORTH) -> N
- get_direction(WEST) -> W
- get_direction(SOUTH) -> S
Jak możesz podejsć do tego problemu? Oto proponowane przez nas rozwiązanie:
#include <stdio.h>
enum Directions {NORTH, SOUTH, EAST, WEST};
char get_direction(enum Directions dir) {
char sign_direction[] = {'N', 'S', 'E', 'W'};
return sign_direction[dir];
}
int main(void) {
printf("%c \n", get_direction(NORTH));
printf("%c \n", get_direction(SOUTH));
printf("%c \n", get_direction(EAST));
printf("%c \n", get_direction(WEST));
return 0;
Po skompilowaniu kodu, wszystko działa prawidłowo. Nasze zadanie to przykład prostego, praktycznego użycia typu wyliczeniowego w języku C.
Zadanie - funkcja operująca na znakach
Napisz funkcję w języku C, która będzie w stanie przekonwertować cyfrę zapisaną jako znak, na cyfrę (liczba całkowita).
Oczekujemy, że funkcja convert_to_digit() spełni następujące testy:
- convert_to_digit(‘1’) -> 1
- convert_to_digit(‘5’) -> 5
- convert_to_digit(‘7’) -> 7
- convert_to_digit(‘0’) -> 0
Oto proponowane przez nas rozwiązanie:
#include <stdio.h>
#include <stdlib.h>
int convert_to_digit(char c) {
char digit[2] = {c, '\0'};
return atoi(digit);
}
int main(void) {
printf("%d \n", convert_to_digit('1'));
return 0;
}
Rozwiązanie jest proste. Używamy funkcji atoi() z biblioteki stdlib. Za jej pomocą możemy skonwertować wartość ciągu znaków na liczbę całkowitą.
Zadanie z użyciem wskaźników oraz struktur
Zaimplementuj funkcję calculate_total(), która przyjmuje wskaźnik do struktury Product, reprezentującej produkt w sklepie. Struktura Product zawiera pole price (cena produktu) i pole quantity (ilość produktów). Funkcja calculateTotal() ma obliczać całkowity koszt zakupu danego produktu (price * quantity) i zwracać go jako wynik.
Oczekujemy, że funkcja calculate_total() spełni następujące testy:
- calculate_total(&products[0]) -> 2400
- calculate_total(&products[1]) -> 2100
- calculate_total(&products[2]) -> 0
Jak zwykle zaproponujemy rozwiazanie zadania:
#include <stdio.h>
struct Product {
double price;
int quantity;
};
struct Product products[3] = {{1200.0, 2}, {2100.0, 1}, {0.0, 10}};
double calculate_total(struct Product *product) {
return product->price * product->quantity;
}
int main(void) {
double total1 = calculate_total(&products[0]);
printf("Total for the first product: %.2f\n", total1);
double total2 = calculate_total(&products[1]);
printf("Total for the second product: %.2f\n", total2);
double total3 = calculate_total(&products[2]);
printf("Total for the third product: %.2f\n", total3);
return 0;
}
W kodzie mamy funkcję calculate_total(), która przyjmuje wskaźnik do struktury Product i zwraca wynik mnożenia ceny produktu przez jego ilość.
C - Ćwiczenia praktyczne
Sprawdź swoje umiejetności pisania kodu w języku C. Wykonaj wiele zróżnicowanych zadań. Kurs stworzyliśmy w taki sposób, aby objemował jak najszerszy zakres tematów z języka C. Znajdziesz w nim zadanie proste, dotyczące takich tematów jak zmienne czy stałe. Znajdziesz także zadania bardziej złożone, dotyczące takich tematów jak wskaźniki, struktury czy rekurencja. Dowiedz się więcej
Podsumowanie
Trzy zadania z tego artykułu to tylko wybrane przykłady zadań, z jakimi możesz się spotkać np. na egzaminie. Potraktuj więc je, jako pewien wycinek wiedzy, którą musisz posiadać.