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?
- printf ( "Napis : %s \n " , "Ala ma kota" ) ; (correct)
- printf ( " Ala ma kota \n" ) ;
- printf ( "Napis : %s \n" , "Ala ma kota" ) ;
- printf ( "Ala ma kota" ) ;
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.
Dopasuj funkcje biblioteczne języka C do ich funkcji:
Dopasuj funkcje biblioteczne języka C do ich funkcji:
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?
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.
Specyfikator formatu ______ służy do wypisania znaku.
Specyfikator formatu ______ służy do wypisania znaku.
Operator ^ w języku C reprezentuje operację logiczną XOR.
Operator ^ w języku C reprezentuje operację logiczną XOR.
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?
W programie szyfr–xor.c wartość zmiennej klucz
to ______.
W programie szyfr–xor.c wartość zmiennej klucz
to ______.
Jaki jest cel funkcji putchar()
w programie szyfr–xor.c?
Jaki jest cel funkcji putchar()
w programie szyfr–xor.c?
Połącz operatory bitowe z ich opisem:
Połącz operatory bitowe z ich opisem:
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?
Przesunięcie bitu w prawo o 1 odpowiada ______ przez 2.
Przesunięcie bitu w prawo o 1 odpowiada ______ przez 2.
John von Neumann opracował koncepcję współczesnego komputera w 1945 roku.
John von Neumann opracował koncepcję współczesnego komputera w 1945 roku.
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.
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?
Jaki był pierwszy komercyjnie dostępny minikomputer?
Jaki był pierwszy komercyjnie dostępny minikomputer?
Komputery drugiej generacji charakteryzowały się wykorzystaniem ______ i pamięci ferrytowej.
Komputery drugiej generacji charakteryzowały się wykorzystaniem ______ i pamięci ferrytowej.
Połącz wydarzenia z odpowiednimi datami:
Połącz wydarzenia z odpowiednimi datami:
Która z poniższych gier wideo była pierwszą w historii?
Która z poniższych gier wideo była pierwszą w historii?
Wczesne komputery wykorzystywały tylko programy proceduralne.
Wczesne komputery wykorzystywały tylko programy proceduralne.
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.
Pliki nagłówkowe *.h w języku C zawierają instrukcje programu.
Pliki nagłówkowe *.h w języku C zawierają instrukcje programu.
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?
Jaki znak rozpoczyna dyrektywy preprocesora w języku C?
Jaki znak rozpoczyna dyrektywy preprocesora w języku C?
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.
Połącz słowa kluczowe z ich krótkimi opisami.
Połącz słowa kluczowe z ich krótkimi opisami.
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?
Język C zapewnia zabezpieczenie przed błędami programisty.
Język C zapewnia zabezpieczenie przed błędami programisty.
Podaj przykład najkrótszego programu w języku C.
Podaj przykład najkrótszego programu w języku C.
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?
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.
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()
?
W języku C zmienne deklaruje się na samym początku ______.
W języku C zmienne deklaruje się na samym początku ______.
Dopasuj operatory do ich kategorii:
Dopasuj operatory do ich kategorii:
W języku C zmienne lokalne są automatycznie inicjowane wartością 0.
W języku C zmienne lokalne są automatycznie inicjowane wartością 0.
Jaki jest cel operatora przypisania =
w języku C?
Jaki jest cel operatora przypisania =
w języku C?
Które z poniższych instrukcji są poprawne w C?
Które z poniższych instrukcji są poprawne w C?
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].
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.
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?
Jaki jest wynik działania funkcji printf("Zmienopozycyjne : %f \n", 3.1416);
?
Jaki jest wynik działania funkcji printf("Zmienopozycyjne : %f \n", 3.1416);
?
Połącz specyfikatory formatu z ich odpowiednimi typami danych:
Połącz specyfikatory formatu z ich odpowiednimi typami danych:
Flashcards
printf
printf
Funkcja do wyświetlania danych w C.
specyfikatory formatu
specyfikatory formatu
Znaki kontrolne w 'printf' do formatowania.
dopalnienie zerami
dopalnienie zerami
Wypełnienie miejsca cyframi zerowymi.
notacja naukowa
notacja naukowa
Signup and view all the flashcards
cięcie łańcucha
cięcie łańcucha
Signup and view all the flashcards
Precyzja (formatowanie)
Precyzja (formatowanie)
Signup and view all the flashcards
Funkcja printf
Funkcja printf
Signup and view all the flashcards
strlen
strlen
Signup and view all the flashcards
strcat
strcat
Signup and view all the flashcards
strcmp
strcmp
Signup and view all the flashcards
strcpy
strcpy
Signup and view all the flashcards
strstr
strstr
Signup and view all the flashcards
System dziesiętny
System dziesiętny
Signup and view all the flashcards
Programowanie proceduralne
Programowanie proceduralne
Signup and view all the flashcards
John von Neumann
John von Neumann
Signup and view all the flashcards
EDVAC
EDVAC
Signup and view all the flashcards
Tranzystory
Tranzystory
Signup and view all the flashcards
Pamięć ferrytowa
Pamięć ferrytowa
Signup and view all the flashcards
PDP-1
PDP-1
Signup and view all the flashcards
Gra „Spacewar!”
Gra „Spacewar!”
Signup and view all the flashcards
XOR
XOR
Signup and view all the flashcards
Przesunięcie bitowe w prawo
Przesunięcie bitowe w prawo
Signup and view all the flashcards
Mnożenie bitowe przez 2
Mnożenie bitowe przez 2
Signup and view all the flashcards
Maski bitowe
Maski bitowe
Signup and view all the flashcards
Operator OR
Operator OR
Signup and view all the flashcards
Priorytet operatora
Priorytet operatora
Signup and view all the flashcards
Znak EOF
Znak EOF
Signup and view all the flashcards
unsigned char
unsigned char
Signup and view all the flashcards
Instrukcja złożona
Instrukcja złożona
Signup and view all the flashcards
Zakres dostępu zmiennej
Zakres dostępu zmiennej
Signup and view all the flashcards
Zmienna globalna
Zmienna globalna
Signup and view all the flashcards
Zmienna lokalna
Zmienna lokalna
Signup and view all the flashcards
Deklaracja zmiennych
Deklaracja zmiennych
Signup and view all the flashcards
Inicjalizacja zmiennej
Inicjalizacja zmiennej
Signup and view all the flashcards
Operatory arytmetyczne
Operatory arytmetyczne
Signup and view all the flashcards
Operator przypisania
Operator przypisania
Signup and view all the flashcards
Sortowanie przez wybieranie
Sortowanie przez wybieranie
Signup and view all the flashcards
Dyrektywy preprocesora
Dyrektywy preprocesora
Signup and view all the flashcards
Pliki nagłówkowe
Pliki nagłówkowe
Signup and view all the flashcards
Biblioteki w C
Biblioteki w C
Signup and view all the flashcards
Słowa kluczowe w C
Słowa kluczowe w C
Signup and view all the flashcards
Funkcja main
Funkcja main
Signup and view all the flashcards
C jako język
C jako język
Signup and view all the flashcards
Najkrótszy program w C
Najkrótszy program w C
Signup and view all the flashcards
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.