Podcast
Questions and Answers
Który z poniższych kodów języka C generuje wypisanie "Ala ma kota" na ekran?
Który z poniższych kodów języka C generuje wypisanie "Ala ma kota" na ekran?
Funkcja strlen()
służy do łączenia dwóch łańcuchów znaków.
Funkcja strlen()
służy do łączenia dwóch łańcuchów znaków.
False (B)
Co oznacza specyfikator formatu %d
w funkcji printf()
?
Co oznacza specyfikator formatu %d
w funkcji printf()
?
Wypisanie liczby całkowitej.
Funkcja strcpy()
______ łańcucha znaków.
Funkcja strcpy()
______ łańcucha znaków.
Signup and view all the answers
Dopasuj funkcje biblioteczne języka C do ich funkcji:
Dopasuj funkcje biblioteczne języka C do ich funkcji:
Signup and view all the answers
Który z poniższych specyfikatorów formatu służy do wypisania liczby zmiennoprzecinkowej w notacji naukowej?
Który z poniższych specyfikatorów formatu służy do wypisania liczby zmiennoprzecinkowej w notacji naukowej?
Signup and view all the answers
Funkcja strstr()
zwraca adres pierwszego wystąpienia wzorca w tekście lub wartość NULL, gdy wzorzec nie został znaleziony.
Funkcja strstr()
zwraca adres pierwszego wystąpienia wzorca w tekście lub wartość NULL, gdy wzorzec nie został znaleziony.
Signup and view all the answers
Specyfikator formatu ______ służy do wypisania znaku.
Specyfikator formatu ______ służy do wypisania znaku.
Signup and view all the answers
Operator ^ w języku C reprezentuje operację logiczną XOR.
Operator ^ w języku C reprezentuje operację logiczną XOR.
Signup and view all the answers
Które z poniższych instrukcji języka C służy do pobrania znaku z klawiatury?
Które z poniższych instrukcji języka C służy do pobrania znaku z klawiatury?
Signup and view all the answers
W programie szyfr–xor.c wartość zmiennej klucz
to ______.
W programie szyfr–xor.c wartość zmiennej klucz
to ______.
Signup and view all the answers
Jaki jest cel funkcji putchar()
w programie szyfr–xor.c?
Jaki jest cel funkcji putchar()
w programie szyfr–xor.c?
Signup and view all the answers
Połącz operatory bitowe z ich opisem:
Połącz operatory bitowe z ich opisem:
Signup and view all the answers
Który z poniższych elementów nie był elementem pierwszych komputerów?
Który z poniższych elementów nie był elementem pierwszych komputerów?
Signup and view all the answers
Przesunięcie bitu w prawo o 1 odpowiada ______ przez 2.
Przesunięcie bitu w prawo o 1 odpowiada ______ przez 2.
Signup and view all the answers
John von Neumann opracował koncepcję współczesnego komputera w 1945 roku.
John von Neumann opracował koncepcję współczesnego komputera w 1945 roku.
Signup and view all the answers
Maska bitowa to specjalny rodzaj zmiennej, która pozwala na modyfikowanie wartości pojedynczych bitów w dowolnej zmiennej.
Maska bitowa to specjalny rodzaj zmiennej, która pozwala na modyfikowanie wartości pojedynczych bitów w dowolnej zmiennej.
Signup and view all the answers
Który z poniższych fragmentów kodu języka C poprawnie ustawia n-ty bit zmiennej x
na 1?
Który z poniższych fragmentów kodu języka C poprawnie ustawia n-ty bit zmiennej x
na 1?
Signup and view all the answers
Jaki był pierwszy komercyjnie dostępny minikomputer?
Jaki był pierwszy komercyjnie dostępny minikomputer?
Signup and view all the answers
Komputery drugiej generacji charakteryzowały się wykorzystaniem ______ i pamięci ferrytowej.
Komputery drugiej generacji charakteryzowały się wykorzystaniem ______ i pamięci ferrytowej.
Signup and view all the answers
Połącz wydarzenia z odpowiednimi datami:
Połącz wydarzenia z odpowiednimi datami:
Signup and view all the answers
Która z poniższych gier wideo była pierwszą w historii?
Która z poniższych gier wideo była pierwszą w historii?
Signup and view all the answers
Wczesne komputery wykorzystywały tylko programy proceduralne.
Wczesne komputery wykorzystywały tylko programy proceduralne.
Signup and view all the answers
Wymień trzy innowacje, które pojawiły się wraz z komputerem PDP-1.
Wymień trzy innowacje, które pojawiły się wraz z komputerem PDP-1.
Signup and view all the answers
Pliki nagłówkowe *.h w języku C zawierają instrukcje programu.
Pliki nagłówkowe *.h w języku C zawierają instrukcje programu.
Signup and view all the answers
Która z poniższych opcji NIE jest słowem kluczowym w języku C?
Która z poniższych opcji NIE jest słowem kluczowym w języku C?
Signup and view all the answers
Jaki znak rozpoczyna dyrektywy preprocesora w języku C?
Jaki znak rozpoczyna dyrektywy preprocesora w języku C?
Signup and view all the answers
Język C jest językiem ____, co oznacza, że skupia się na sekwencji instrukcji wykonywanych w określonym porządku.
Język C jest językiem ____, co oznacza, że skupia się na sekwencji instrukcji wykonywanych w określonym porządku.
Signup and view all the answers
Połącz słowa kluczowe z ich krótkimi opisami.
Połącz słowa kluczowe z ich krótkimi opisami.
Signup and view all the answers
Które z poniższych są przykładami bibliotek standardowych w języku C?
Które z poniższych są przykładami bibliotek standardowych w języku C?
Signup and view all the answers
Język C zapewnia zabezpieczenie przed błędami programisty.
Język C zapewnia zabezpieczenie przed błędami programisty.
Signup and view all the answers
Podaj przykład najkrótszego programu w języku C.
Podaj przykład najkrótszego programu w języku C.
Signup and view all the answers
Które z poniższych instrukcji są przykładami instrukcji sterujących w języku C?
Które z poniższych instrukcji są przykładami instrukcji sterujących w języku C?
Signup and view all the answers
W języku C zmienna globalna jest dostępna wyłącznie w funkcji, w której została zadeklarowana.
W języku C zmienna globalna jest dostępna wyłącznie w funkcji, w której została zadeklarowana.
Signup and view all the answers
Jaki jest zakres dostępu zmiennej lokalnej zadeklarowanej w bloku instrukcji {}
w funkcji main()
?
Jaki jest zakres dostępu zmiennej lokalnej zadeklarowanej w bloku instrukcji {}
w funkcji main()
?
Signup and view all the answers
W języku C zmienne deklaruje się na samym początku ______.
W języku C zmienne deklaruje się na samym początku ______.
Signup and view all the answers
Dopasuj operatory do ich kategorii:
Dopasuj operatory do ich kategorii:
Signup and view all the answers
W języku C zmienne lokalne są automatycznie inicjowane wartością 0.
W języku C zmienne lokalne są automatycznie inicjowane wartością 0.
Signup and view all the answers
Jaki jest cel operatora przypisania =
w języku C?
Jaki jest cel operatora przypisania =
w języku C?
Signup and view all the answers
Które z poniższych instrukcji są poprawne w C?
Które z poniższych instrukcji są poprawne w C?
Signup and view all the answers
W języku C, aby wyświetlić znak na ekranie, należy użyć funkcji printf()
i specyfikatora formatu %c
. Należy również podać w nawiasach argumenty, które reprezentują znaki, które chcemy wyświetlić. Aby wyświetlić znak "A", w nawiasach podajemy 'A'
oraz [BLANK].
W języku C, aby wyświetlić znak na ekranie, należy użyć funkcji printf()
i specyfikatora formatu %c
. Należy również podać w nawiasach argumenty, które reprezentują znaki, które chcemy wyświetlić. Aby wyświetlić znak "A", w nawiasach podajemy 'A'
oraz [BLANK].
Signup and view all the answers
Specyfikator formatu %d
służy do wyświetlania liczb całkowitych w systemie szesnastkowym.
Specyfikator formatu %d
służy do wyświetlania liczb całkowitych w systemie szesnastkowym.
Signup and view all the answers
Który ze specyfikatorów formatu służy do wyświetlania liczb zmiennoprzecinkowych w notacji naukowej?
Który ze specyfikatorów formatu służy do wyświetlania liczb zmiennoprzecinkowych w notacji naukowej?
Signup and view all the answers
Jaki jest wynik działania funkcji printf("Zmienopozycyjne : %f \n", 3.1416);
?
Jaki jest wynik działania funkcji printf("Zmienopozycyjne : %f \n", 3.1416);
?
Signup and view all the answers
Połącz specyfikatory formatu z ich odpowiednimi typami danych:
Połącz specyfikatory formatu z ich odpowiednimi typami danych:
Signup and view all the answers
Study Notes
Programowanie Proceduralne - Notatki
- Programowanie proceduralne to paradygmat programowania, który opiera się na sekwencjach instrukcji, podprogramach (funkcjach) i uporządkowanym przepływie sterowania.
- Celem programowania proceduralnego jest dekompozycja złożonego problemu na mniejsze, łatwiejsze do zarządzania podproblemy, co ułatwia testowanie i konserwację kodu.
- Podprogramy (funkcje) są podstawowymi blokami kodu, które wykonują określone operacje i mogą być wywoływane wielokrotnie w różnych częściach programu.
- Operacje są wykonywane sekwencyjnie, zgodnie z kolejnością instrukcji w programie.
- Głównym elementem programowania proceduralnego są zmienne, stala, i tablice.
- Operatory działają na zmiennych, a ich priorytet wpływa na kolejność obliczeń.
- Instrukcje sterujące, takie jak if, else, switch, while, i for, kontrolują przepływ sterowania w programie.
- Proceduralne podejście do programowania umożliwia efektywne organizowanie i zarządzanie złożonością dużych projektów.
- Istnieje możliwość tworzenia dynamicznych struktur danych.
- Komentarze są istotne, aby ułatwić czytelność i utrzymanie kodu.
Przegląd zagadnień
- Podstawy programowania w języku C
- Przykłady programów, demonstracje
- Problem → Algorytm → Program → Rozwiązanie
- Paradygmat programowania proceduralnego
- Algorytmy wydzielone w postaci funkcji
- Reprezentacja danych w komputerze
- Typy proste, złożone, struktury dynamiczne
- Elementy inżynierii oprogramowania: model, projekt, analiza, implementacja, testowanie
- Laboratorium: język C
- Środowisko Visual Studio C++
- Zaliczenie: ocena z laboratorium + test zaliczeniowy (AiR egzamin na ocenę)
Jak uczyć się programowania
- Pytaj!
- Czytaj!
- Podglądaj!
- Programiuj, programuj, programuj...
Generacje komputerów
- Mechaniczne i przekaźnikowe (do 1945)
- Lampowe elektronowe (1945-59)
- Tranzystorowe i pamięci ferrytowe (1959-64)
- Układy scalone małej skali integracji SSI (1965-70)
- Układy scalone o wysokiej skali integracji LSI i VLSI, mikroprocesory (od 1971)
Rozwoj języków programowania
- Kod maszynowy, assembler
- Języki wysokiego poziomu: Fortran, Lisp, COBOL
- Języki specjalistyczne: Simula I, Algol, PL/1
- Języki ogólne: Pascal, C, Basic, C++
- Języki obiektowe: Java, Python, PHP, JavaScript, .NET (C#).
Komputery generacji 0
- Konrad Zuse
- Mechaniczny Z1
- Liczby zmiennopozycyjne
- Przekaźnikowy Z3
Kod maszynowy
- Ciąg instrukcji w postaci binarnej, wykonywanych bezpośrednio przez procesor.
- Rozkazy procesora i dane w postaci słów bitowych pobierane są z pamięci do rejestrów procesora.
- Kod maszynowy nie jest przenośny - różni się dla poszczególnych procesorów.
Język asemblera
- Zastępuje rozkazy maszynowe mnemonikami (zrozumiałymi słowami).
- Mnemoniki określają konkretną czynność procesora.
- Assembler tłumaczy język asemblera na kod maszynowy (assemblacja).
- Deasembler tłumaczy kod maszynowy na język asemblera.
Języki wysokiego poziomu
- Nie są bezpośrednio wykonywane przez procesor.
- Pozwala uniezależnić program od danej platformy sprzętowej i systemowej.
- Składnia i instrukcje są łatwiejsze do zrozumienia dla człowieka.
- Pozwalają skupić się na logice zadania, abstrakcji.
Kompilator i interpreter
- Kompilator - tłumaczy kod napisany w języku wysokiego poziomu na kod maszynowy (np. C, C++, Pascal, Fortran).
- Interpreter - odczytuje, analizuje i wykonuje kolejne instrukcje w kodzie źródłowym (np. Bash, Perl, Python).
Od pomysłu do programu
- Pomysł, algorytm
- Programowanie (w języku wysokiego poziomu)
- Kompilacja
- Kod maszynowy
- Wykonanie na komputerze
Środowiska programistyczne c/c++
- Minimalistyczne: edytor tekstu + kompilator (np. Linux z GCC)
- IDE (Integrated Development Environment): np. Borland C, Cygwin, MinGW, MS Visual Studio, KDevelop, Anjuta, VS Code, CodeBlocks, Eclipse (CDT), NetBeans
Algorytmy
- Algorytm to jednoznacznie zdefiniowany ciąg operacji prowadzący do rozwiązania zadania w skończonej liczbie kroków.
- Przykłady algorytmów: algorytm Euklidesa, sortowanie przez wybieranie, algorytm Herona, wyszukiwanie liniowe, itp.
Generacje Komputerów
- mechaniczne, przekaźnikowe
- lampy elektronowe
- tranzystory i pamięć ferrytowa
- układy scalone o małej skali integracji (SSI)
- układy scalone o wysokiej skali integracji (VLSI/LSI)
Instrukcje warunkowe i pętle w C
- Warunek if (jeżeli)
- Pętla while (dopóki)
- Pętla for (dla każdego)
Algorytm Euklidesa
- Procedura znajdowania największego wspólnego dzielnika (NWD) dwóch liczb całkowitych.
Zadanie obliczeniowe
- Warunki wejścia, wyjście.
Cechy algorytmu
- Skończoność
- Poprawność
- Uniwersalność
- Efektywność
- Określoność
- Rozwiązanie początkowe i końcowe
Struktury sterujące
- Bezpośrednie następstwo
- Wybór warunkowy (rozgałęzienie)
- Iteracja ograniczona
- Iteracja warunkowa
- Instrukcja skoku
- Podprogram
Reprezentacja algorytmów
- Język naturalny
- Lista kroków
- Schematy blokowe
- Pseudojęzyki
- Języki wysokiego poziomu
Złożoność obliczeniowa algorytmu
- Ilość operacji wykonywanych przez algorytm. Wyznaczona na podstawie ilości danych lub miary ich wielkości.
- Porównanie wartości, arytmetyka, posortowanie listy.
Problem TSP (Travelling Salesman Problem)
- Znalezienie najkrótszej trasy odwiedzania wszystkich miast.
- Problem o dużej złożoności obliczeniowej.
Problemy o „rozsądnych” rozwiązaniach i Problem P vs NP
- Klasyfikacja problemów w oparciu o złożoność algorytmów rozwiązujących je, a konkretnie o ilość kroków i wykorzystywanej pamięci.
Algorytmy manipulujące danymi
- Reprezentacja danych
- Zmienne (liczby, znaki, adresy)
- Tablice, wektory, listy, macierze
- Rekordy, struktury, kolejki, stosy, drzewa
Podsumowanie
- Analiza problemu
- Specyfikacja zadania
- Algorytm
- Poprawność algorytmu
- Złożoność algorytmu
- Implementacja algorytmu
Literatura dodatkowa
- Podręczniki akademickie
- Artykuły ze stron internetowych
Język ANSI C
- Pierwsze starcie
- Nowości w C99
- Instrukcje preprocesora:
#include
,#define
- Komentarze, styl kodowania
Struktura programu w C
- Dyrektywy preprocesora
- Funkcja main (funkcja główna)
- Deklaracje (typ i nazwy zmiennych)
- Instrukcje programu
Najkrótszy program w C
- Krótki kod źródłowy.
Język ANSI C
- Biblioteki: stdio.h, math.h
- Pliki nagłówkowe
- Zwięzły kod
Słowniki kluczowe
- Lista słów kluczowych języka C.
Dyrektywy preprocesora
- Instrukcje preprocesora, takie jak
#include
i#define
są wykonywane przed właściwą kompilacją kodu źródłowego.
Błędy w kodzie
- Sprawdzenie czy kod kompiluje się bez błędów kompilacji.
- Użycie debuggerów w celu analizy błądów w czasie działania.
Typy danych
- Całkowite
- Zmiennoprzecinkowe
Operacja przypisania
- Skrócony operator przypisania (np
a += b
=a = a + b
).
Inkrementacja i dekrementacja
- Pre-inkrementacja i post-inkrementacja operatorów
++
i--
- Operatory te zmieniają wartość zmiennej i zwracają jako wartość poprzednią, lub obecną wartość.
Przykłady: kopiowanie napisów
Operator wyrażenia warunkowego
Inne operatory
- Przecinek
- Dostęp do elementów tablicy
- Wywołanie funkcji
- Dostęp do pól struktury
Priorytety i kolejność operatorów
- Reguły sterujące kolejnością wykonywania operacji obliczeniowych.
Przykłady:
- Sums harmonicznego
- Algorytm Herona
- Sums Fibonnaciego
- Konwersja do innej podstawy
- Zmienne tablicowe w funkcji
Tablice
- Zbiór elementów tego samego typu, indeksowanych od 0.
- Deklaracja i wykorzystanie elementów tablicy.
Struktury
- Zbiór elementów różnych typów, zdefiniowanych przez nazwę.
- Inicjalizacja tablic i struktur
Typy złożone
- Struktury, pola bitowe i unie.
Typ wyliczeniowy
- Typ enum (enumerated type)
- Deklaracja i wykorzystanie zmiennych wyliczeniowych.
Wskaźniki do struktur
- Operator -> - dostęp do pól struktury za pomocą wskaźnika
- Wskaźniki i funkcje.
Unie
- W odróżnieniu od struktur, unie przechowują wartości w tym samym obszarze pamięci.
Pola bitowe
- Pola bitowe to pola struktury o określonej liczbie bitów, używane do optymalizacji.
Strumienie i pliki
- Strumienie - ogólny sposób przekazania danych między procesami, plikami i urządzeniami.
- Plik jako ciąg bajtów
- Metadane pliku (rozszerzenie, sygnatura, atrybuty)
- Otwarcie strumienia pliku, zapis, odczyt, zamknięcie.
- Obsługa błędów (NULL, EOF)
Standardowe strumienie
- stdin, stdout, stderr
Inne sytuacje wyjątkowe
- Błędy podczas otwierania strumienia pliku
- Niepoprawny format danych
Kodowanie informacji
- Reprezentacja symboli w komputerze (binarny kod)
- Liczby całkowite i zmiennoprzecinkowe
- Kodowane znaki
Kodowanie symboli
- ASCII
- inne kody znaków
Operatory bitowe
- Działają na pojedynczych bitach.
Rzutowanie
- Niejawne i jawne rzutowanie typów
- Utrata dokładności przy rzutowaniu.
Instrukcja return
- Zakończenie działania funkcji, zwracanie wartości.
Zmienne na stosie
- Obszar pamięci dla tymczasowych zmiennych w funkcji.
Zasięg zmiennych
- Globalne i lokalne zmienne.
Biblioteki standardowe
- Biblioteki i funkcje standardowe języka C. (Np.
stdio.h
,stdlib.h
,string.h
,ctype.h
)
Wskaźniki
- Zmienne przechowujące adresy innych zmiennych.
- Arytmetyka na wskaźnikach
- Wskaźniki jako argumenty funkcji
- Względne i bezwzględne adresy
Tablice jako parametry funkcji
- Tablica jako argument funkcji.
Przeszukiwanie liniowe
- Algorytm przeszukiwania liniowego.
Znajdowanie minimum i maksimum
- Algorytm znajdowania wartości minimalnej i maksymalnej w zbiorze liczb.
Dynamiczny przydział pamięci
- Funkcja
malloc()
ifree
w C.
Dynamiczne struktury danych
- Tablice wskaźników
- Listy
- Drzewa binary
Systemy pozycyjne
- Konwersja pomiędzy systemami pozycyjnymi (dziesiętny, binarny, ósemkowy, szesnastkowy).
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Sprawdź swoją wiedzę na temat języka C poprzez ten quiz. Obejmuje takie zagadnienia jak funkcje, specyfikatory formatu oraz operatory. Udzielaj odpowiedzi na pytania dotyczące praktycznego zastosowania języka C.