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



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

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

#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 ); }

#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 ); }

2 Przygotował: mgr inż. Maciej Lasota

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

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

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

Proces tworzenia programu:

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

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

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

Programowanie strukturalne i obiektowe

Podstawy programowania C. dr. Krystyna Łapin

1 Podstawy c++ w pigułce.

( wykł. dr Marek Piasecki )

INFORMATYKA Studia Niestacjonarne Elektrotechnika

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

Zmienne, stałe i operatory

1 Podstawy c++ w pigułce.

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

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

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

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

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

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

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

1. Wprowadzanie danych z klawiatury funkcja scanf

Programowanie w języku C++

Funkcje standardowej biblioteki wejść-wyjść do wyświetlania i pobierania danych

Podstawy Informatyki sem. I 2014/2015 studia zaoczne Elektronika i Telekomunikacja!

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

Wstęp do programowania. Wykład 1

Wykład I. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

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

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

Laboratorium 1: Podstawy języka c. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Podstawy programowania - 1

Język ludzki kod maszynowy

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

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Wstęp do Programowania, laboratorium 02

Pliki. Informacje ogólne. Obsługa plików w języku C

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++

Podstawy Programowania. Wykład 1

Elementarne wiadomości o języku C

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

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

1. Brian W. Kernighan, Dennis M. Ritchie, Język ANSI C, WNT, Warszawa 1998.

Programowanie I C / C++ laboratorium 01 Organizacja zajęć

Podstawy programowania. Wykład 2 Zmienne i obsługa wejścia/wyjścia. Krzysztof Banaś Podstawy programowania 1

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

C++ wprowadzanie zmiennych

Każdy z nich posiada swoje parametry. W przypadku silnika może to być moc lub pojemność, w przypadku skrzyni biegów można mówić o skrzyni

Podstawy programowania w C materiały dla ucznia:

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

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

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

Argumenty wywołania programu, operacje na plikach

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

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

Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013

Tablice, funkcje - wprowadzenie

Wykład 1. Proponowany termin kolokwium zaliczeniowego ostatni wykład w semestrze letnim

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p.

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

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Język C++ zajęcia nr 1

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

Podstawy Programowania

Programowanie strukturalne język C - wprowadzenie

Języki i metody programowania. Omówienie języków C, C++ i Java

Podstawy programowania (1)

int tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania

Programowanie strukturalne. dr inż. Tadeusz Jeleniewski

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Typ użyty w deklaracji zmiennej decyduje o rodzaju informacji, a nazwa zmiennej symbolicznie opisuje wartość.

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Wstęp do programowania

Wykład 1.sxw

Podstawy programowania w C++

Podstawy programowaniu. Wykład: 3. Budowa programu Operacje we/wy Instrukcje wyboru. dr Artur Bartoszewski - Podstawy programowania, sem.

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Programowanie w językach wysokiego poziomu

Część 4 życie programu

Struktury, unie, formatowanie, wskaźniki

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Utworzenie pliku. Dowiesz się:

IX. Wskaźniki.(3 godz.)

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

Podstawy Programowania.

Informatyka I: Instrukcja 4.2

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

Co nie powinno być umieszczane w plikach nagłówkowych:

WIADOMOŚCI WSTĘPNE WPROWADZENIE DO JĘZYKA TURBO PASCAL. Klawisze skrótów. {to jest właśnie komentarz, moŝna tu umieścić dowolny opis}

Wprowadzenie do języka Java

Ćwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak:

Transkrypt:

Metodyki i Techniki Programowania 1 1 ZAJ CIA 3. 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA IDE zintegrowane środowisko programistyczne, zawierające kompilator, edytor tekstu i linker, pozwalające sterować nimi w ramach jednego programu, np.: środowisko Borland C++ 3.1 lub Bloodshed DEV C++. Edytor tekstowy program, w którym zapisujemy kod źródłowy (.cpp). Pliki bibliotek (.h) zawierają standardowe funkcje języka C. Preprocesor zajmuje się kodem źródłowym, zanim jeszcze rozpocznie się kompilacja, m.in. potrafi dołączać wybrane pliki oraz określać, które części kodu widoczne dla kompilatora. Dyrektywy preprocesora umieszcza się na początku kodu źródłowego i obejmują obszar od symbolu # do najbliŝszego znaku końca linii. Kompilator program przetwarzający kod i umieszczający go w pliku (.obj). źródłowy (.cpp) na kod maszynowy Linker program scalający plik (.obj) z kodem startowym i kodem bibliotek na plik wykonywalny (.exe). Kod startowy stanowi interfejs pomiędzy programem a systemem operacyjnym. Debugger program słuŝący do eliminowania błędów (ang. bugs). KOMPILATOR I LINKER PROCES POWSTAWANIA PROGRAMU mgr inŝ. Adam Idźkowski 1

Metodyki i Techniki Programowania 1 2 WYKONYWANIE PROGRAMU PYTANIA KONTROLNE 1. Wyjaśnij róŝnicę między plikiem kodu źródłowego, plikiem kodu obiektowego a plikiem wykonywalnym. 2. Do czego słuŝy preprocesor, kompilator, linker? 3. Wyjaśnij proces wykonywania programu przez komputer. mgr inŝ. Adam Idźkowski 2

Metodyki i Techniki Programowania 1 3 2. OGÓLNA STRUKTURA PROGRAMU, PIERWSZY PROGRAM W JĘZYKU C, FUNKCJA printf STRUKTURA PROGRAMU PISANEGO W JĘZYKU C Rys. 2. Struktura programów w języku C. Modułowa struktura programów tworzonych w języku C. Funkcje moduły składają się z instrukcji. Jest 5 rodzajów instrukcji. Instrukcje składają się ze słów kluczowych, danych i operatorów. PIERWSZY PROGRAM W JĘZYKU C Napiszmy nasz pierwszy program w języku C. 1. KaŜdy program w C musi obowiązkowo zawierać funkcję main. Od tej funkcji program rozpoczyna zawsze swoje działanie (słowo kluczowe void przed main mgr inŝ. Adam Idźkowski 3

Metodyki i Techniki Programowania 1 4 oznacza, Ŝe funkcja nie zwraca Ŝadnej wartości, natomiast void w nawiasach, Ŝe nie ma ona parametrów). 2. Instrukcje funkcji zapisujemy wewnątrz nawiasów { }, poszczególne instrukcje oddzielamy średnikami. 3. Przed funkcją main umieszczamy tzw. dyrektywy preprocesora. 4. NaleŜy równieŝ zwrócić uwagę na to, Ŝe w języku C rozróŝniane małe i duŝe litery, a więc printf, Printf lub PRINTF dla kompilatora to nie to samo (oczywiście poprawny jest tylko pierwszy zapis). 5. Komentarze w języku C umieszcza się pomiędzy zestawem znaków /* i */, lub //. #include <stdio.h> // dyrektywy preprocesora int main(void) /* Nasz pierwszy program w C */ { printf( Dzien dobry ); // uzycie funkcji printf } /* innych funkcji w tym programie nie ma */ W kodzie źródłowym pojawiły się następujące zestawy znaków: /* Tak zamieszczamy komentarz */ #include dyrektywa dołączenia tekstu zawartego w pliku stdio.h plik biblioteka (Standard Input Output), w nim zawarte definicje funkcji wejścia/wyjścia, między innymi funkcja ptintf( ) main() główna funkcja programu void typ danej pustej, tu: brak argumentów funkcji main() int typ zwracanej wartości przez funkcję (integer liczba całkowita) { początek treści funkcji } koniec treści funkcji printf() standardowa funkcja formatowanego wyjścia (to ona pozwala wyświetlić na ekranie łańcuchy znaków oraz liczby we właściwym formacie) 3. Dane w j zyku C, dane stałe, deklaracje i typy zmiennych, operatory arytmetyczne i przypisania, funkcje printf i scanf DANE W JĘZYKU C Nie ma porządnego programu bez danych. Kiedy wprowadzamy do jakiegoś programu liczby, litery czy całe łańcuchy znaków oczekujemy, zostaną Ŝe one w jakiś sposób przetworzone. Mamy tu do czynienia z danymi wejściowymi. Program komputerowy przetwarza te dane na konkretne wyniki. Tu z kolei mamy do czynienia z danymi wyjściowymi. NaleŜy zwrócić uwagę na to, Ŝe bez względu czy to dane wejściowe czy teŝ wyjściowe mamy dwie rodziny typów danych: całkowite i zmiennoprzecinkowe. Czym typy danych, jak dane deklarować i jak je uŝywać? mgr inŝ. Adam Idźkowski 4

Metodyki i Techniki Programowania 1 5 Dane moŝna podzielić teŝ na stałe i zmienne. Stałe, raz zadeklarowane, nie juŝ zmieniają swojej wartości w całym programie. Dane zmienne zwykle swoją wartość zmieniają. DANE STAŁE, DEKLARACJA STAŁYCH W programie daną Są stałą moŝe być np. znana z matematyki liczba π. Jak takie stałe zadeklarować? dwa równowaŝne sposoby, jedna za pomocą instrukcji preprocesora # define, druga za pomocą słowa kluczowego const. #define PI 3.14 const PI=3.14 TYPY ZMIENNYCH, DEKLARACJA ZMIENNYCH KaŜda zmienna w pisanym przez nas programie musi być najpierw zadeklarowana, Zapis int x; (patrz przykład 1.) oznacza, Ŝe zmienna jest typu int (ang. integer liczba całkowita). Dane typu unsigned short int (bez znaku) mogą przechowywać liczby całkowite z zakresu <0; 65535>, a więc 65536 róŝnych wartości. Dane typu short int (ze znakiem) mogą przechowywać liczby całkowite z zakresu <-32768; 32768>, a więc równieŝ 65536 róŝnych wartości. W zaleŝności od kompilatora dane typu int zajmują 2 lub 4 bajty, czyli 16 lub 32 bity. A więc mogą przyjmować 2 16 =65536 lub 2 32 =4294967296 róŝnych wartości. Typy zmiennych prezentuje tabela 1. Tabela 1. Typy danych w języku C (kompilator DevC++ 5.0) Nazwa_typu Ile bajtów pami ci Zakres unsigned char 1 bajt 0 255 char 1 bajt -128 127 unsigned short int (lub unsigned short) 2 bajty 0 65535 short int (lub short) 2 bajty -32 768 32 767 unsigned int (lub unsigned long) 4 bajty 0 4 294 967 295 int (lub long) 4 bajty -2 147 483 648 2 147 483 647 long long (lub long long int) 8 bajtów jeszcze większy zakres... float 4 bajty 3.4 * (10-38 ) 3.4 * (10 38 ) (do 7 znaków po przecinku) double 8 bajtów 1.7 * (10-308 ) 1.7 * (10 308 ) (do 15 znaków po przecinku) long double 12 bajtów jeszcze więcej miejsc po przecinku... mgr inŝ. Adam Idźkowski 5

Metodyki i Techniki Programowania 1 6 Widzimy więc, Ŝe deklaracja zmiennej odbywa się poprzez zapisanie nazwy typu zmiennej oraz nazwy zmiennej. Taka deklaracja oznacza przydzielenie dla zmiennej w zaleŝności od typu określonej ilości bajtów pamięci. Deklaracja pojedynczej zmiennej: Nazwa_typu nazwa zmiennej; Deklaracja kilku zmiennych jednego typu: Nazwa_typu nazwa zmiennej_1, nazwa zmiennej_2, nazwa zmiennej_3 ; Typ char przechowuje wartości liczbowe od 0 do 255, co moŝe zostać przełoŝone na kod ASCII danego znaku (patrz tabele 2 i 3). Ogólnie, typy int i long uŝywane do deklaracji zmiennych będących liczbami całkowitymi natomiast float i double do deklaracji zmiennych będących liczbami rzeczywistymi (zmiennoprzecinkowymi). Wybór typu zaleŝy od tego jaką wartość moŝe osiągnąć zmienna. Tabela 2. Kody ASCII (Dec liczba w kodze dziesiętnym, Chr odpowiadający jej znak, Hx liczba w kodzie szesnastkowym, Oct liczba w kodze ósemkowym ) mgr inŝ. Adam Idźkowski 6

Metodyki i Techniki Programowania 1 7 Tabela 3. Tabela kodów ASCII pozostałe znaki od 128 do 255 OPERATORY ARYTMETYCZNE I PRZYPISANIA W przykładzie 1. spotkamy się z następującym zapisem: pole_kola = PI*r*r; gdzie: PI stała, r zmienna opisująca promień koła. Wykorzystano tu operator arytmetyczny mnoŝenia * oraz tzw. instrukcję przypisania =. Zmiennej pole_kola przypisaliśmy wartość PI*r*r. PoniŜej przedstawiony jest sposób zapisu operatorów arytmetycznych i przypisania w języku C. operatory arytmetyczne: + dodawanie odejmowanie mnoŝenie / dzielenie % reszta z dzielenia operatory przypisania: = zwykłe przypisanie x = 2; += przypisanie sumy x+=2; x = x + 2; = przypisanie róŝnicy x =2; x = x 2; = przypisanie iloczynu x =2; x = x 2; /= przypisanie ilorazu x /=2; x = x / 2; %= przypisanie reszty x%=2; x = x % 2; mgr inŝ. Adam Idźkowski 7

Metodyki i Techniki Programowania 1 8 Funkcje z biblioteki <stdio.h> FUNKCJA printf wysyła sformatowane dane do standardowego strumienia wyjściowego int printf ( tekst_sterujący, argument_1, argument_2,... ) ; tekst sterujący jest to stała łańcuchowa (w podwójnych cudzysłowach) zawierająca: zwykłe znaki (które po prostu kopiowane na ekran) kody formatuj ce kolejnych argumentów: %c pojedynczy znak %s łańcuch znaków %d liczba dziesiętna ze znakiem %f liczba zmiennoprzecinkowa (notacja dziesiętna) %e liczba zmiennoprzecinkowa (notacja wykładnicza) %g liczba zmiennoprzecinkowa (krótszy z formatów %f %e) %u liczba dziesiętna bez znaku %x liczba w kodzie szesnastkowym (bez znaku) %o liczba w kodzie ósemkowym (bez znaku) l przedrostek (long) stosowany przed: d u x o FUNKCJA scanf odczytuje dane ze standardowego strumienia wejściowego w/g zadanego formatu i zapamiętuje je pod zadanymi adresami pamięci int scanf ( tekst_sterujący, adres_1, adres_2,... ) ; tekst sterujący jest to stała łańcuchowa (w podwójnych cudzysłowach) zawierająca instrukcję jak traktować kolejne dane wczytywane ze strumienia (jakie typy zmiennych pod adresami adres_1, adres_2,... ) Kody formatuj ce (podobne jak dla printf() ): %c pojedynczy znak %s łańcuch znaków %d liczba dziesiętna ze znakiem %f lub %e liczba zmiennoprzecinkowa %u liczba dziesiętna bez znaku %x liczba w kodzie szesnastkowym (bez znaku) %o liczba w kodzie ósemkowym (bez znaku) l przedrostek stosowany przed: d u x o (long int) l przedrostek stosowany przed: f e (double) L przedrostek stosowany przed: f e (long double) & operator adresowania (zwraca adres zmiennej podanej po operatorze) mgr inŝ. Adam Idźkowski 8

Metodyki i Techniki Programowania 1 9 PRZYKŁAD #include <stdio.h> #include <conio.h> #include<stdlib.h> #define PI 3.14 int main(void) { system( cls ); //funkcja czyszczaca ekran (z stdlib.h) float pole_kola, r; //deklaracja zmiennych printf( Podaj promien kola r = ); // zastosowanie printf scanf( %f, &r ); // zastosowanie scanf printf( \n ); pole_kola = PI*r*r; //przypisanie printf( Wynik: %f, pole_kola); /* printf wyswietlenie wyniku we wlasciwym formacie */ } getch(); /* funkcja oczekujaca na nacisniecie dowolnego klawisza (z conio.h) */ PYTANIA 1. Jakich typów danych uŝyjesz do przedstawienia następujących danych? ładunek elektronu, najczęściej występująca litera w Twoim imieniu, liczba studentów w Twojej grupie, liczba mieszkańców Londynu. 2. Jak deklaruje się stałe? 3. Jak deklaruje się zmienne? 4. Jaka jest róŝnica pomiędzy stałą a zmienną? 5. Do czego słuŝą kody formatujące w funkcjach printf i scanf? 6. Jakie znasz operatory arytmetyczne? ZADANIA 1. Napisz program, na dodawanie dwóch liczb zmiennoprzecinkowych. Wynik wyświetl z dwoma miejscami po przecinku. 2. Napisz program liczący rezystancję połączenia równoległego dwóch rezystorów. 3. Napisz program, który przedstawi wybraną liczbę całkowitą w kodzie ósemkowym i szesnastkowym. 4. Napisz program, który pobierze dowolny znak z klawiatury i przedstawi jego wartość w kodzie dziesiętnym, ósemkowym i szesnastkowym. mgr inŝ. Adam Idźkowski 9