Programowanie strukturalne język C - wprowadzenie

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

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

Wykład 1

Programowanie strukturalne język C

Język ludzki kod maszynowy

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

Programowanie strukturalne i obiektowe

PROGRAMOWANIE w C prolog

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

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

1 Podstawy c++ w pigułce.

Microsoft IT Academy kurs programowania

1 Podstawy c++ w pigułce.

Języki programowania - podstawy

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Język C - podstawowe informacje

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

2 Przygotował: mgr inż. Maciej Lasota

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania w języku C

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

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

Zmienne, stałe i operatory

Na ekranie monitora zostaną wyświetlone w dwu liniach teksty Pierwsza linia Druga linia

Wstęp do programowania 1

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

Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia. Krzysztof Banaś Podstawy programowania 1

Programowanie obiektowe

Programowanie Proceduralne

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji?

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

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

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

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

wykład I uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje

Podstawy programowania C. dr. Krystyna Łapin

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

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

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

ECLIPSE wnioski z dwóch pierwszych laboratoriów

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

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

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

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

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

Program w C. wer. 10 z drobnymi modyfikacjami! Wojciech Myszka :28:

wykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury,

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

Tablice, funkcje - wprowadzenie

Funkcja (podprogram) void

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

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

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

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

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

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

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

Wstęp do programowania

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

Podstawowe części projektu w Javie

Podstawy Programowania C++

Typy danych. Przemysław Gawroński D-10, p lutego Wykład 1. (Wykład 1) Typy danych 25 lutego / 11

Pytania sprawdzające wiedzę z programowania C++

( wykł. dr Marek Piasecki )

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

Podstawy programowania - 1

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

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

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>

Podstawy języka C++ Marek Pudełko

Język C zajęcia nr 11. Funkcje

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

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

Języki i metody programowania I

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

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

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

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

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

Wstęp do Programowania, laboratorium 02

Wykład 1.sxw

Podstawy Programowania. Wykład 1

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

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

Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Program w C. wer. 12 z drobnymi modyfikacjami! Wojciech Myszka :59:

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

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

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów

Elementarne wiadomości o języku C

1. Wprowadzanie danych z klawiatury funkcja scanf

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

20. Pascal i łączenie podprogramów Pascala z programem napisanym w C

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

Temat 7. Programowanie mikrokontrolerów z rodziny PIC16 w języku C przy użyciu HI-TECH C for PIC10/12/16

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

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

Transkrypt:

Programowanie strukturalne język C - wprowadzenie Dr inż. Sławomir Samolej D102 C, tel: 865 1766, email: ssamolej@prz-rzeszow.pl WWW: ssamolej.prz-rzeszow.pl

Cechy programowania strukturalnego Możliwość wydzielenia w programie bloków, wydzielających grupę instrukcji, Możliwość wydzielenia w programie osobnych modułów (funkcji/procedur), które mogą być wielokrotnie wywoływane, W języku zdefiniowane są pętle (co eliminuje konieczność definiowania skoków goto), W odróżnieniu od programowania obiektowego struktury danych są definiowane niezależnie od instrukcji na nich operujących.

Historia Języka C Idea C pochodzi od języka BCPL, opracowanego przez M. Richardsa 1970 język B stworzony przez K. Thompsona Język C wprowadzono po raz pierwszy z systemem Unix w wersji 5; został wymyślony przez D. Ritchie 1978 pierwsza książka opis języka: B. Kerninghan, D. Ritchie: The C Programming Language 1989 wprowadzenie standardu ANSI C, zaadaptowanego przez ISO 1995 uzupełnienie 1 standardu i zdefiniowanie podzbioru C języka C++ 1999 standard języka C99

Cechy języka C (1) Język średniego poziomu łączy w sobie najlepsze cechy języków wysokiego poziomu (BASIC, Pascal, Ada) z możliwościami sterowania i elastycznością charakterystyczną dla assemblera. (Tzw. Assembler wysokiego poziomu) Pozwala operować na bitach, bajtach i adresach, przy zachowaniu dużej przenośności Nie wykonuje prawie żadnego sprawdzania błędów wykonania (np. przekroczenia granicy tablicy) Nie wymaga ścisłej zgodności typów między parametrem, a argumentem Możliwość bezpośredniego operowania na bitach, bajtach słowach i wskaźnikach (predysponowany do programowania systemowego). Niewielka liczba słów kluczowych (C89: 32,C99: 37). C to język strukturalny Możliwość definiowania podprogramów korzystających ze zmiennych lokalnych, będących odizolowanymi fragmentami niewrażliwymi na pozostałe części programu. Bezpośrednio obsługuje kilka konstrukcji pętli (while, do-while, for) Główny składnik strukturalny w języku C to funkcja Istnieje również możliwość definiowania bloków

C to język programistów Zastosowania: Cechy języka C (2) Programowanie systemowe (usługi UNIX, LINUX, Windows) Programowanie aplikacji Wprowadzenie C++ nie usunęło języka C do lamusa, wciąż istnieje szeroka pula zagadnień, w których język C pozostaje dominujący: Systemy wbudowane (sterowniki mikroprocesorowe, aplikacje czasu rzeczywistego) Oprogramowanie na platformę Linux Istnieje stworzona pokaźna pula programów napisanych w języku C, które wciąż pracują, i które trzeba pięlęgnować Język C++ przejął standard języka C, stąd dobre opanowanie języka C umożliwia szybkie opanowanie C++.

Tworzenie typowego programu w języku C Zwykle stosuje się standardową bibliotekę funkcji, które wspomagają proces tworzenia aplikacji (obsługa wejścia/wyjścia programu, funkcje matematyczne, przetwarzanie tekstów) Kod programu przekształcany jest na kod maszynowy (kompilacja), następnie łączony z kodem bibliotek, które zastosowano (konsolidacja) otrzymując program Można przygotować aplikację złożoną z wielu plików źródłowych, które kompilowane są osobno

Mapa pamięci języka C Skompilowany program tworzy 4 osobne obszary pamięci: Obszar kodu programu (instrukcje) Obszar zmiennych globalnych (zdefiniowane poza funkcjami, widoczne dla wszystkich funkcji zdefiniowanych pod nimi) Stos przechowywanie zmiennych lokalnych, zachowywanie stanu rejestrów przy wywoływaniu podprogramów itd. Sterta obszar wolnej pamięci, którą program może dynamicznie zaalokować. Stos Sterta Zmienne globalne Kod programu

Podstawowe elementy języka C Zestaw znaków Nazwy i słowa zastrzeżone Typy danych Stałe Zmienne i tablice Deklaracje Wyrażenia Instrukjce

Zestaw znaków języka C Duże litery alfabetu łacińskiego [A..Z] Małe litery alfabetu łacińskiego [a..z] Cyfry [0..9] Znaki specjalne:! * + \ < # ( = { > % ) ~ ; } / ^ - [ :,? & _ ] oraz znak odstępu (spacja) UWAGA: Nowe narzędzia do tworzenia oprogramowania zezwalają nawet na tworzenie nazw zmiennych i funkcji z zastosowaniem narodowych znaków diakrytycznych. Kod nie będzie wtedy zgodny ze starszymi wersjami standardu ANSI C, co zmniejszy jego przenoszalność.

Nazwy i słowa zastrzeżone NAZWA służy do identyfikowania elementów programu (stałych, zmiennych funkcji, typów danych) Nazwa składa się z z ciągu liter i cyfr, z zastrzeżeniem, że pierwszym znakiem nazwy musi być litera. Znak podkreślenia _ traktowany jest jako litera Język C rozróżnia duże i małe litery! W języku C zdefiniowano tzw. SŁOWA ZASTRZEŻONE (KLUCZOWE), posiadające szczególne znaczenie dla języka. Tych słów nie wolno użyć programiście jako nazw (np. zmiennych, stałych, funkcji itd.)

C89: Słowa kluczowe języka C auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while C99: _Bool _Imaginary restrict _Complex inline

Podstawowe typy danych int reprezentuje liczbę całkowitą char reprezentuje małą liczbę całkowitą o rozmiarze wystarczającym do przechowania pojedynczego znaku float reprezentuje liczbę rzeczywistą (reprezentowaną w kodzie koprocesora) double reprezentuje liczbę rzeczywistą o podwójnej precyzji Długość danych zależy od implementacji Wprowadzono również tzw. modyfikatory typów danych: short liczba krótka long liczba długa signed liczba ze znakiem unsigned liczba bez znaku Np.: unsigned int, long int (long), long double

Stałe całkowitoliczbowe: Stałe (1) Stałe dziesiętne (dozwolony zestaw znaków: 0 1 2 3 4 5 6 7 8 9 + -), np.: 0 1 897-234 +665 Stałe ósemkowe (dozwolony zestaw znaków: 0 1 2 3 4 5 6 7 + -), Uwaga: pierwszą cyfrą musi być 0, np.: 0 0122-0777 +0234 Stałe szesnastkowe (dozwolony zestaw znaków: 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F + -), Uwaga: pierwszymi znakami muszą być 0x lub 0X, np.: 0x 0xad3 0X233F Stałe rzeczywiste (dozwolony zestaw znaków: 0 1 2 3 4 5 6 7 8 9. + - E e), litera E lub e reprezentuje bazę systemu, tj. 10, Uwaga: 1.2 x 10-3 można zapisać 1.2e-3 lub 1.2E-3, np.: 0. 0.2 1.123 13.13E2 Stałe znakowe pojedyncze znaki zamknięte pomiędzy apostrofami: Uwaga: Stałe znakowe są w istocie kodami liter i innych znaków zgodnymi z ASCII lub UNICODE np.: A # (spacja)

Stałe (2) Escape-sekwencje kody znaków niedrukowanlych służących do podstawowego formatowania wyjścia znakowego programu lub plików tekstowych, Uwaga: znak sekwencji rozpoznawany jest po tym, że składa się z 2 znaków, w tym pierwszy jest zawsze backslash (\), np.: \n \t \ \ \? \\ \0 Łańcuchy znaków stała łańcuchowa (tekstowa) składa się z ciągu o dowolnej liczbie znaków. Ciąg ten mus być ograniczony znakami udzysłowu. Łańcuchy mogą zawierać escape-sekwencje. Np.: Wynik = To jest element \n tekstu Stałe symboliczne nazwa zastępująca łańcuch znaków. Do definicji służy pseudoinstrukcja #define np.: #define NAZWA text #define ROZMIAR_PAMIECI 1024

Zmienne Zmienna to nazwa (identyfikator) reprezentującą określony typ danych. Deklaracja zmiennej: int a; float x1, x2, x3; char c = A ;

Instrukcje Instrukcje to te fragmenty programu, które powodują jakąś czynność (akcję) komputera w trakcie wykonywania programu. Instrukcje można podzielić na cztery grupy: Instrukcje obliczające wartość wyrażeń np.: a = 3 + b; Instrukcje grupujące np.: { a = 5; b = 8; pole = a * b; printf( pole=%d, pole); } Instrukcje sterujące, np.: while, if Instrukcje wywołania funkcji.

Podstawowy szablon aplikacji w C #include <stdio.h> // Komentarz do końca //linijki void main(void) { /*komentarz standardowy*/ printf("hello World!\n"); }