Jazyk C - funkce a pole
Napsal: 15 kvě 2017 11:22
Dobrý den, nevim si rady s tímhle. Poradíte jak to udělat?
Upravte (dokončete) rozpracovaný program "pole1a.c" (níže ke stažení) tak, aby ho řídilo jednoduché barevné menu.
Kromě již hotových funkcí
zadani_pole()
tisk_pole()
nahodne_pole()
bude obsahovat ještě další alespoň 3 funkce pro výpočet, zobrazení, nějakou akci s polem, např.:
aritmetický průměr
minimum nebo maximum
seřazení (uspořádání) metodou bubblesort nebo minimax
modus (nejčetnější prvek)
medián (prostřední prvek)
počet kladných, záporných a nulových prvků
...? - další dostatečně náročná funkce
#include<stdio.h>
// pole je výhodné mít v globální proměnné (většinou)
#define ROZSAH 20
int pole_a[ROZSAH];
void zadani_pole(int pole[], int pocet_prvku)
{
int i; // pomocná proměnná pro cyklus
printf("Zadejte postupně %i celých čísel:\n", pocet_prvku);
for(i=0; i<pocet_prvku; i++)
{
printf("%i. hodnota = ", i+1);
scanf("%i", &pole[i]);
}
}
void tisk_pole(int pole[], int pocet_prvku)
{
int i; // pomocná proměnná pro cyklus
printf("\nKontrolní tisk:\n");
for(i=0; i<pocet_prvku; i++)
printf("%i, ", pole[i]);
printf("\b\b.\n"); // úprava tisku na konci
}
void nahodne_pole(int pole[], int pocet_prvku)
{
int i;
int a, b; // rozsah od...do pro náhodná čísla
printf("Zadejte rozsah náhodných hodnot (např. -50,50): ");
scanf("%i , %i", &a, &b);
if(b<a) // pokud jsou meze obráceně, vyměníme je
{
a+=b;
b=a-b;
a-=b;
}
srand(time(NULL)); // start generátoru náhodných čísel
for(i=0; i<pocet_prvku;i++)
pole[i] = rand()%(b-a+1) + a;
}
void main()
{
printf("Práce s polem celých čísel\n"
"==========================\n\n");
zadani_pole(pole_a, ROZSAH);
tisk_pole(pole_a, ROZSAH);
nahodne_pole(pole_a, ROZSAH);
tisk_pole(pole_a, ROZSAH);
}
Upravte (dokončete) rozpracovaný program "pole1a.c" (níže ke stažení) tak, aby ho řídilo jednoduché barevné menu.
Kromě již hotových funkcí
zadani_pole()
tisk_pole()
nahodne_pole()
bude obsahovat ještě další alespoň 3 funkce pro výpočet, zobrazení, nějakou akci s polem, např.:
aritmetický průměr
minimum nebo maximum
seřazení (uspořádání) metodou bubblesort nebo minimax
modus (nejčetnější prvek)
medián (prostřední prvek)
počet kladných, záporných a nulových prvků
...? - další dostatečně náročná funkce
#include<stdio.h>
// pole je výhodné mít v globální proměnné (většinou)
#define ROZSAH 20
int pole_a[ROZSAH];
void zadani_pole(int pole[], int pocet_prvku)
{
int i; // pomocná proměnná pro cyklus
printf("Zadejte postupně %i celých čísel:\n", pocet_prvku);
for(i=0; i<pocet_prvku; i++)
{
printf("%i. hodnota = ", i+1);
scanf("%i", &pole[i]);
}
}
void tisk_pole(int pole[], int pocet_prvku)
{
int i; // pomocná proměnná pro cyklus
printf("\nKontrolní tisk:\n");
for(i=0; i<pocet_prvku; i++)
printf("%i, ", pole[i]);
printf("\b\b.\n"); // úprava tisku na konci
}
void nahodne_pole(int pole[], int pocet_prvku)
{
int i;
int a, b; // rozsah od...do pro náhodná čísla
printf("Zadejte rozsah náhodných hodnot (např. -50,50): ");
scanf("%i , %i", &a, &b);
if(b<a) // pokud jsou meze obráceně, vyměníme je
{
a+=b;
b=a-b;
a-=b;
}
srand(time(NULL)); // start generátoru náhodných čísel
for(i=0; i<pocet_prvku;i++)
pole[i] = rand()%(b-a+1) + a;
}
void main()
{
printf("Práce s polem celých čísel\n"
"==========================\n\n");
zadani_pole(pole_a, ROZSAH);
tisk_pole(pole_a, ROZSAH);
nahodne_pole(pole_a, ROZSAH);
tisk_pole(pole_a, ROZSAH);
}