Spis treści PLIKI BINARNE W JĘZYKU C. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF23

Podobne dokumenty
Spis treści PLIKI BINARNE W JĘZYKU C. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF23

Spis treści JĘZYK C - PLIKI BINARNE. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF30

Spis treści JĘZYK C - PRZEKAZYWANIE PARAMETRÓW DO FUNKCJI, REKURENCJA. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu

Spis treści JĘZYK C - ZAGNIEŻDŻANIE IF-ELSE, OPERATOR WARUNKOWY. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu

Spis treści JĘZYK C - ZAGNIEŻDŻANIE IF-ELSE, OPERATOR WARUNKOWY. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu

Spis treści JĘZYK C - OPERATORY BITOWE. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF32

Spis treści JĘZYK C - ZAGNIEŻDŻANIE IF-ELSE, OPERATOR WARUNKOWY. Metodyki i techniki programowania

Spis treści JĘZYK C - ŚLEDZENIE WYKONANIA PROGRAMU, DEBUGGER. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu

Spis treści JĘZYK C - INSTRUKCJA WARUNKOWA IF, OPERATORY RELACYJNE I LOGICZNE, WYRAŻENIA LOGICZNE. Informatyka 1

Spis treści JĘZYK C - TABLICE DWUWYMIAROWE, OPERACJE NA TABLICACH. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu

Spis treści JĘZYK C - INSTRUKCJA SWITCH, OPERATORY BITOWE. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF05

Spis treści JĘZYK C - TABLICE DWU- I WIELOWYMIAROWE, OPERACJE NA TABLICACH. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu

Spis treści JĘZYK C - TABLICE DWUWYMIAROWE, OPERACJE NA TABLICACH. Metodyki i techniki programowania

Spis treści JĘZYK C - PRZEKAZYWANIE PARAMETRÓW DO FUNKCJI, REKURENCJA. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu

Spis treści JĘZYK C - TABLICE JEDNOWYMIAROWE. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF05Z

Spis treści WSKAŹNIKI. DYNAMICZNY PRZYDZIAŁ PAMIĘCI W JĘZYKU C. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu

BHP JĘZYK C - INSTRUKCJE ITERACYJNE

Spis treści JĘZYK C - OPERATORY RELACYJNE I LOGICZNE, WYRAŻENIA LOGICZNE, INSTRUKCJA WARUNKOWA IF. Informatyka 1

Spis treści JĘZYK C - FUNKCJE. Metodyki i techniki programowania. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia MITP10

Spis treści JĘZYK C - INSTRUKCJA WARUNKOWA IF, OPERATORY RELACYJNE I LOGICZNE, WYRAŻENIA LOGICZNE. Metodyki i techniki programowania

Spis treści WSKAŹNIKI. DYNAMICZNY PRZYDZIAŁ PAMIĘCI W JĘZYKU C. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu

Spis treści PROGRAMOWANIE OBIEKTOWE W JĘZYKU C++: FUNKCJE ZAPRZYJAŹNIONE Z KLASĄ, PRZEŁADOWANIE OPERATORÓW. Informatyka 2

Spis treści JĘZYK C - WSKAŹNIKI, DYNAMICZNY PRZYDZIAŁ PAMIĘCI. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu

Spis treści OBSŁUGA PLIKÓW W JĘZYKU C++ Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF32

13 JĘZYK C - OPERATOR WARUNKOWY,

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

Spis treści JĘZYK C - INSTRUKCJA WARUNKOWA IF, OPERATORY RELACYJNE I LOGICZNE, WYRAŻENIA LOGICZNE, ZAGNIEŻDŻANIE IF-ELSE.

Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.

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

Spis treści TRYB GRAFICZNY SYSTEMU WINDOWS - PODSTAWY OBSŁUGI WYBRANEGO ŚRODOWISKA PROGRAMISTYCZNEGO. Informatyka 2

Podstawy programowania w języku C++

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

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

Spis treści JĘZYK C - INSTRUKCJA SWITCH, OPERATORY BITOWE. Metodyki i techniki programowania. Instrukcja do pracowni specjalistycznej z przedmiotu

Języki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński

Spis treści JĘZYK C - ŁAŃCUCHY ZNAKÓW. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF22

dr inż. Jarosław Forenc

Spis treści JĘZYK C - INSTRUKCJE ITERACYJNE FOR, WHILE I DO WHILE, ZAGNIEŻDŻANIE PĘTLI FOR, INSTRUKCJE CONTINUE, BREAK, I GOTO.

BADANIE ROZKŁADU TEMPERATURY W PIECU PLANITERM

Spis treści JĘZYK C - ŁAŃCUCHY ZNAKÓW. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF10Z

Spis treści JĘZYK C - STRUKTURY, POLA BITOWE, UNIE. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF23

dr inż. Jarosław Forenc

Spis treści OPERACJE WEJŚCIA-WYJŚCIA W JĘZYKU C++. STEROWANIE FORMATEM, MANIPULATORY. Informatyka 2

POMIARY PARAMETRÓW PRZEPŁYWU POWIETRZA

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Programowanie Proceduralne

Spis treści TRYB GRAFICZNY SYSTEMU WINDOWS - PODSTAWY OBSŁUGI WYBRANEGO ŚRODOWISKA PROGRAMISTYCZNEGO, TWORZENIE INTERFEJSU UŻYTKOWNIKA.

Funkcje zawarte w bibliotece < io.h >

Funkcje zawarte w bibliotece < io.h >

METROLOGIA EZ1C

POLITECHNIKA BIAŁOSTOCKA

Biblioteka standardowa - operacje wejścia/wyjścia

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

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

ISO/ANSI C dostęp do plików ISO/ANSI C. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików

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

POLITECHNIKA BIAŁOSTOCKA

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

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

PRZYKŁADY OPERACJI PLIKOWYCH z wykorzystaniem biblioteki <stdio.h>

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

Program wykonujący operację na plikach powinien zachować schemat działania zapewniający poprawną pracę:

Politechnika Białostocka

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

Programowanie w językach wysokiego poziomu

Laboratorium Systemów Operacyjnych. Ćwiczenie 4. Operacje na plikach

Operacje na plikach. Informatyka. Standardowe strumienie wejścia i wyjścia

Argumenty wywołania programu, operacje na plikach

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

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

1 Podstawy c++ w pigułce.

Struktury. Przykład W8_1

INFORMATYKA Studia Niestacjonarne Elektrotechnika

lekcja 8a Gry komputerowe MasterMind

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

JĘZYK C - TABLICE DWUWYMIAROWE,

2 Przygotował: mgr inż. Maciej Lasota

Spis treści PROGRAMOWANIE OBIEKTOWE W JĘZYKU C++: KLASY I OBIEKTY, DANE I FUNKCJE SKŁADOWE, PRAWA DOSTĘPU, KONSTRUKTORY I DESTRUKTORY.

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

Wymiar musi być wyrażeniem stałym typu całkowitego, tzn. takim, które może obliczyć kompilator. Przykłady:

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

Spis treści PLIKI TEKSTOWE W JĘZYKU C. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF22

Wprowadzenie do programowania i programowanie obiektowe

Programowanie strukturalne i obiektowe

Spis treści JĘZYK C - STRUKTURY, POLA BITOWE, UNIE. Metodyki i techniki programowania. Instrukcja do pracowni specjalistycznej z przedmiotu

tablica: dane_liczbowe

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

۰ Elementem jednostkowym takiego pliku jest bajt. ۰ Format pliku binarnego: [bajty pliku][eof]

1 Podstawy c++ w pigułce.

Wskaźniki. Programowanie Proceduralne 1

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Programowanie Procedurale. Pliki w języku C++

Podstawy programowania w języku C++

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

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

Ćwiczenia laboratoryjne. Oprogramowanie i badanie prostych metod sortowania w tablicach

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

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

Transkrypt:

Politechnika Białostocka Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Instrukcja do pracowni specjalistycznej z przedmiotu Informatyka 2 Kod przedmiotu: ES1C300 016 (studia stacjonarne) Spis treści 1. Opis stanowiska... 3 1.1. Stosowana aparatura... 3 1.2. Oprogramowanie... 3 2. Wiadomości teoretyczne... 3 2.1. Pliki binarne... 3 2.2. Operacje na plikach binarnych... 4 3. Przebieg ćwiczenia... 9 4. Literatura... 10 5. Zagadnienia na zaliczenie... 11 6. Wymagania BHP... 11 PLIKI BINARNE W JĘZYKU C Numer ćwiczenia INF23 Autor: dr inż. Jarosław Forenc Białystok 2016 Materiały dydaktyczne przeznaczone dla studentów Wydziału Elektrycznego PB. Wydział Elektryczny, Politechnika Białostocka, 2016 (wersja 3.1) Wszelkie prawa zastrzeżone. Żadna część tej publikacji nie może być kopiowana i odtwarzana w jakiejkolwiek formie i przy użyciu jakichkolwiek środków bez zgody posiadacza praw autorskich. Informatyka 2 2 z 12 Instrukcja INF23

1. Opis stanowiska 1.1. Stosowana aparatura Podczas zajęć wykorzystywany jest komputer klasy PC z systemem operacyjnym Microsoft Windows (XP/Vista/7). Sposób przechowywania liczby x w pliku binarnym jest taki sam, jak w pamięci komputera (Rys. 1). W przypadku zapisania tej samej liczby do pliku tekstowego, znajdzie się w nim 6 bajtów zawierających kody ASCII kolejnych cyfr liczby: 1, 2, 3, 4, 5, 6 (Rys. 2). 1.2. Oprogramowanie Na komputerach zainstalowane jest środowisko programistyczne Microsoft Visual Studio 2008 Standard Edition lub Microsoft Visual Studio 2008 Express Edition zawierające kompilator Microsoft Visual C++ 2008. 2. Wiadomości teoretyczne 2.1. Pliki binarne Plik binarny, w przeciwieństwie do pliku tekstowego, nie ma ściśle określonej struktury. Jeśli dane w pliku są przechowywane w sposób zgodny z ich reprezentacją w pamięci komputera, to mówimy, że są one zapisane w postaci binarnej. Zakładamy, że w programie została zadeklarowana i zainicjalizowana zmienna x typu int: int x = 123456; Liczba ta zajmuje w pamięci komputera 4 bajty (Rys. 1). 00000000 00000001 11100010 01000000 (2) 00 01 E2 40 (16) Rys. 1. Sposób przechowywania liczby całkowitej 123456 (typ int) w pamięci komputera (zapis w systemie dwójkowym i szesnastkowym) Rys. 2. Sposób przechowywania liczby całkowitej 123456 (typ int) w pliku tekstowym (zapis w systemie dwójkowym i szesnastkowym) 2.2. Operacje na plikach binarnych Na plikach binarnych wykonywane są dwie podstawowe operacje: - zapis do pliku - funkcja fwrite(); - odczyt z pliku - funkcja fread(). fwrite() Nagłówek: size_t fwrite(const void *p, size_t s, size_t n, FILE *stream); - funkcja fwrite() zapisuje n elementów o rozmiarze s bajtów każdy, do pliku wskazywanego przez stream, biorąc dane z obszaru pamięci wskazywanego przez p; - funkcja zwraca liczbę zapisanych elementów - jeśli jest ona różna od n, to wystąpił błąd zapisu (brak miejsca na dysku lub dysk zabezpieczony przed zapisem). Poniższy przykład zawiera deklaracje i inicjalizacje zmiennych różnych typów oraz sposób ich zapisu do pliku binarnego, wskazywanego przez zmienną o nazwie stream. Informatyka 2 3 z 12 Instrukcja INF23 Informatyka 2 4 z 12 Instrukcja INF23

int x = 10; int tab[5] = 1,2,3,4,5; float y = 1.2345; fwrite(&x,sizeof(int),1,stream); fwrite(tab,sizeof(int),5,stream); fwrite(tab,sizeof(tab),1,stream); fwrite(&y,sizeof(float),1,stream); Pierwszym argumentem funkcji fwrite() jest adres w pamięci komputera, spod którego czytane są dane do zapisania w pliku. Z tego względu przed zmiennymi x i y pojawia się znak &. Nazwa tablicy tab jest adresem pierwszego jej elementu więc znak & nie jest potrzebny. Drugi argument funkcji fwrite() określa rozmiar jednego elementu zapisywanego do pliku. Do określenia rozmiaru we wszystkich przypadkach zastosowano operator sizeof. Trzecim argumentem jest liczba zapisywanych elementów. Tablica tab zapisywana jest dwukrotnie. Za pierwszym razem zapisywanych jest 5 elementów tablicy, każdy o rozmiarze 4 bajtów. Za drugim razem zapisywana jest od razu cała tablica (drugi argument funkcji fwrite() jest równy rozmiarowi całej tablicy, zaś trzeci jest równy 1). W obu przypadkach całkowita liczba zapisywanych bajtów jest taka sama (20). Ostatni argument funkcji fwrite() wskazuje plik, do którego mają być zapisane dane. W kolejnym programie do pliku binarnego liczby.dat zapisywanych jest 10 wygenerowanych pseudolosowo liczb całkowitych (typ int). Dla uproszczenia zapisu pominięto sprawdzenie poprawności otwarcia pliku. Zapisanie 10 liczb całkowitych do pliku binarnego. #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) FILE *stream; int x; srand((unsigned int)time(null)); stream = fopen("liczby.dat","wb"); for (int i=0; i<10; i++) x = rand() % 100; fwrite(&x,sizeof(int),1,stream); fclose(stream); return 0; fread() Nagłówek: size_t fread(void *p, size_t s, size_t n, FILE *stream); - funkcja fread() pobiera n elementów o rozmiarze s bajtów każdy, z pliku wskazywanego przez stream i umieszcza odczytane dane w obszarze pamięci wskazywanym przez p; - funkcja zwraca liczbę odczytanych elementów - w przypadku gdy liczba ta jest różna od n, to wystąpił błąd końca strumienia (w pliku było mniej elementów niż podana wartość argumentu n). Przy założeniu, że nie jest znana ilość liczb w pliku liczby.dat, odczytanie pliku i wyświetlenie liczb na ekranie będzie wyglądało następująco. Odczytanie liczb całkowitych z pliku binarnego. #include <stdio.h> int main(void) FILE *stream; int x, ile = 0; stream = fopen("liczby.dat","rb"); Informatyka 2 5 z 12 Instrukcja INF23 Informatyka 2 6 z 12 Instrukcja INF23

fread(&x,sizeof(int),1,stream); while (feof(stream) == 0) printf("%d\n",x); ile++; fread(&x,sizeof(int),1,stream); fclose(stream); printf("odczytano: %d liczb\n",ile); return 0; Odczytanie pierwszej liczby (wywołanie funkcji fread()) następuje przed pętlą while. Jeśli podczas tej operacji nie osiągnięto końca pliku, to funkcja feof() zwraca wartość równą zero i następuje wejście do pętli. W pętli wyświetlana jest na ekranie odczytana liczba x i zwiększana wartości zmiennej ile o jeden (ile++). Na koniec pętli odczytywana jest kolejna liczba z pliku. Warunek w pętli while można zapisać także w uproszczonej postaci: while (!feof(stream)) W kolejnym przykładzie do pliku binarnego dane.dat zapisywana jest jedna struktura przechowująca dane osobowe oraz tablica przechowująca 5 liczb typu float. Zapisanie struktury i tablicy do pliku binarnego. #include <stdio.h> struct osoba char imie[15]; char nazw[20]; int wiek; ; int main(void) FILE *stream; struct osoba os = "Jan","Nowak",23; float tab[5] = 3.5f, 2.1f, -3.7f, 0.0f, 8.2f; stream = fopen("dane.dat","wb"); fwrite(&os,sizeof(struct osoba),1,stream); fwrite(tab,sizeof(float),5,stream); fclose(stream); return 0; W przypadku sprawdzania rozmiaru struktury należy po operatorze sizeof zawsze podawać nazwę typu strukturalnego (struct osoba) lub nazwę zmiennej strukturalnej (os). Nie można natomiast określać rozmiaru struktury na podstawie sumy rozmiarów jej pól. Jest to spowodowane tym, że kompilatory mogą pomiędzy polami struktury lub na jej końcu wstawiać dodatkowe bajty (tzw. wypełniacze). Dzięki temu pola struktury będą rozpoczynały się od adresów podzielnych przez 4. W powyższym przykładzie suma rozmiarów pól struktury wynosi 39 (15 1 bajt + 20 1 bajt + 1 4 bajty = 39 bajtów), zaś operator sizeof zwraca dla całej struktury wartość 40. Oprócz wymienionych funkcji fwrite() i fread(), do operacji na plikach binarnych stosowane są również funkcje: - void rewind(file *stream); - ustawia wskaźnik pozycji w pliku wskazywanym przez stream na początek pliku; - int fseek(file *stream, long int offset, int mode); - pozwala przejść bezpośrednio do dowolnego bajtu w pliku wskazywanym przez stream; offset określa wielkość przejścia w bajtach, zaś mode - punkt początkowy, względem którego określane jest przejście (SEEK_SET - początek pliku, SEEK_CUR - bieżąca pozycja, SEEK_END - koniec pliku); gdy wywołanie jest poprawne, to funkcja zwraca wartość 0; gdy wystąpił błąd (np. próba przekroczenia granic pliku), to funkcja zwraca wartość -1; Informatyka 2 7 z 12 Instrukcja INF23 Informatyka 2 8 z 12 Instrukcja INF23

- long int ftell(file *stream); - zwraca bieżące położeniu w pliku wskazywanym przez stream (liczbę bajtów od początku pliku); - int fgetpos(file *stream, fpos_t *pos); - zapamiętuję pod zminną pos bieżące położenie w pliku wskazywanym przez stream; zwraca 0, gdy wywołania jest poprawne i wartość niezerową, gdy wystąpił błąd; - int fsetpos(file *stream, const fpos_t *pos); - przechodzi do położenia pos w pliku wskazywanym przez stream; zwraca 0, gdy wywołania jest poprawne i wartość niezerową, gdy wystąpił błąd. 3. Przebieg ćwiczenia Na pracowni specjalistycznej należy wykonać zadania wskazane przez prowadzącego zajęcia. W różnych grupach mogą być wykonywane inne zadania. 1. Plik binarny dane.dat zawiera liczby całkowite typu int. Napisz program, który wyświetli na ekranie liczby odczytane z tego pliku oraz obliczy i wyświetli ich ilość, sumę i średnią arytmetyczną. Plik dane.dat wskaże prowadzący zajęcia. Przykładowe wywołanie programu: 10 15 30 ---------------- Ilosc liczb: 3 Suma: 55 Srednia: 18.33333 2. W pliku binarnym pomiar.dat zapisane są naprzemiennie wyniki pomiarów wartości chwilowych napięcia u(t) i prądu i(t) (liczby zmiennoprzecinkowe pojedynczej precyzji). Napisz program, który odczyta zawartość pliku pomiar.dat i na jego podstawie utworzy plik tekstowy moc.txt zawierający trzy kolumny liczb oznaczające: wartość chwilową napięcia, wartość chwilową prądu, wartość chwilową mocy. Plik pomiar.dat wskaże prowadzący zajęcia. u(t) i(t) u(t) i(t) u(t) i(t) 3. Plik binarny hdd.dat zawiera struktury dysk opisujące dysk twardy. Kolejne pola struktury opisują: producenta, model, pojemność (w GB), prędkość obrotową (w obr/min), cenę (w PLN). Plik hdd.dat wskaże prowadzący zajęcia. struct dysk char producent[20]; char model[20]; int pojemnosc; int predkosc; int cena; ; Napisz program, który: - odczyta zawartość pliku i wyświetli dane o dyskach na ekranie; - zapisze odczytane dane do pliku tekstowego hdd.txt (jeden wiersz pliku powinien zawierać dane jednego dysku); - obliczy i wyświetli średnią cenę dysków o pojemności większej lub równej 1000 GB i średnią cenę dysków o pojemności mniejszej od 1000 GB. 4. Literatura [1] Prata S.: Język C. Szkoła programowania. Wydanie VI. Helion, Gliwice, 2016. [2] Kernighan B.W., Ritchie D.M.: Język ANSI C. Programowanie. Wydanie II. Helion, Gliwice, 2010. [3] King K.N.: Język C. Nowoczesne programowanie. Wydanie II. Helion, Gliwice, 2011. [4] Kochan S.G.: Język C. Kompendium wiedzy. Wydanie IV. Helion, Gliwice, 2015. [5] Wileczek R.: Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows. Helion, Gliwice, 2009. [6] http://www.cplusplus.com/reference/clibrary - C library - C++ Reference Informatyka 2 9 z 12 Instrukcja INF23 Informatyka 2 10 z 12 Instrukcja INF23

5. Zagadnienia na zaliczenie 1. Podaj różnice pomiędzy plikami tekstowymi i binarnymi. 2. Scharakteryzuj argumenty funkcji fwrite() i fread(). 3. Opisz sposób wykrywania końca pliku binarnego. 6. Wymagania BHP Warunkiem przystąpienia do praktycznej realizacji ćwiczenia jest zapoznanie się z instrukcją BHP i instrukcją przeciw pożarową oraz przestrzeganie zasad w nich zawartych. W trakcie zajęć laboratoryjnych należy przestrzegać następujących zasad. - Sprawdzić, czy urządzenia dostępne na stanowisku laboratoryjnym są w stanie kompletnym, nie wskazującym na fizyczne uszkodzenie. - Jeżeli istnieje taka możliwość, należy dostosować warunki stanowiska do własnych potrzeb, ze względu na ergonomię. Monitor komputera ustawić w sposób zapewniający stałą i wygodną obserwację dla wszystkich członków zespołu. - Sprawdzić prawidłowość połączeń urządzeń. - Załączenie komputera może nastąpić po wyrażeniu zgody przez prowadzącego. - W trakcie pracy z komputerem zabronione jest spożywanie posiłków i picie napojów. - W przypadku zakończenia pracy należy zakończyć sesję przez wydanie polecenia wylogowania. Zamknięcie systemu operacyjnego może się odbywać tylko na wyraźne polecenie prowadzącego. - Zabronione jest dokonywanie jakichkolwiek przełączeń oraz wymiana elementów składowych stanowiska. - Zabroniona jest zmiana konfiguracji komputera, w tym systemu operacyjnego i programów użytkowych, która nie wynika z programu zajęć i nie jest wykonywana w porozumieniu z prowadzącym zajęcia. - W przypadku zaniku napięcia zasilającego należy niezwłocznie wyłączyć wszystkie urządzenia. - Stwierdzone wszelkie braki w wyposażeniu stanowiska oraz nieprawidłowości w funkcjonowaniu sprzętu należy przekazywać prowadzącemu zajęcia. - Zabrania się samodzielnego włączania, manipulowania i korzystania z urządzeń nie należących do danego ćwiczenia. - W przypadku wystąpienia porażenia prądem elektrycznym należy niezwłocznie wyłączyć zasilanie stanowiska. Przed odłączeniem napięcia nie dotykać porażonego. Informatyka 2 11 z 12 Instrukcja INF23 Informatyka 2 12 z 12 Instrukcja INF23