ARRAYS w języku programowania C

W języku programowania C, tablice (arrays) stanowią fundamentalny element, pozwalający na przechowywanie i manipulowanie zestawami danych. Oprócz tego, język C oferuje wiele przydatnych funkcji i zagadnień związanych z obsługą danych i znaków. W tym artykule przyjrzymy się zarówno tablicom, jak i różnym funkcjom oraz zagadnieniom związanym z językiem C.

Tablice (Arrays)

Tablice w języku C są kolekcją elementów tego samego typu, które są przechowywane w pamięci w jednym ciągłym bloku. Każdy element w tablicy ma swój indeks, który pozwala na dostęp do niego. Najczęściej używane typy tablic to tablice jednowymiarowe oraz wielowymiarowe.

Przykład tablicy jednowymiarowej:

#include <stdio.h>

int main() {
    int liczby[5] = {1, 2, 3, 4, 5};

    // Dostęp do elementów tablicy
    printf("Pierwszy element: %d\n", liczby[0]);  // Wyświetli: 1
    printf("Ostatni element: %d\n", liczby[4]);   // Wyświetli: 5

    return 0;
}

Przykład tablicy wielowymiarowej:

#include <stdio.h>

int main() {
    int macierz[2][3] = {{1, 2, 3}, {4, 5, 6}};

    // Dostęp do elementów tablicy wielowymiarowej
    printf("Element [0][1]: %d\n", macierz[0][1]);  // Wyświetli: 2
    printf("Element [1][2]: %d\n", macierz[1][2]);  // Wyświetli: 6

    return 0;
}

Tablica jednowymiarowa: Jest to kolekcja elementów tego samego typu, przechowywanych w jednym wymiarze. Można ją zdefiniować i zadeklarować za pomocą jednej pary nawiasów kwadratowych.

Tablica wielowymiarowa: Jest to kolekcja elementów tego samego typu, przechowywanych w więcej niż jednym wymiarze. Można ją zdefiniować i zadeklarować za pomocą większej liczby nawiasów kwadratowych, które określają liczbę wymiarów.

Przydatne funkcje i zagadnienia

AVG

Funkcja AVG służy do obliczania średniej arytmetycznej z elementów tablicy liczb. Oto przykładowa implementacja:

float avg(int array[], int size) {
    int sum = 0;
    for (int i = 0; i < size; i++) {
        sum += array[i];
    }
    return (float)sum / size;
}

strlen

Funkcja strlen oblicza długość ciągu znaków. Oto przykładowe użycie:

#include <string.h>

int main() {
    char napis[] = "Hello";
    int dlugosc = strlen(napis);
    printf("Długość napisu: %d\n", dlugosc); // Wyświetli: Długość napisu: 5
    return 0;
}

Uppercase i toupper

Funkcje uppercase i toupper służą do zamiany liter na duże litery. Oto przykładowe użycie:

#include <ctype.h>
#include <stdio.h>

int main() {
    char litera = 'a';
    printf("Litera wielka: %c\n", toupper(litera)); // Wyświetli: Litera wielka: A
    return 0;
}

islower

Funkcja islower sprawdza, czy podany znak jest małą literą. Oto przykładowe użycie:

#include <ctype.h>
#include <stdio.h>

int main() {
    char znak = 'a';
    if (islower(znak)) {
        printf("To jest mała litera.\n");
    } else {
        printf("To nie jest mała litera.\n");
    }
    return 0;
}

argc i argv

argc i argv są parametrami przekazywanymi do funkcji main(), które służą do przekazywania argumentów z linii poleceń do programu.

  1. argc (argument count): Jest to liczba argumentów przekazanych do programu z linii poleceń, włączając nazwę programu. Zmienna argc zawsze musi być przynajmniej równa 1, ponieważ nazwa programu jest zawsze przekazywana jako pierwszy argument.
  2. argv (argument vector): Jest to tablica ciągów znaków (typu char *[]), która zawiera wartości przekazane jako argumenty z linii poleceń. Element argv[0] zawiera nazwę programu, a pozostałe elementy argv[1] do argv[argc-1] zawierają kolejne argumenty przekazane do programu.

Przykładowo, jeśli uruchamiamy program z linii poleceń w następujący sposób:

./program argument1 argument2 argument3

To argc będzie wynosić 4 (nazwa programu plus 3 dodatkowe argumenty), a argv będzie zawierać:

  • argv[0] – „./program”
  • argv[1] – „argument1”
  • argv[2] – „argument2”
  • argv[3] – „argument3”

Użycie argc i argv umożliwia programowi odbieranie danych wejściowych z linii poleceń, co jest często używane do przekazywania opcji konfiguracyjnych, plików do przetworzenia lub innych parametrów. Dzięki temu program może być bardziej elastyczny i dostosowywalny do różnych zastosowań bez konieczności modyfikowania kodu źródłowego.

#include <stdio.h>

int main(int argc, char *argv[]) {
    printf("Liczba argumentów: %d\n", argc);

    // Wyświetlenie wszystkich argumentów
    for (int i = 0; i < argc; i++) {
        printf("Argument %d: %s\n", i, argv[i]);
    }

    return 0;
}

Język ASCII

Język ASCII (American Standard Code for Information Interchange) to standardowy zestaw znaków używanych do reprezentowania tekstu w komputerach i urządzeniach komunikacyjnych w Ameryce Północnej. Każdy znak w języku ASCII jest reprezentowany przez odpowiadającą mu liczbę całkowitą od 0 do 127. W języku C, znaki ASCII są reprezentowane przez typ danych char, a liczby te odpowiadają konkretnym znakom i symbolom używanym w tekstowych komunikatach.