User Tools

Site Tools


dydaktyka:cprog:2016:arrays-solutions

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
dydaktyka:cprog:2016:arrays-solutions [2017/01/02 07:58]
pkleczek
— (current)
Line 1: Line 1:
-====== Tablice – rozwiązania ====== 
  
-Laboratorium:​ **[[dydaktyka:​cprog:​2016:​arrays|klik]]** 
- 
-===== Zadanie SUM1D ===== 
- 
-<code c sum1d.c> 
-#include <​stdio.h>​ 
-#include <​stdlib.h>​ 
- 
-int main() { 
-    double tab[4] = {0.3, 0.5, 1.0, 3}; 
-    double suma = 0;    /* zwroc uwage na typ zmiennej `suma`! */ 
-    int i; 
- 
-    for(i = 0; i < 4; i++) { 
-        suma += tab[i]; 
-    } 
- 
-    printf("​Suma wynosi %f\n", suma); 
- 
-    return 0; 
-} 
-</​code>​ 
- 
-===== Zadanie MAX1D ===== 
- 
-Zadanie można rozwiązać w następujący sposób: \\ 
-//Przejdź kolejno przez wszystkie elementy tablicy i dla każdego z nich sprawdź, czy jego wartość jest większa od dotychczas znalezionej wartości maksymalnej. \\ 
-Jeśli tak, to przyjmij wartość tego elementu jako nową wartość maksymalną.//​ 
- 
-Jaką wartość przyjąć na samym początku jako maksymalną?​ Najprościej -- dowolną taką, która występuje w tablicy! Nasz algorytm dokona ewentualnie niezbędnej korekty. \\ 
-Problem pojawia się wtedy, gdy za największą dotychczasową znalezioną wartość przyjmiemy wartość większą od wartości największego elementu tablicy (np. gdybyśmy przyjęli początkowo ''​max = 0'',​ a w tablicy mieli wartości ''​{-1,​ -7, -2}''​). 
- 
-<code c max1d.c> 
-#include <​stdio.h>​ 
-#include <​stdlib.h>​ 
- 
-int main() { 
-    int tab[5] = {1, 5, 0, 9, 3}; 
-    int max; /* wartosc najwiekszego elementu tablicy */ 
-    int i; 
- 
-    max = tab[0]; 
-    for(i = 0; i < 5; i++) { 
-        if (tab[i] > max) { 
-            max = tab[i]; 
-        } 
-    } 
- 
-    printf("​Maksymalna wartosc: %d\n", max); 
- 
-    return 0; 
-} 
-</​code>​ 
- 
-===== Zadanie RAND-ARR ===== 
- 
-<code c rand-arr.c>​ 
-#include <​stdio.h>​ 
-#include <​stdlib.h>​ 
- 
-int main() { 
-    int tab[10]; 
-    /* Użyj elastycznego określania rozmiaru tablicy. */ 
-    int n = sizeof(tab) / sizeof(tab[0]);​ 
-    int i; 
- 
-    for(i = 0; i < n; i++) { 
-        tab[i] = rand() % 100; 
-    } 
- 
-    for(i = 0; i < n; i++) { 
-        printf("​%d ", tab[i]); 
-    } 
-    printf("​\n"​);​ 
- 
-    return 0; 
-} 
-</​code>​ 
- 
- 
-===== Zadanie REV ===== 
- 
-Poniższe rysunki pomogą Ci zrozumieć ideę rozwiązania (pary kolorowych strzałek wskazują, które elementy zamieniamy ze sobą miejscem). Zwróć uwagę na ilość dokonywanych zamian w zależności od ilości elementów. \\ 
-{{:​dydaktyka:​cprog:​2015:​rev_3.png?​nolink|}} \\ 
-{{:​dydaktyka:​cprog:​2015:​rev_4.png?​nolink|}} 
- 
-<code c> 
-#include <​stdio.h>​ 
-#include <​stdlib.h>​ 
- 
-int main() 
-{ 
-    int tab[] = {1, 2, 3, 4}; 
-    int i; 
- 
-    /* W elastyczny (!) sposob wyznacz ilosc elementow tablicy. */ 
-    int ilosc_elementow = sizeof(tab) / sizeof(int);​ 
- 
-    /* [1] Odwroc tablice. */ 
-    /* i - indeks elementu "od poczatku"​ */ 
-    for(i = 0; i < ilosc_elementow / 2; i++) { 
-        /* Pamietaj, ze indeksowanie elementow tablicy zaczyna sie od 0... 
-            ...czyli konczy sie na `n-1`! */ 
-        int indeks_elementu_od_konca = (ilosc_elementow - 1) - i; 
-        int t = tab[indeks_elementu_od_konca];​ 
-        tab[indeks_elementu_od_konca] = tab[i]; 
-        tab[i] = t; 
-    } 
- 
-    /* [2] Wypisz tablice - element po elemencie. */ 
-    for (i = 0; i < ilosc_elementow;​ i++) { 
-        printf("​%d ", tab[i]); 
-    } 
- 
-    return 0; 
-} 
-</​code>​ 
dydaktyka/cprog/2016/arrays-solutions.1483340281.txt.gz · Last modified: 2020/03/25 11:46 (external edit)