Podstawowe pojęcia, pierwszy kod C++
Plan artykułu: program komputerowy, algorytm, poprawność, cechy poprawnego algorytmu: jednoznaczność, szczegółowość, uniwersalność, rodzaje algorytmów: liniowe, rozgałęzione, iteracyjne, rekurencyjne, kompilator, interpreter, debugger, CodeBlocks, struktura programu Hello World w C++.
Podstawowe pojęcia w programowaniu
Oprócz video-kursu C++ który udostępniłem tutaj, zapraszam także do artykułów tekstowych, które pomogą usystematyzować wiedzę oraz poznać potrzebne definicje, zestawienia, podsumowania - na spokojnie, tamat po temacie. Zacznijmy do podstaw.
- Program komputerowy
- zespół kodowanych instrukcji, określający dokładnie przebieg operacji arytmetycznych i logicznych do wykonania przez komputer.
- Algorytm
- sposób w postaci ściśle określonych reguł i metod na rozwiązanie określonego zadania w skończonej liczbie kroków.
Cechy charakterystyczne poprawnego algorytmu
- poprawność - dla każdego przypisanego zestawu danych, po wykonaniu skończonej liczby czynności, algorytm prowadzi do poprawnych wyników.
- jednoznaczność - w każdym przypadku zastosowania algorytmu dla tych samych danych otrzymamy ten sam wynik.
- szczegółowość - wykonawca algorytmu musi rozumieć opisane czynności i potrafić je wykonywać.
- uniwersalność - algorytm ma służyć rozwiązywaniu pewnej grupy zadań, a nie tylko jednego zadania. Przykładowo algorytm na rozwiązywanie równań w postaci ax+b=0 ma je rozwiązać dla dowolnych współczynników a i b, a nie tylko dla jednego konkretnego zadania, np. 2x+6=0
Podział algorytmów pod względem konstrukcyjnym
- liniowe – poszczególne kroki wykonywane są jeden po drugim (np. pole prostokąta),
- rozgałęzione - w wyniku sprawdzenia warunku mogą być wykonywane różne kroki algorytmu (obliczania pierwiastków równania kwadratowego),
- iteracyjne - pewien zespół kroków wykonywany jest wielokrotnie w pętli (powtarza się), aż do momentu spełnienia określonego warunku,
- rekurencyjne - proces wykonywania jakiegoś zadania wywołuje same siebie,
- mieszane – łączą konstrukcje różnych algorytmów.
- Kompilator
- (ang. compiler) program służący do tłumaczenia kodu napisanego w jednym języku (np. C++, Pascal) na równoważny kod w języku maszynowym (zero-jedynkowym).
- Interpreter
- program komputerowy, który analizuje kod źródłowy programu, a przeanalizowane fragmenty wykonuje. Dzieje się tak inaczej niż w procesie kompilacji, podczas którego nie wykonuje się wejściowego programu (kodu źródłowego), lecz tłumaczy go do wykonywalnego kodu maszynowego.
Stąd wiemy, że kompilacja to tłumaczenie kodu źródłowego na kod wynikowy, a interpretacja to tłumaczenie połączone z natychmiastowym wykonaniem programu. Zarówno kompilator jak interpretator można zatem określić mianem translatora.
- Konsolidator
- (ang. linker) lub program, który łączy zadane pliki obiektowe i biblioteki tworząc w ten sposób plik wykonywalny.
- Debugger
- program komputerowy służący do dynamicznej analizy innych programów, w celu odnalezienia i identyfikacji zawartych w nich błędów, zwanych z angielskiego bugami (robakami). Proces nadzorowania wykonania programu za pomocą debuggera określa się mianem debugowania.
- IDE
- (ang. Integrated Development Environment - zintegrowane środowisko programistyczne) to aplikacja lub zespół aplikacji (środowisko) służących do tworzenia, modyfikowania, testowania i konserwacji oprogramowania.
- RAD
- (ang. Rapid Application Development - szybkie tworzenie aplikacji) to ideologia i technologia polegająca na udostępnieniu programiście dużych możliwości prototypowania oraz dużego zestawu gotowych komponentów.
Tworzenie nowego projektu w CodeBlocks
Aby utworzyć nowy projekt zawierający program konsolowy, po wybraniu z menu File
- New
- Project
, wskazujemy w kreatorze:
Następnie należy wybrać język C++, nadać projektowi nazwę i przydzielić mu folder roboczy. Użyjemy domyślnego kompilatora GNU GCC. Kod naszego programu znajdować się będzie w pliku main.cpp:
Struktura programu Hello World w C++
Domyślny program, tzw. "Hello World!" (ang. "Witaj Świecie!", uruchamiany w CodeBlocks klawiszem F9) ma następującą strukturę:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
return 0;
}
Przeanalizujmy, co dokładnie się tutaj wydarzyło:
#include <iostream>
oznacza dodanie do programu biblioteki iostream, która jest biblioteką strumienia wejścia/wyjścia (input/output stream)using namespace std;
oznacza używanie w programie przestrzeni nazw biblioteki standardowej, co w praktyce pozwala nam korzystać z uproszczonych zapisów – zamiast pisać:std::cout << "Hello world!" << endl;
możemy używać zapisu:cout << "Hello world!" << endl;
int main()
czyli główna funkcja programu – rozpoczyna się klamrą otwierającą:{
, a kończy klamrą zamykającą:}
. Funkcjamain()
ma zwrócić wartość typu int, czyli liczbę całkowitą – dokonuje tego zapis:return 0;
cout << "Hello world!" << endl;
linia ta odpowiada za wyświetlenie na ekranie tekstu zawartego w cudzysłowach (oznaczonego niebieskim kolorem). Wyrażenie endl; tłumaczymy jako end line, czyli wstawienie znaku końca linii i jednoczesne umieszczenie kursora w nowej. Operator << pełni rolę separatora oddzielającego poszczególne instrukcje.
Komentarze
Czy macie jakieś pytania, sugestie, uwagi? A może zauważyliście literówkę albo błąd? Dajcie koniecznie znać: kontakt@pasja-informatyki.pl. Dziękujemy za poświęcony czas - to dzięki Wam serwis staje się coraz lepszy!