KURS C/C++ WYKŁAD 1. Pierwszy program



Podobne dokumenty
KURS C/C++ WYKŁAD 2. char znak; znak = a ; Program 2 #include<stdio.h> void main() { char znak; while( (znak = getchar() )!= t ) putchar(znak); }

Podstawy Programowania Podstawowa składnia języka C++

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

1 Podstawy c++ w pigułce.

Wstęp do programowania. Wykład 1

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)

1 Podstawy c++ w pigułce.

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Podstawy programowania w języku C

Podstawy programowania - 1

#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

Programowanie strukturalne i obiektowe

Podstawy programowania skrót z wykładów:

Podstawy programowania C. dr. Krystyna Łapin

Język ludzki kod maszynowy

Podstawy Programowania C++

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

Pytania z języka C/C++ main dyrektywy preprocesora #include 15. #define 16. #define słowa zastrzeżone \n, \t, \f 26.

2 Przygotował: mgr inż. Maciej Lasota

Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Podstawy programowania (1)

Programowanie w języku Python. Grażyna Koba

Wstęp do Programowania, laboratorium 02

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

1. Wprowadzanie danych z klawiatury funkcja scanf

Metodyki i Techniki Programowania MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p.

Podstawy programowania. Wykład 3 Konstrukcje sterujące. Krzysztof Banaś Podstawy programowania 1

Pętla for. Wynik działania programu:

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 3. Karol Tarnowski A-1 p.

Cw.12 JAVAScript w dokumentach HTML

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p.

do instrukcja while(wyrażenie);

Wstęp do programowania

Instrukcje sterujące

Programowanie w C/C++ Instrukcje - konstrukcje powtórka. LABORKA Piotr Ciskowski

Struktura pliku projektu Console Application

Laboratorium 6: Ciągi znaków. mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:

4. Funkcje. Przykłady

Wprowadzenie do programowania w języku C

Zmienne, stałe i operatory

Język C zajęcia nr 5

Część 4 życie programu

Programowanie komputerowe. Zajęcia 1

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru

Podstawowe typy zmiennych

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak

lekcja 8a Gry komputerowe MasterMind

Podstawy programowania w C++

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Tablice, funkcje - wprowadzenie

Informatyka, Ćwiczenie Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

Mikrokontroler ATmega32. Język symboliczny

Język C część 1. Sformułuj problem Zanalizuj go znajdź metodę rozwiązania (pomocny może byd algorytm) Napisz program Uruchom i przetestuj czy działa

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Podstawy Programowania. Wykład 1

Język C, instrukcje sterujące (laboratorium)

WYKŁAD 1 - KONSPEKT. Program wykładu:

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

C++ wprowadzanie zmiennych

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

Proste typy zmiennych języka C++ *) Zapis 3.4 e-38 jest równoważny zapisowi 3,

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Proces tworzenia programu:

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ;

Podstawy Programowania.

Ćwiczenie 4 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

tablica: dane_liczbowe

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

Języki i metodyka programowania. Wprowadzenie do języka C

INFORMATYKA Studia Niestacjonarne Elektrotechnika

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Warto też w tym miejscu powiedzieć, że w C zero jest rozpoznawane jako fałsz, a wszystkie pozostałe wartości jako prawda.

Powtórka algorytmów. Wprowadzenie do języka Java.

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Transkrypt:

KURS C/C++ WYKŁAD 1 Pierwszy program Tworzenie programu odbywa sie w dwóch etapach: 1. opracowanie kodu źródłowego 2. generowanie kodu wynikowego Pierwszy etap polega na zapisaniu algorytmu za pomocą instrukcji języka. W efekcie programista otrzymuje kod źródłowy programu, który jest plikiem tekstowym zawierającym zapis algorytmu. Drugi etap polega na przetłumaczeniu konstrukcji właściwych językowi wyższego poziomu na rozkazy procesora i doprowadzenie programu do postaci wykonywanej przez komputer. Operacja ta składa się z dwóch faz: kompilacji i linkowania czyli łączenia. Edytor Tworzymy program źródłowy i umieszczamy go w pliku test.cpp (test.c) Kompilacja Kompilator sprawdza czy instrukcje są zgodne z regułami języka programowania. Zapisuje instrukcje języka wysokiego poziomu za pomocą instrukcji procesora. Program po kompilacji test.obj (test.o) Kompilator zewnętrzny BCC. Linkowanie Linker to program, który konsoliduje (łączy) pliki.obj i biblioteki. W efekcie konsolidacji powstają dwa pliki.map i.exe. Program po linkowaniu test.exe (test.com) Linker zewnętrzny TLINK. Przykłady programów Program_1 void main() printf ("świat jest piękny tylko ludzie są brzydcy :)"); Program 2 #include<iostream.h> void main()

cout<<"gdyby ich nie było byłby jeszcze piękniejszy"; Wykonanie tych programów spowoduje wyświetlenie na ekranie monitora napisu zawartego w cudzysłowiach. Każdy program musi zawierać funkcję zwaną main(). Main() jest nazwą specjalną. Od niej rozpoczyna się wykonywanie programu. Treść tej funkcji (zwana ciałem funkcji), czyli instrukcje wykonywane w ramach tej funkcji, zawarte są między dwoma nawiasami klamrowymi... W naszych programach funkcja main() ma tylko jedną instrukcję: 1. printf ("świat jest piękny..."); 2. cout<<"gdyby ich nie było..."; średnik jest znakiem końca instrukcji. Każda instrukcja musi być zakończona średnikem. Język C/C++ jest językiem o tzw. wolnym formacie. Wszystko może się znaleźć w każdym miejscu linii, a nawet rozpisane na kilka linii. Poza nielicznymi sytuacjami, w dowolnym miejscu instrukcji można przejść do kolejnej linii i tam kontynuować pisanie, ponieważ koniec instrukcji określa nie koniec linii, ale średnik. Operacje we/wy nie należą do definicji języka C/C++ i umieszczone są w jednej ze standardowych bibliotek, aby można z niej było skorzystać musimy umieścić na początku programu linię: #include<iostream.h> Dyrektywa #include powoduje, że kompilator wstawia do programu plik nagłówkowy, biblioteki stdio lub iostream.zmodyfikujmy nasze programy w instrukcjach odpowiadających za wyświetlenie napisu: 1. printf ( Coś tam \ni coś tu"); 2. cout<<"coś tam \ni coś tu"; Wstawienie w środek tekstu znaku \n powoduje przerwanie wypisywania w bieżącym wierszu i jego kontynuację od początku w nowym wierszu: Coś tam I coś tu Miejsce wstawienia tego znaku zależy od sposobu w jaki chcemy wypisać komunikat. Znak \ informuje ze będzie to znak szczególny i należy go traktować w sposób specjalny. Oprócz znaku \n dostępne są inne znaki formatujące np.: \t - wstawienie zanku tabulacji, \a - wstawienie znaku dzwonka Program 3 #include <stdio.h> /* Program do wyznaczania pola powierzchni kwadratu o boku a */ void main() int bok, pole; printf ("wprowadź długość boku kwadratu bok = "); scanf ("%i", &bok); //pobierz wartość zmiennej bok z klawiatury pole = bok * bok; //instrukcja przypisania, bok * bok - wyrażenie

printf ("pole kwadratu o boku %i wynosi %i",bok,pole); Ekran: wprowadź długość boku kwadratu bok =_ //10 <Enter> pole kwadratu o boku 10 wynosi 100 Program 4 /* Program do wyznaczania pola powierzchni kwadratu o boku a */ #include <iostream.h> void main() int bok, pole; // <-32768, 32767> cout<<"wprowadź długość boku kwadratu bok="; cin>>bok; pole = bok * bok; cout << "pole kwadratu o boku "<< bok <<"wynosi "<<pole; Program 5 /* Program do wyznaczania długości okręgu */ #include <stdio.h> float r, obwod, pi; printf("wprowadź długość promienia r = "); scanf ("%f", &r); pi = 3.14; obwod = 2 * pi * r; printf ("Obwód okręgu wynosi %f ",obwod); Program 6 /* Program do wyznaczania długości okręgu */ #include <iostream.h> void main() float r, obwod, pi; cout<<"wprowadź długość promienia r="; cin>>r; pi = 3.14; obwod = 2 * pi *r; cout <<"Obwód okręgu wynosi <<obwod; W języku C++ komentarze moga być umieszczane dwojako: - ograniczenie tekstu znakami /*...*/. Komentarz taki może ciągnąć się przez wiele linijek. - zastosowanie znaków //. Kompilator po napotkaniu takich znaków ignoruje resztę linii do końca. - jest to komentarz charakterystyczny tylko dla C++. Komentarze /* i // moga się zagnieżdżać lub nie, tzn. nie można zapisać: /*.../*...*/...*/,

zależy to od kompilatora. W języku C/C++ rozróżnia się duże i małe litery. Słowa kluczowe są zastrzeżone i muszą być pisane małymi literami. Słowami kluczowymi są np.: int, float, for, while itp. są one częścią definicji języka. W języku C/C++ wszystkie zmienne muszą być zadeklarowane przed ich użyciem. Deklaracja składa się z nazwy typu i listy zmiennych danego typu. Instrukcje: 1. scanf ("%i", &bok); 2. cin>>bok; odpowiadają za operacje związane ze standardowym urządzeniem wejściowym (C-onsole INput). Umożliwiają one wczytanie z klawiatury liczby, której wartość zostaje przypisana zmiennej bok. Działanie funkcji scanf () opiera się na analizie lańcucha formatującego. "%i" łańcuch formatujący %i dziesiętna postać parametru Musimy pamietać o typie wczytywanej liczby, i o tym czy mamy wpisac znak & czy też nie przed nazwą zmiennej. Znak & jest operatorem pobrania adresu. Po wczytaniu danych następuje część obliczeniowa. Następne instrukcje odpowiadające za wydrukowanie wartości wyniku. 1. printf ("pole kwadratu o boku %i wynosi %i",bok,pole); 2. cout <<"pole kwadratu o boku "<<bok <<" wynosi "<<pole; Instrukcje te spowodują wyświetlenie na ekranie zarówno testów umieszczonych wewnątrz znaków cudzysłowia, jak i wartości zmiennych a i p. Działanie funkcji printf() opiera się na analizie łańcucha formatującego. "pole kwadratu o boku %i wynosi %i" - %i dziesiętna postać parametru bok %i dziesiętna postać parametru pole Ekran: pole kwadratu o boku 8 wynosi 64 łańcuch formatujący W miejscu gdzie został określony typ wyprowadzanej liczby przez znak %i zostanie wyświetlona wartość pierwszego argumentu czyli wartość zmiennej bok w formacie liczb całkowitych oraz w miejscu gdzie został określony typ wyprowadzanej liczby przez znak %i zostanie wyświetlona wartość drugiego argumentu czyli wartość zmiennej pole również w formacie liczb całkowitych.. Struktura programu jednomodułowego tzn. zapisanego w jednym pliku, Struktura programu w języku C/C++ jest następująca: 1. dyrektywy dołączające pliki nagłówkowe bibliotek standardowych i zdefiniowanych przez użytkownika 2. prototypy funkcji lub definicje funkcji 3. deklaracje zmiennych globalnych

4. słowo kluczowe main() 5. klamra 6. deklaracja zmiennych lokalnych 7. treść programu 8. klamra 9. definicje funkcji Znakowe funkcje wejścia/wyjścia Funkcje getchar(); putchar(c); Program 7 char c; c=getchar(); putchar(c); Zadeklarowana w programie zmienna jest typu char. Typ char najlepiej nadaje się do przechowywania i obsługi znaków w komputerze, jest to zwykle 8 bitowy bajt. W C/C++ rozmiary obiektów wyraża się wielokrotnością rozmiaru typu char. Zależnie od sprzętu char jest typem całkowitym bez znaku lub ze znakiem. Zawiera odpowiednio liczby całkowite z zakresu <0, 255> lub <-128, 127 >. Napewniej jest przyjąć zakres <0,127>. Program używa funkcji getchar() do czytania kolejnego znaku ze standardowego strumienia wejściowego(stdin) int getchar(void) i funkcji putchar() do wysyłania znaku do standardowego strumienia wyjściowego (stdout) int putchar(int) Makra getche(); putch(c); Program 8 char c; c = getch (); // bez echa putch (c); c = getche (); // z echem putch (c); Instrukcje wyboru Instrukcja warunkowa if Do sterowania przebiegiem programu służą instrukcje wyboru, które pozwalają lub nie wykonywać pewne fragmenty programu.

Wyrażenie. Wyrażenie jest ciągiem operatorów i argumentów które specyfikuje obliczenie. Przykłady wyrażeń: x<=2, a>0, a = = 0, a!= 0, 2*x+5, 2*x, 5 Wartość wyrażenia można testować za pomocą instrukcji if lub switch. Składnia instrukcji if jest następująca: lub if (wyrażenie) instrukcja1; if (wyrażenie) instrukcja1; else instrukcja2; Jeżeli obliczona wartość wyrażenia jest różna od zera to wykonuje się instrukcję1, jeżeli występuje else to instrukcja2 wykonuje się wtedy gdy wartość wyrażenia wynosi zero. W języku C/C++ nie ma osobnego typu logicznego czyli takiego, który przyjmuje wartości prawda i fałsz. Fałsz 0 Prawda 1 Operatory porównania: > < = = >= <=!= dają wartość 1, jeżeli warunek jest prawdziwy i 0 jeżeli warunek jest fałszywy. Program 1 int a; scanf ("%d", &a); if (a>0) // a > 0 - to jest wyrażenie warunkowe printf ("wprowadzono liczbę dodatnią\n"); printf ("Koniec"); Program 2 int a; scanf ("%d", &a); if (a>=0) // a >= 0 - to jest wyrażenie warunkowe printf ("wprowadzono liczbę dodatnią lub zero"); else // else czyli jeżeli a < 0 printf ("wprowadzono liczbę ujemną");

Program 2a int a, b; scanf ("%d", &a); if (a>=0) printf ("wprowadzono liczbę dodatnią lub zero"); b=0; else // else czyli jeżeli a < 0 printf ("wprowadzono liczbę ujemną"); b=1; printf ("\n a=%d b=%d", a, b); Przykład 3 int a = 9; if (a) printf (" jestem w if "); else printf ("jestem w else "); instrukcja if (a)...; jest równoważna instrukcji: if (a!= 0)...; Przykład 4 int y, x; x=20; y=4; // x=3; y=4; x=2; y=1; if (y-2*x) printf (" jestem w if "); else printf ("jestem w else "); a jest różne od zera instrukcja if (y-2*x)...; jest równoważna instrukcji: if ( (y-2*x)!= 0)...; y-2*x jest różne od zera Wartości wyrażenia innej niż zero odpowiada stan prawda (true) Wartości wyrażenia zero odpowiada stan fałsz (false)

instrukcja w if, if...else i switch nie może być deklaracją. W przypadku zagnieżdżonych instrukcji if... else, else jest wiązana z ostatnią instrukcją if bez else. if (a>0) if (b<0) printf ("a>0, b<0") else printf ("a>0 i b>=0") if (a>0) if (b<0) printf ("a>0, b<0") else printf ("a>0 i b>=0") else printf ("a<=0") użycie nawiasów klamrowych zmienia połączenia if z else if (a>0) if (b<0) printf ("a>0, b<0") //ponieważ użyto nawiasów else printf ("a<=0") Instrukcja switch() Składnia instrukcji: switch (wyrażenie) case wyrażenie_stałe: instr;... default: instr; Instrukcja switch powoduje przekazanie sterowania do jednej z ciągu instrukcji wyznaczonej wartością wyrażenie. wyrażenie musi być typu całkowitego lub musi być klasą dla której istnieje jednoznaczne przekształcenie do typu całkowitego. Najpierw obliczana jest wartość wyrażenie,, a nstępnie wynik porównuje się z kolejnymi stałymi przypadków wyrażenie_stałe. Jeśli któraś ze stałych jest równa wartości wyrażenie to sterowanie przekazuje się do instrukcji która jest poprzedzona tą etykietą. Jeśli wartość wyrażenia nie zgadza sie z żadną z wartości podanych w etykietach case i występuje etykieta default., to sterowanie przekazuje się do instrukcji które ta etykieta poprzedza, jeżeli etykieta default nie występuje, wówczas nie wykona się żadna z instrukcji zawartych w instrukcji switch. Wykonywanie instrukcji kończy się po napotkaniu instrukcji break która jest instrukcją skoku i powoduje opuszczenie bieżącej instrukcji switch. * Miejsce etykiety default jest dowolne, ale może ona wystąpić tylko jeden raz. * Może być tylko jedna etykieta z tą sama wartością

* Etykiety wyboru muszą być tego samego co wyrażenie typu całkowitego. Jeśli po etykiecie case nie umieścimy instrukcji break, wtedy będą wykonywane instrukcje umieszczone po kolejnej etykiecie case. Przykład 1 #include<iostream.h> char dzialanie; float w,a,b; dzialanie= cin>>a>>b; switch (dzialanie) case '+': w=a+b; case '-': w=a-b; case ': ': w=a/b; case '* ': w=a*b; default: cout<<"niepoprawny OPERATOR\n"; cout<<w; Przykład 2 #include<iostream.h> int nr, delta; cin>>nr; switch (nr) case 1: case2: case3: delta=1; case 4: delta=12; //brak instrukcji break powoduje wykonanie default default: delta=0; cout<<"delta="<<delta; Instrukcje switch mogą być zagnieżdżone. switch (rok_operacji)

case 1997: switch(litera) case a : drukuj_a(); case b : drukuj_b(); case 1998: switch(litera) case a : drukuj_a(); case b : drukuj_b(); default: cout<<" NIEPOPRAWNY ROK OPERACJI\n";