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

Podobne dokumenty
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 - ZAGNIEŻDŻANIE IF-ELSE, OPERATOR WARUNKOWY. Metodyki i techniki programowania

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

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. 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 - INSTRUKCJA WARUNKOWA IF, OPERATORY RELACYJNE I LOGICZNE, WYRAŻENIA LOGICZNE. Informatyka 1

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 - TABLICE JEDNOWYMIAROWE, ŁAŃCUCHY ZNAKÓW. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu

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

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

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. Metodyki i techniki programowania

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

BHP JĘZYK C - INSTRUKCJE ITERACYJNE

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

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

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

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 - INSTRUKCJA WARUNKOWA IF, OPERATORY RELACYJNE I LOGICZNE, WYRAŻENIA LOGICZNE, ZAGNIEŻDŻANIE IF-ELSE.

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

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

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

13 JĘZYK C - OPERATOR WARUNKOWY,

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

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

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

Język C, tablice i funkcje (laboratorium)

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

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

Politechnika Białostocka

dr inż. Jarosław Forenc

JĘZYK C - TABLICE DWUWYMIAROWE,

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

dr inż. Jarosław Forenc

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 TRYB GRAFICZNY SYSTEMU WINDOWS - PODSTAWY OBSŁUGI WYBRANEGO ŚRODOWISKA PROGRAMISTYCZNEGO, TWORZENIE INTERFEJSU UŻYTKOWNIKA.

Programowanie w C Wartości pseudolosowe i pomiar czasu

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

Programowanie w języku C++ Agnieszka Nowak Brzezińska Laboratorium nr 2

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Tablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119

Liczby pseudolosowe. #include <stdio.h> #include <stdlib.h> int main() { printf("%d\n", RAND_MAX); return 0; }

Podstawy informatyki. Wykład nr 1 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

tablica: dane_liczbowe

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

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

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

BADANIE ROZKŁADU TEMPERATURY W PIECU PLANITERM

METROLOGIA EZ1C

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

Spis treści. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF03Z. Autor: dr inż.

for (i=0; i<10; i=i+1) instrukcja; instrukcja zostanie wykonana 10 razy for (inicjalizacja; test; aktualizacja) instrukcja;

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

Podstawy Programowania C++

Podstawy Programowania

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015

Lab 9 Podstawy Programowania

1 Podstawy c++ w pigułce.

Tablice jednowymiarowe

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

while (test) instrukcja; int i=0; while (i<10) i++; dopóki test prawdziwy wykonuj instrukcję Wykonano: 35% / \ fałsz test prawda instrukcja

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

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

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

Warsztaty dla nauczycieli

2 Przygotował: mgr inż. Maciej Lasota

POMIARY PARAMETRÓW PRZEPŁYWU POWIETRZA

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

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

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

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

Wskaźniki w C. Anna Gogolińska

ARKUSZ KALKULACYJNY MICROSOFT EXCEL cz.1 Formuły, funkcje, typy adresowania komórek, proste obliczenia.

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

lekcja 8a Gry komputerowe MasterMind

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

Wstęp do programowania

if (warunek) instrukcja1; if (warunek) instrukcja1; else instrukcja2; a > b - a większe od b if (warunek) instrukcja1; a <= b - a mniejsze lub równe b

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

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

Język C zajęcia nr 11. Funkcje

ELEMENTY RLC W OBWODACH PRĄDU SINUSOIDALNIE ZMIENNEGO

*W uproszczeniu: jest dziewięciu sędziów przyznających po dwie noty: za wartość techniczną i artystyczną (skala od 0.0 do 6.0)

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

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia

POLITECHNIKA BIAŁOSTOCKA

Zmienne i struktury dynamiczne

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

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

POLITECHNIKA BIAŁOSTOCKA

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

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

Programowanie strukturalne i obiektowe

IX. Wskaźniki.(3 godz.)

Część 4 życie programu

Transkrypt:

Politechnika Białostocka Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Instrukcja do pracowni specjalistycznej z przedmiotu Informatyka 1 Kod przedmiotu: EZ1C200 010 (studia niestacjonarne) Spis treści 1. Opis stanowiska... 3 1.1. Stosowana aparatura... 3 1.2. Oprogramowanie... 3 2. Wiadomości teoretyczne... 3 2.1. Tablica elementów... 3 2.2. Generowanie pseudolosowe elementów tablicy... 8 2.3. Inicjalizacja elementów tablicy... 10 3. Przebieg ćwiczenia... 11 4. Literatura... 13 5. Zagadnienia na zaliczenie... 14 JĘZYK C - TABLICE JEDNOWYMIAROWE 6. Wymagania BHP... 14 Numer ćwiczenia INF05Z Autor: dr inż. Jarosław Forenc Białystok 2013 Materiały dydaktyczne przeznaczone dla studentów Wydziału Elektrycznego PB. Wydział Elektryczny, Politechnika Białostocka, 2013 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 1 2 z 15 Instrukcja INF05Z

1. Opis stanowiska 0 1 2 3 4 1.1. Stosowana aparatura Podczas zajęć wykorzystywany jest komputer klasy PC z systemem operacyjnym Microsoft Windows (XP/Vista/7). 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. Tablica elementów Tablica elementów jest ciągłym obszarem pamięci, w którym te elementy są umieszczone. Głównym celem stosowania tablic jest zastąpienie wielu zmiennych tego samego typu jedną tablicą. Deklarując tablicę musimy podać: typ elementów, nazwę tablicy i liczbę elementów, np. int tab[5]; średnik rozmiar tablicy nazwa tablicy typ elementów tablicy Wyrażenie podane w nawiasach kwadratowych, określające rozmiar tablicy, musi w wyniku dawać dodatnią stałą całkowitoliczbową, a ponadto musi to być wartość znana już w fazie kompilacji (nie może to być zmienna). Powyższa deklaracja definiuje tablicę pięciu elementów typu int (Rys. 1). Jest to tablica jednowymiarowa, czyli tzw. wektor. tab[0] tab[1] tab[2] tab[3] tab[4] Rys. 1. Wektor 5-elementowy. Każdy element tablicy ma swój numer zwany indeksem, element zerowy (znajdujący się na początku tablicy) ma indeks 0 (zero), zaś ostatni N-1, gdzie N - rozmiar tablicy. Wartość indeksu pokazuje o ile elementów jest dany element odległy od początku tablicy. Jako indeks może występować wyrażenie, ale w wyniku musi ono dawać liczbę całkowitą. Nazwa tablicy jest adresem jej zerowego elementu (o indeksie 0) w pamięci komputera. Odwołania do elementów tablicy (odczytanie lub zapisanie wartości) wykonuje się za pomocą dwuargumentowego operatora indeksowania [ ], np. tab[1] - odwołanie do elementu tablicy o indeksie 1 indeks elementu (drugi argument operatora indeksowania) nazwa tablicy (pierwszy argument operatora indeksowania) Zapisanie wartości 5 do elementu tablicy tab o indeksie 1: tab[1] = 5; Odczytanie elementu tablicy tab o indeksie 1 i przypisanie jego wartości zmiennej o nazwie x: x = tab[1]; Przy odwołaniach do elementów tablicy kompilator nie sprawdza, czy piszemy lub czytamy poza obszarem pamięci przydzielonej na tablicę, np. Informatyka 1 3 z 15 Instrukcja INF05Z Informatyka 1 4 z 15 Instrukcja INF05Z

int tab[5]; tab[5] = 10; W powyższym fragmencie programu zadeklarowano 5-elementową tablicę o nazwie tab. Odwołanie tab[5] jest błędne, gdyż nie istnieje element o indeksie 5. Kompilator nie zasygnalizuje błędu, tylko w obszarze pamięci za tablicą zapisze wartość 10. Operacje na tablicach wykonywane są najczęściej przy wykorzystaniu pętli for. Załóżmy, że chcemy 5-elementową tablicę liczb całkowitych wypełnić wartością 10. Kod realizujący taką operację może mieć następującą postać: int tab[5]; tab[0] = 10; tab[1] = 10; tab[2] = 10; tab[3] = 10; tab[4] = 10; Można to samo zrobić znacznie prościej, stosując pętlę for: int tab[5], i; for (i=0; i<5; i++) tab[i] = 10; Zmienna i przyjmuje wartości od 0 do 4, czyli takie same jak kolejne indeksy elementów tablicy. W przypadku wektorów przechowujących liczby istnieje kilka, najczęściej wykonywanych, operacji. Operacje te przedstawia poniższy program. Program wykonujący wybrane operacje na wektorze liczb całkowitych. #include <stdio.h> #define N 5 int main() int tab[n]; int i, min, max; /* wczytanie elementow tablicy */ printf("podaj liczbe nr %d: ",i+1); scanf("%d",&tab[i]); /* wyswietlenie elementow tablicy */ printf("elementy tablicy: "); printf("%d ", tab[i]); printf("\n"); /* wyswietlenie tablicy w odwrotnej kolejnosci*/ printf("tablica w odwrotnej kolejnosci: "); for (i=n-1; i>=0; i--) printf("%d ", tab[i]); printf("\n"); /* wyszukanie elementu o najmniejszej wartosci */ min = tab[0]; for (i=1; i<n; i++) if (tab[i]<min) min = tab[i]; printf("wartosc elementu najmniejszego: %d\n",min); /* wyszukanie elementu o najwiekszej wartosci */ max = tab[0]; for (i=1; i<n; i++) if (tab[i]>max) max = tab[i]; Informatyka 1 5 z 15 Instrukcja INF05Z Informatyka 1 6 z 15 Instrukcja INF05Z

printf("wartosc elementu najwiekszego: %d\n",max); return 0; printf("tablica w odwrotnej kolejnosci: "); for (i=n-1; i>=0; i--) printf("%d ", tab[i]); Rozmiar tablicy określony został przy użyciu dyrektywy preprocesora #define: #define N 5 dzięki czemu zmiana rozmiaru tablicy będzie wymagała tylko zmiany wartości w tej dyrektywie, a nie w każdym innym miejscu programu, gdzie pojawia się rozmiar tablicy. Dotyczy to zwłaszcza warunków w pętlach for. W programie wykonywane są następujące operacje na tablicy: - wczytanie elementów tablicy - w pętli for wyświetlamy komunikat Podaj liczbę nr, a następnie funkcją scanf() wczytujemy liczbę: printf("podaj liczbe nr %d: ",i+1); scanf("%d",&tab[i]); - wyświetlenie elementów tablicy w jednym wierszu: - wyszukanie elementu o najmniejszej wartości - zakładamy, że zerowy element tablicy jest najmniejszy (min = tab[0]); przeglądamy pozostałe elementy tablicy; jeśli kolejny z elementów tablicy (tab[i]) jest mniejszy od dotychczasowego najmniejszego (min), to element ten staje się najmniejszym (min = tab[i]): min = tab[0]; for (i=1; i<n; i++) if (tab[i]<min) min = tab[i]; printf("wartosc elementu najmniejszego: %d\n",min); - wyszukanie elementu o największej wartości - odbywa się na takiej samej zasadzie jak wyszukanie elementu najmniejszego: max = tab[0]; for (i=1; i<n; i++) if (tab[i]>max) max = tab[i]; printf("wartosc elementu najwiekszego: %d\n",max); printf("elementy tablicy: "); printf("%d ", tab[i]); - wyświetlenie elementów tablicy w odwrotnej kolejności - zmieniamy wyrażenia w pętli for, zmienna i będzie przyjmowała wartości od N-1 (ostatni element tablicy) do 0 (zerowy element tablicy): 2.2. Generowanie pseudolosowe elementów tablicy Elementy tablicy mogą być wygenerowane pseudolosowo, co pokazuje poniższy program. Generowanie pseudolosowe elementów tablicy. #include <stdio.h> #include <stdlib.h> #include <time.h> Informatyka 1 7 z 15 Instrukcja INF05Z Informatyka 1 8 z 15 Instrukcja INF05Z

int main() int tab[10], i; srand(time(null)); for (i=0; i<10; i++) tab[i] = rand(); printf("%d ",tab[i]); return 0; Do generowania liczb pseudolosowych zastosowana została funkcja rand(): tab[i] = rand(); Pseudolosową liczbę całkowitą z przedziału a b otrzymamy używając funkcji rand() w następujący sposób: int x; x = rand() % (b a + 1) + a; 2.3. Inicjalizacja elementów tablicy Po zadeklarowaniu tablicy wartość jej elementów jest nieokreślona. Inicjalizacja elementów tablicy jest to nadanie wartości jej elementom od razu przy deklaracji. Inicjalizacja taka polega na umieszczeniu w deklaracji po znaku równości, ujętej w nawiasy klamrowe, listy wartości kolejnych jej elementów, np. int a[3] = 5,7,1; Funkcja ta zwraca pseudolosową liczbę całkowitą z zakresu: 0 RAND_MAX (32767). Zastosowanie jej w programie wymaga dołączenia pliku nagłówkowego stdlib.h. Przed użyciem funkcji rand() należy zainicjalizować generator liczb pseudolosowych wywołując funkcję srand(): srand(time(null)); do której przekazywana jest liczba inicjalizująca generator. Aby zapewnić unikalność generowania kolejnych liczb do funkcji srand() przekazywana jest wartość zwracana przez funkcję time(). Zastosowanie funkcji time() wymaga dołączenia pliku nagłówkowego time.h. Zmiana zakresu generowanych liczb odbywa się poprzez zastosowanie dzielenia modulo. Jeśli chcemy otrzymać liczby całkowite z zakresu 0 10, to wystarczy wartość zwracaną przez funkcję rand() podzielić modulo 11: int x; x = rand() % 11; Poszczególne elementy tablicy umieszczone są w nawiasach klamrowych i oddzielone od siebie przecinkami. Jako kolejne elementy mogą występować wyrażenia arytmetyczne. Tablice można inicjalizować tylko przy deklaracji. Jeśli wartości podanych w trakcie inicjalizacji jest mniej niż wynosi rozmiar tablicy, to pozostałe elementy tablicy wypełniane są zerami, np. int a[5] = 5,7,1; Tablica zadeklarowana bez podania rozmiaru, a zainicjowana ma liczbę elementów równą ilości inicjatorów, np. int a[] = 2,3,1,4; jest równoważne: int a[4] = 2,3,1,4; Informatyka 1 9 z 15 Instrukcja INF05Z Informatyka 1 10 z 15 Instrukcja INF05Z

Program generujący N niepowtarzających się liczb całkowitych. #include <stdio.h> #include <stdlib.h> #include <time.h> #define N 6 #define ZAKRES 49 int main() int lotto[n]; int i,j,x,powt; srand(time(null)); do powt = 0; x = rand() % ZAKRES + 1; for (j=0; j<i; j++) if (lotto[j]==x) powt = 1; while (powt==1); lotto[i] = x; printf("wylosowane liczby: "); printf("%3d, ",lotto[i]); return 0; 3. Przebieg ćwiczenia Na pracowni specjalistycznej należy wykonać wybrane zadania wskazane przez prowadzącego zajęcia. W różnych grupach mogą być wykonywane różne zadania. 1. Napisz program, który do 10 elementowej tablicy liczb całkowitych zapisze wygenerowane pseudolosowo liczby z zakresu 0, 9. Liczby nie mogą powtarzać się. Wyświetl zawartość tablicy. Podaj ile razy generowano liczbę dla kolejnego elementu tablicy. 2. Napisz program, który dla N-elementowego wektora liczb całkowitych wygeneruje pseudolosowo elementy z zakresu 0, 10, wyświetli zawartość wektora oraz obliczy ile razy każda liczba występuje w wektorze. 3. Dane są dwa N-elementowe wektory A i B zawierające wygenerowane pseudolosowo liczby całkowite z zakresu 0, 99 : - utwórz wektor C zawierający na odpowiedniej pozycji jeden z elementów wektorów A i B, wybierając ten element z wektora A lub B, który jest większy, - utwórz wektor D będący sumą wektorów A i B, - oblicz iloczyn skalarny wektorów A i B. Rozmiar wektorów (N) zadeklaruj jako stałą (#define). Wyświetl wektory A, B, C i D. 4. Tablica OCENY przechowuje średnie arytmetyczne ocen N-kandydatów na studia. Indeksy elementów tablicy są jednocześnie numerami kandydatów. Na studia przyjmowane są osoby, których średnia ocen jest większa lub równa 4,0. Napisz program, który wyświetli: - listę osób przyjętych na studia zawierającą numer kandydata i średnią jego ocen, - listę osób nie przyjętych na studia zawierającą numer kandydata i średnią jego ocen, - liczbę osób przyjętych na studia i liczbę osób nie przyjętych na studia. Średnie ocen wygeneruj pseudolosowo z zakresu następującej formuły: 2, 6, używając OCENY[i] = 4.0*rand()/RAND_MAX + 2.0; (1) Informatyka 1 11 z 15 Instrukcja INF05Z Informatyka 1 12 z 15 Instrukcja INF05Z

5. W pewnym pomieszczeniu przeprowadzono pomiar temperatury. Temperaturę mierzono co godzinę (od godz. 0 do 23). Wyniki pomiarów umieszczono w tablicy T. Kolejne indeksy elementów tablicy określają jednocześnie godzinę pomiaru. Zakładamy, że wyniki pomiarów nie powtarzają się. Napisz program który: - poda godzinę, o której temperatura była najwyższa oraz godzinę, o której temperatura była najniższa w ciągu całej doby, - obliczy i wyświetli średnią temperaturę w ciągu doby, - obliczy i wyświetli największą różnicę temperatur, - poda informację, czy temperatura w ciągu doby spadła poniżej zera stopni. Elementy tablicy oblicz na podstawie wzoru: T[i] = sin(i/8-10)*cos(i/8-10)*30+10; (i = 0..23) (2) 6. Tablica P przechowuje wyniki N-pomiarów wartości chwilowych napięcia na pewnym dwójniku RLC. Napisz program który: - zapisze do tablicy P wartości chwilowe napięcia zgodnie z poniższym wzorem: P[i] = 10.0*sin((i+5.0)/5.0); (3) - obliczy i wyświetli największą, najmniejszą i średnią wartość zmierzonych napięć, - obliczy i wyświetli liczbę pomiarów, dla których wartość chwilowa napięcia była większa od wartości średniej napięcia, - zastąpi w tablicy P wszystkie ujemne wartości napięcia wartością zero. 4. Literatura [1] Kernighan B.W., Ritchie D.M.: Język ANSI C. Programowanie. Wydanie II. Helion, Gliwice, 2010. [2] Prata S.: Język C. Szkoła programowania. Wydanie V. Helion, Gliwice, 2006. [3] King K.N.: Język C. Nowoczesne programowanie. Wydanie II. Helion, Gliwice, 2011. [4] Summit S.: Programowanie w języku C. FAQ. Helion, Gliwice, 2003. [5] Wileczek R.: Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows. Helion, Gliwice, 2009. 5. Zagadnienia na zaliczenie 1. Omów sposób deklarowania tablic jednowymiarowych (wektorów) w języku C oraz odwoływania się do elementów tych tablic. 2. Wyjaśnij jak odszukać w tablicy jednowymiarowej element o najmniejszej i element o największej wartości? 3. W jaki sposób w języku C można generować pseudolosowe liczby całkowite i rzeczywiste z określonego zakresu? 4. Opisz inicjalizację elementów tablicy jednowymiarowej. 5. Opisz sposób przechowywania napisów (tekstów) w języku C. 6. Przedstaw sposoby inicjalizacji tablicy znaków. 7. Scharakteryzuj funkcje znajdujące się w pliku nagłówkowym string.h. 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ć Informatyka 1 13 z 15 Instrukcja INF05Z Informatyka 1 14 z 15 Instrukcja INF05Z

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 1 15 z 15 Instrukcja INF05Z