Funkce – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama

Funkce – C / C++ – Fórum – Programujte.comFunkce – C / C++ – Fórum – Programujte.com

 
Hledat
Moderní platforma pro vytvoření vašeho nového webu – Wix.com.
Nyní už můžete mít web zdarma.
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno

Toto vlákno bylo označeno za vyřešené.
Spuštěný nový filmový web Filmožrouti.cz — vše o Avengers, Pacific Rim, Thor, Star Wars…
Kaalc0
Duch
8. 12. 2017   #1
-
0
-

Zdravím, mám problém se zadáním (viz. obr) a nevím jak dál pokračovat. Prosil bych tímto o pomoc nebo návod jak na to. Předem děkuji :)  

Připojen obrázek.

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void vypCetnost(int data_prvku[], double cetnost[], int pocet_prvku);
void vypRCetnost(int abscetnost[], double relcetnost[], int pocet_prvku);
void tisk(int data_prvku[], double abscetnost[], double relcetnost[]);


#define N 30
#define M 6
int main()
{
	int data_prvku[N] = { 3, 1, 5, 5, 4, 3, 2, 1, 0, 2, 3, 5, 3, 2, 5, 1, 2, 4, 3, 1, 4, 4, 2, 0, 1, 1, 0, 1, 3, 2 };
/*	int *p;
	p = &data_prvku[0];*/
	double r_cetnost[M] = { 0 };
	double cetnost[M] = { 0 };

	vypCetnost(data_prvku, cetnost, N);
	vypRCetnost(cetnost, r_cetnost, M);
	tisk(data_prvku, cetnost, r_cetnost);
	return 0;
}


//Cetnost
void vypCetnost(int data_prvku[], double cetnost[], int pocet_prvku)
{
	for (int i = 0; data_prvku[i]; ++i)
	{
		if (data_prvku[i] < pocet_prvku)
		{
			int value = data_prvku[i];
			++cetnost[value];
		}
	}
}

//Relativni cetnost
void vypRCetnost(int abscetnost[], double relcetnost[], int pocet_prvku)
{
	for (int i = 0; i < pocet_prvku; ++i)
	{
		relcetnost[i] = abscetnost[i] / 30;
	}

}

//Tisk
void tisk(int data_prvku[], double abscetnost[], double relcetnost[])
{
	printf("Cislo: %d	Absolutni cetnost: %lf	Relativni cetnost: %lf\n", data_prvku, abscetnost, relcetnost);

}
Nahlásit jako SPAM
IP: 83.240.61.–
MilanL+1
Věrný člen
8. 12. 2017   #2
-
0
-

#10 MilanL
asi ti jde o ty poslední 2 body co?

vytvoř mujstat.h a do něj includuj stdio.h + prototypy a celé funkce četností a tisku - v podstatě celé bez definice N a M a mainu

ošetření proti násobnému vložení se řeší definicí názvu a porovnávací direktivou #IFNDEF - není definováno

tzn na úplnej začátek mujstat.h dáš
#IFNDEF MUJSTAT_H
#DEFINE MUJSTAT_H
a pak na konec

#ENDIF

do vlastního programu nainkluduješ mujstat.h a necháš tam jen ty definice M,N a main

Nahlásit jako SPAM
IP: 185.112.167.–
Kaalc0
Duch
9. 12. 2017   #3
-
0
-

Tak sem to zkusil, ale nevím proč mi to include nechce vzít. Píše "cannot pen source file "mujstat.h" ". Dočetl jsem se, že lze psát místo<> i " ", (viz zdroják), ale taky mi to nešlo.


#ifndef MUJSTAT_H
#define MUJSTAT_H
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void vypCetnost(int data_prvku[], double cetnost[], int pocet_prvku);
void vypRCetnost(int abscetnost[], double relcetnost[], int pocet_prvku);
void tisk(int data_prvku[], double abscetnost[], double relcetnost[]);
//Cetnost
void vypCetnost(int aData_prvku[], double aCetnost[], int pocet_prvku)
{
	for (int i = 0; i < pocet_prvku; ++i)
	{
		if (aData_prvku[i] < pocet_prvku)
		{
			int value = aData_prvku[i];
			++aCetnost[value];
		}
	}
}

//Relativni cetnost
void vypRCetnost(double abscetnost[], double relcetnost[], int pocet_prvku)
{
	for (int i = 0; i < pocet_prvku; ++i)
	{
		int tmp = abscetnost[i];
		int r_tmp = tmp / 30;
		relcetnost[r_tmp];
	}

}

//Tisk
void tisk(int data_prvku[], double abscetnost[], double relcetnost[])
{
	printf("Cislo: %d	Absolutni cetnost: %lf	Relativni cetnost: %5.2lf\n", data_prvku, abscetnost, relcetnost);
}
#endif // !mujstat.h

//#include<mujstat.h>
#include"mujstat.h"
#define N 30
#define M 6
int main()
{
	int data_prvku[N] = { 3, 1, 5, 5, 4, 3, 2, 1, 0, 2, 3, 5, 3, 2, 5, 1, 2, 4, 3, 1, 4, 4, 2, 0, 1, 1, 0, 1, 3, 2 };
	double cetnost[M] = { 0 };
	double r_cetnost[M] = { 0 };

	vypCetnost(data_prvku, cetnost, N);
	vypRCetnost(cetnost, r_cetnost, M);
	tisk(data_prvku, cetnost, r_cetnost);
	return 0;
}
Nahlásit jako SPAM
IP: 83.240.61.–
KIIV
~ Moderátor
+43
God of flame
9. 12. 2017   #4
-
0
-

U include je pro <> a "" trochu jine chovani. Do uvozovek se davaji relativni cesty vuci souboru, ze ktereho includujes (nebo mozna odkud kompilujes, nejsem si ted jist). Includy z <> se vyhledavaji v globalnich cestach predanych prekladaci pomoci prepinace -I/cesta/ke/knihovne (v gcc, jine prekladace to muzou a nejspis budou mit jinak) + nektere zakladni jsou tam defaultne.

Kazdopadne v soboru MujStat.h by mely byt akorat prototypy funkci, funkce samotne pak v samostatnem souboru MujStat.cpp. Tak jak to mas, tak jakmile zkompilujes projekt, kde budes mit vice cpp souboru s timto stejnym includem, tak to bude hlasit duplicitni symboly.

Nahlásit jako SPAM
IP: 81.30.230.–
Program vždy dělá to co naprogramujete, ne to co chcete...
MilanL+1
Věrný člen
11. 12. 2017   #5
-
0
-

#4 KIIV
no možná jsem blbě pochopil zadání "Úplné funkční prototypy funkcí dejte do hlavičkovího souboru" gral jsem to tak, že v h mají být jak prototypy tak jejich kod. Jemu ale nejde to include v základu.

Nahlásit jako SPAM
IP: 185.112.167.–
KIIV
~ Moderátor
+43
God of flame
11. 12. 2017   #6
-
0
-

#5 MilanL

prototyp je porad jen deklarace. Definice by mely byt v cpp souborech. Co je mysleno uplnym prototypem mi neni jasne, ale furt je tam pojem prototyp.

Nahlásit jako SPAM
IP: 81.30.230.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 36 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032018 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý