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

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

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

Funkcja (podprogram) void

Programowanie strukturalne i obiektowe

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

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

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

zastępować zarezerwowane słowa lub symbole innymi,

Język C - podstawowe informacje

Wykład. Materiały bazują częściowo na slajdach Marata Dukhana

INSTRUKCJE REPETYCYJNE PĘTLE

tablica: dane_liczbowe

Podstawy programowania C. dr. Krystyna Łapin

Wykład 7 Abstrakcyjne typy danych słownik (lista symboli)

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

Zofia Kruczkiewicz, ETE8305_2 1

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1

int tab_a [ 2 ] [ 3 ];

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

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

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

struct Student { char nazwisko[30]; int wiek; float ocena; }; #define MAX_ROZMIAR 3 Student lista_studentow[max_rozmiar];

Poprzedni wykład [ ] :

Wykład 6_1 Abstrakcyjne typy danych stos Realizacja tablicowa i za pomocą rekurencyjnych typów danych

Języki programowania obiektowego Nieobiektowe elementy języka C++

INSTRUKCJE REPETYCYJNE PĘTLE

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

Programowanie Proceduralne

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

Programowanie w C++ Wykład 9. Katarzyna Grzelak. 14 maja K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30

Podstawy programowania - 1

Wstęp do programowania 1

WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

Podział programu na moduły

Operacje wejścia/wyjścia odsłona pierwsza

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

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

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

Ćwiczenie nr 3. Temat: Definicje i wykorzystanie funkcji, parametry funkcji

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory

1 Podstawy c++ w pigułce.

main( ) main( void ) main( int argc, char argv[ ] ) int MAX ( int liczba_1, liczba_2, liczba_3 ) źle!

Wstęp do Programowania, laboratorium 02

Podstawy programowania. Wykład 9 Preprocesor i modularna struktura programów. Krzysztof Banaś Podstawy programowania 1

Języki programowania - podstawy

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory

Podstawy programowania (1)

Etapy kompilacji. Wykład 7. Przetwarzanie wstępne, str. 1. #define ILE for(i=0; i<ile; i++)...

Zaawansowane programowanie w języku C++ Funkcje uogólnione - wzorce

Wstęp do programowania

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

Abstrakcyjne struktury danych w praktyce

Tablice, funkcje - wprowadzenie

Etap 2 - Budowa interfejsu. typedef struct ELEMENT* stos; struct ELEMENT { dane Dane; stos Nastepny; }; struct kolejka { stos Poczatek, Koniec; };

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

2 Przygotował: mgr inż. Maciej Lasota

Wykład 1

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

1. Abstrakcyjne typy danych

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

1 Podstawy c++ w pigułce.

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

Język C, tablice i funkcje (laboratorium)

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

Wykład 1. Program przedmiotu. Programowanie (język C++) Literatura. Program przedmiotu c.d.:

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

Podstawy programowania w C materiały dla ucznia:

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

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

Stałe, tablice dynamiczne i wielowymiarowe

Laboratorium 3: Preprocesor i funkcje ze zmienną liczbą argumentów. mgr inż. Arkadiusz Chrobot

KURS C/C++ WYKŁAD 8. Deklaracja funkcji informuje komplilator jaką wartość funkcja będzie zwracała i jakiego typu są jej argumenty.

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

#line #endif #ifndef #pragma

Struktura programu. Projekty złożone składają się zwykłe z różnych plików. Zawartość każdego pliku programista wyznacza zgodnie z jego przeznaczeniem.

#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 Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

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

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego

Wykład 5_2 Algorytm ograniczania liczby serii za pomocą kopcowego rozdzielania serii początkowych

Część 4 życie programu

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

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

Wprowadzenie do szablonów szablony funkcji

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

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

Microsoft IT Academy kurs programowania

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

Wprowadzenie do szablonów szablony funkcji

Podstawy Programowania.

C-struktury wykład. Dorota Pylak

Programowanie w elektronice: Podstawy C

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

// Liczy srednie w wierszach i kolumnach tablicy "dwuwymiarowej" // Elementy tablicy są generowane losowo #include <stdio.h> #include <stdlib.

Język C zajęcia nr 11. Funkcje

Język C, tablice i funkcje (laboratorium, EE1-DI)

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 7 maja K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31

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

Projektowanie klas c.d. Projektowanie klas przykład

Transkrypt:

Zawartość plików nagłówkowych (*.h) : #include <stdio.h> #define ESC 27 dyrektywy dołączenia definicje stałych #define MAX(x,y) ((x)>(y)?(x):(y)) definicje makr int menu(char* tab[], int ilosc); struct TOsoba char nazwisko[30]; int wiek; ; inline double Kwadrat(double x) return x*x; class TSpisOsob; extern int licznik; template <class Element> class Tablica Element t[10]; prototypy funkcji definicje typów definicje funkcji inline deklaracje nazw klas i struktur deklaracje zmiennych szablony klas i funkcji Co nie powinno być umieszczane w plikach nagłówkowych: int x,y; double z; long tablica[10]; int Suma(int a,int b) return a+b; nie umieszczamy definicji zmiennych (ale można umieścić deklaracje np extern long tablica[10]; nie umieszczamy definicji zwykłych funkcji 1

Podstawowe dyrektywy (polecenia) preprocesora: 1) Dyrektywa #include <stdio.h> oznacza dołączenie w miejscu wystąpienia tego polecenia standardowego pliku nagłówkowego, dyrektywa #include tablica1.h oznacza dołączenie pliku nagłówkowego użytkownika 2) Dyrektywa #define nazwa tworzy makrodefinicję, #undef nazwa unieważnia makrodefinicję 3) Polecenia kompilacji warunkowej pozwalają na kompilację tylko jednej z sekcji instrukcji: #if wyrażenie1 sekcja _instrukcji1 #elif wyrażenie2 sekcja _instrukcji2 #else końcowa_sekcja_instrukcji 4) Polecenia warunkowej kompilacji uniemożliwiają wielokrotne dołączanie tego samego pliku nagłówkowego, lub jego fragmentu podczas kompilacji wieloplikowej: #ifndef nazwa #define nazwa... // te deklaracje kompilator analizuje tylko raz,... // podczas definiowania makro nazwa 2

PRZYKŁAD 1. Implementacja zadania w postaci programu jednoplikowego zawartość pliku program.cpp // definicja podstawowego typu "Student" wspólnego dla wszystkich funkcji struct Student char nazwisko[30]; int wiek; ; void Wczytaj( Student& s ); // deklaracje podstawowych operacji na strukturze "Student void Wyswietl( const Student& s ); #define ESC 27 // deklaracje i definicje związane z interfejsem użytkownika #define ENTER 13 #include <stdio.h> #include <conio.h> void WyczyscBuforConio( void ); void CzekajNaKlawisz( int klawisz ); /*======================================================== definicja głównej funkcji programu ========================================================*/ void main( void ) Student dane_studenta; int klawisz; do printf("menu:\n"); printf(" 1 - wczytaj dane studenta\n"); printf(" 2 - wyswietl dane studenta\n"); printf("esc - zakoncz program\n"); klawisz=getch(); switch( klawisz ) case '1': Wczytaj(dane_studenta); break; case '2': Wyswietl(dane_studenta); break; while(klawisz!=esc); printf("\nkoniec programu. Nacisnij klawisz ENTER"); CzekajNaKlawisz(ENTER); 3

/*======================================================== cd. pliku program.cpp - implementacje funkcji składowych ========================================================*/ void Wczytaj( Student& s ) printf( "Operacja wczytywania danych studenta\n\n" ); printf( "Podaj nazwisko: " ); scanf( "%s", s.nazwisko ); printf( "Podaj wiek: " ); scanf( "%d", &s.wiek ); void Wyswietl( const Student& s ) printf( "Wyswietlanie danych studenta\n\n" ); printf( "Nazwisko = %s\n", s.nazwisko ); printf( "Wiek = %d\n", s.wiek ); printf( "\nnacisnij klawisz ENTER" ); CzekajNaKlawisz( ENTER ); void WyczyscBuforConio( void ) while( kbhit() ) getch(); void CzekajNaKlawisz( int klawisz ) WyczyscBuforConio(); while( getch()!=klawisz ); // koniec pliku program.cpp 4

PRZYKŁAD 2. Implementacja przykładu 1 w postaci projektu wieloplikowego pliki nagłówkowe pliki źródłowe plik projektu konsola.h konsola.cpp student.h student.cpp program.bpr konsola.h student.h glowny.cpp #ifndef _KONSOLA_H #define _KONSOLA_H zawartość pliku konsola.h // deklaracje i definicje związane z interfejsem użytkownika #include <stdio.h> #include <conio.h> #define ESC 27 #define ENTER 13 void WyczyscBuforConio( void ); void CzekajNaKlawisz( int klawisz ); void WyczyscBuforConio( void ) while( kbhit() ) getch(); void CzekajNaKlawisz( int klawisz ) WyczyscBuforConio(); while( getch()!= klawisz ); zawartość pliku konsola.cpp 5

#ifndef _STUDENT_H #define _STUDENT_H zawartość pliku student.h // definicja podstawowego typu "Student" wspolnego dla wszystkich funkcji struct Student char nazwisko[30]; int wiek; ; // deklaracje podstawowych operacji na strukturze "Student void Wczytaj(Student& s); void Wyswietl(const Student& s); #include "student.h" zawartość pliku student.cpp void Wczytaj( Student& s ) printf( "Operacja wczytywania danych studenta\n\n" ); printf( "Podaj nazwisko: " ); scanf( "%s", s.nazwisko ); printf( "Podaj wiek: " ); scanf( "%d", &s.wiek ); void Wyswietl( const Student& s ) printf( "Wyswietlanie danych studenta\n\n" ); printf( "Nazwisko = %s\n", s.nazwisko ); printf( "Wiek = %d\n", s.wiek ); printf("\nnacisnij klawisz ENTER"); CzekajNaKlawisz( ENTER ); 6

#include "student.h" zawartość pliku glowny.cpp // ponowne dołączenie tych samych definicji spowoduje błędy // #include "student.h" // np. "Error: multiple declaration for 'Student' // aby ich uniknąć należy dodać dyrektywy kompilacji warunkowej // #ifdef, #ifndef, #else, void main(void) Student dane_studenta; int klawisz; do printf("menu:\n"); printf(" 1 - wczytaj dane studenta\n"); printf(" 2 - wyswietl dane studenta\n"); printf("esc - zakoncz program\n"); klawisz=getch(); switch(klawisz) case '1': Wczytaj(dane_studenta); break; case '2': Wyswietl(dane_studenta); break; while(klawisz!=esc); printf("\nkoniec programu. Nacisnij klawisz ENTER"); CzekajNaKlawisz(ENTER); plik projektu program.bpr konsola.cpp student.cpp glowny.cpp 7