Lab 08 Tablice

background image

08

Metodyka i techniki programowania
Tablice
Dr inż. Paweł Kułakowski

Ćwiczenie 1. Tablice - podstawy

1. Zaimplementuj poniższy kod, pozwalający obliczyć iloczyn skalarny dwóch wektorów:

int i ;

float wekt1[3], wekt2[3], skalar ;

printf ("Podaj wspolrzedne wektora wekt1:\n") ;
for (i=0; i<3; i++) scanf ("%f", &wekt1[i]) ;

printf ("oraz wspolrzedne wektora wekt2:\n") ;
for (i=0; i<3; i++) scanf ("%f", &wekt2[i]) ;

skalar = wekt1[0]*wekt2[0] + wekt1[1]*wekt2[1] + wekt1[2]*wekt2[2] ;
printf ("\nIloczyn skalarny wektorow wynosi: %f\n", skalar) ;

2. Linię programu, w której liczona jest zmienna skalar zmodyfikuj w taki sposób, aby to
obliczenie było wykonywane z użyciem pętli.
2. Zmień wywołania funkcji scanf w taki sposób, aby ich argumentami były wskaźniki do
tablic wekt1 i wekt2.
3. Zmodyfikuj program tak, aby oprócz iloczynu skalarnego był liczony również iloczyn
wektorowy.

Ćwiczenie 2. Operacje na tablicach

Poniższy program ma na celu odwrócenie tablicy liczb: w efekcie pierwsza liczba ma się
znajdować na ostatnim miejscu, druga na przedostatnim, itd. Gdzie tkwi błąd w tym
programie? Napisz jego poprawną wersję.

int i, tablica[10] ;

srand (time (NULL)) ; /* inicjalizacja generatora liczb losowych */
/* losowanie liczby od 0 do 99 : */
for (i=0; i<10; i++) tablica[i] = rand()%100 ;

printf ("\nTablica po inicjalizacji:\n") ;
for (i=0; i<10; i++) printf ("%i ", tablica[i]) ;

/* odwracanie kolejnosci liczb w tablicy : */
for (i=0; i<10; i++) tablica[i] = tablica[9-i] ;

printf ("\n\nTablica po odwroceniu:\n") ;
for (i=0; i<10; i++) printf ("%i ", tablica[i]) ;
printf ("\n\n") ;

Zadanie

Napisz program, który uporządkuje liczby w 10-elementowej tablicy typu int. Wartości
początkowe niech będą generowane losowo z przedziału od 1 do 20.

background image

Ćwiczenie 3. Tablice wielowymiarowe

1. Zaimplementuj poniższy kod, wyświetlający stan rozgrywki szachowej.
Na przedstawionej szachownicy, użyto oznaczeń: 'W' – wieża, 'S' – skoczek, 'G' – goniec,
'H' – hetman, 'K' – król, 'P' – pionek. Duże litery oznaczają czarne figury, a małe – białe.
'+' to puste pole.

int i, j ;
char chess[8][8] = {"W++HKGSW", /* wpisanie stanu szachownicy */
"PGPPPP+P", /* do dwuwymiarowej tablicy */
"SP++++P+",
"+g++s+++",
"++++++h+",
"++++p+++",
"pppp+ppp",
"wsg+k++w"} ;
printf ("\n") ;
for (i=0; i<8; i++) /* wyswietlenie na ekranie stanu gry */
{
printf (" ") ;
for (j=0; j<8; j++) printf ("%c", chess[i][j]) ;
printf ("\n") ;
}


2. Czy można obejść się bez wewnętrznej pętli? Popraw powyższy program.
3. Obecny ruch należy do czarnych. Wykonaj bicie białego pionka czarnym gońcem i
wyświetl na ekranie zaktualizowaną wersję szachownicy.
4. W ruchu białych, również zbij pionka gońcem, szachując czarnego króla.
5. W kolejnym ruchu czarnych nie masz już wyboru: zbij gońca hetmanem.
6. Ostatni ruch białych: Biały hetman bije czarnego i mat!
Po każdym ruchu aktualizuj szachownicę na ekranie.

Zadanie

Napisz program umożliwiający grę w Mastermind.
Podstawowe zasady gry:
1. Program losuje cztery cyfry z zakresu od 1 do 6 i ustawia je w określonej kolejności. Cyfry
mogą się powtarzać (np. 1365, 1442, 3623, 6525).
2. Gracz próbuje zgadnąć cyfry, podając komputerowi swoją propozycję.
3. W odpowiedzi, komputer podaje graczowi dwie informacje:

a. ile cyfr udało się odgadnąć i ustawić na właściwych pozycjach (za każdą

odgadniętą w ten sposób cyfrę komputer rysuje gwiazdkę - *),

b. ile cyfr udało się odgadnąć, ale ich pozycje nie są właściwe (za każdą odgadniętą w

ten sposób cyfrę komputer rysuje zero - 0).
Oczywiście suma gwiazdek i zer nigdy nie będzie większa od 4.
4. Gracz ponownie próbuje odgadnąć cyfry, podjąć swoja kolejną propozycję – gra się toczy
do odgadnięcia wszystkich czterech cyfr (oczywiście cyfry muszą się znajdować na
właściwych pozycjach) – na co komputer powinien odpowiedzieć czterema gwiazdkami i
komunikatem o wygranej.
Przykład: Odgadywane cyfry to: 6261. Gracz proponuje cyfry: 6312. Komputer odpowiada:
*00. Gracz nie wie, które z zaproponowanych przez niego cyfr udało mu się trafić, ale po
kolejnych próbach może już wyciągać pewne wnioski.


Wyszukiwarka

Podobne podstrony:
08 Tablica5id 28158
08 Tablica 6
08 Tablica5
08 TABLICA 5
08-Tablica5
lab 08
08 TABLICA 6
Lab 08
SPRAWDZIAN Z OPTYKI 08 tablica
APP Zadania 08 Tablice Wielowymiarowe
08 TABLICA 6
lab 08
air lab 08 id 53379 Nieznany (2)
08-Tablica5
lab 08 IIR
CMS Lab 08 Blog 1
08-Tablica5

więcej podobnych podstron