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

Vytvoření knihovny – C / C++ – Fórum – Programujte.comVytvoření knihovny – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
normy1010
Newbie
28. 5. 2018   #1
-
0
-

Ahojte všichni chtel bych se zeptat jak vytvořit funkce (void) a volat ji z mé nově vytvořené knihovny nejsem si jistý, který soubor má co obsahovat např mám nějaký hlavní soubor main.c a vytvořím si svoji knihovnu např

Knihovna.c a knihovna.h mohl by mi to někdo stručně přiblížit, mám dělat program, který pomocí switche si vyberu, který matematický vzorec chci použít a následně budu volat tuto knihovnu (funkci)

Děkuji mockrát

Nahlásit jako SPAM
IP: 195.113.183.–
BDS+3
Věrný člen
29. 5. 2018   #2
-
+1
-
Zajímavé

#1 normy101

už jsem to tady jednou vysvětloval.. 

Pro C to budeš muset trochu upravit, ale na to přijdeš.

Nahlásit jako SPAM
IP: 185.69.69.–
W10 :)
normy1010
Newbie
30. 5. 2018   #3
-
0
-

#2 BDS
Já vymyslel něco takového mám hlavní main a geometrie.c a geometrie.h, ale aktuálně mám někde chybu a nevidím ji vůbec.

MAIN:


#include <stdio.h>
#include <stdlib.h>
#include "geometrie.h"
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int vyber,a,b,c,v,r;
printf("Zadej cislo: ");
scanf("%i", &vyber);
switch (vyber)
{
case 1: printf("Enter the value of r (radius): \n");
scanf("%i", &r);
printf("Circle circumference = %i", obvodkruhu(r));
break;
case 2: printf("Enter the value of r (radius): \n");
scanf("%i", &r);
printf("Circle content = %i",obsahkruhu(r));
break;
case 3: printf("Enter the values of a, b and c \n");
scanf("%i %i %i", &a, &b, &c);
printf("Triangle circumference = %d",obvodtrojuhelniku(a,b,c));
break;
case 4: printf("Enter the values of a and v \n");
scanf("%i %i", &a, &v);
printf("The content of the triangle = %d",obsahtrojuhelniku(a,v));
break;
case 5: printf("Enter the values of a \n");
scanf("%i", &a);
printf("Square content = %d",obsahctverce(a)); //obsah
break;
case 6: printf("Enter the values of a \n");
scanf("%i", &a);
printf("Square circumference = %d",obvodctverce(a)); //obvod
break;
case 7: printf("Enter the values of a, b \n");
scanf("%i %i", &a, &b);
printf("Rectangle circumference = %d",obvodobdelniku(a,b));
break;
case 8: printf("Enter the values of a, b \n");
scanf("%i %i", &a, &b);
printf("Rectangle content = %d",obsahobdelniku(a,b));
break;
default:printf("This option does not exist");
break;
}


return 0;
}
 

GEOMETRIE C


int obvodkruhu(int r){
return (2*3.14*r);
}
int obsahkruhu(int r){
return (3.14*(r*r));
}
int obvodtrojuhelniku(int a, int b, int c ){
return (a+b+c);
}
int obsahtrojuhelniku(int a, int v ){
return ((a*v)/2);
}
int obsahctverce(int a){
return (a*a);
}
int obvodctverce(int a){
return (4*a);
}
int obvodobdelniku(int a, int b){
return (2*(a+b));
}
int obsahobdelniku(int a, int b){
return (a*b);
}

GEOMETRIE H

int obvodkruhu(int r);
int obsahkruhu(int r);
int obvodtrojuhelniku(int a, int b, int c);
int obsahtrojuhelniku(int a,int v);
int obsahctverce(int a);
int obvodctverce(int a);
int obvodobdelniku(int a,int b);
int obsahobdelniku(int a,int b);

Nahlásit jako SPAM
IP: 217.170.105.–
gna
~ Anonymní uživatel
1849 příspěvků
31. 5. 2018   #4
-
0
-

#3 normy101
A jak se ta chyba projevuje?

Jestli ti to při kompilaci hlásí neznámé funkce z té "knihovny", tak je potřeba tu knihovnu přidat do projektu. Jestli to kompiluješ ručně tak prostě uveď oba soubory (třeba gcc main.c knihovna.c -o program.exe). Jinak je to syntakticky správně, takže jiný problém by neměl být.

Co se týče fungování programu, tak jediný problém vidím v tom, že int je celočíselný typ. Pro desetinná čísla můžeš použít třeba typ double a formát pro scanf pak bude %lf a pro printf %f.

Nahlásit jako SPAM
IP: 213.211.51.–
normy1010
Newbie
31. 5. 2018   #5
-
0
-

Chybu jsem vyřešil ještě chci udělat poslední věc že bych dal switch do knihovny menu c a menu h ale nejsem si jist která část mého programu tam patří v mainu by byly pouze pak printy

Nahlásit jako SPAM
IP: 217.170.105.–
normy1010
Newbie
31. 5. 2018   #6
-
0
-

A neví někdo jak udělat podmínku na konci programu udá program má začít od začátku nebo o ukončit v tom si nejsem jistý vůbec

Nahlásit jako SPAM
IP: 217.170.105.–
gna
~ Anonymní uživatel
1849 příspěvků
31. 5. 2018   #7
-
0
-

Myslím si, že tak jak to máš, to zadání splňuje. Nevidím důvod dávat ten switch do "knihovny". Jestli to do ní chceš hodit, tak je na tobě, jak se ti to líbí.

Na opakování jsou cykly.

Nahlásit jako SPAM
IP: 213.211.51.–
normy1010
Newbie
31. 5. 2018   #8
-
0
-

#7 gna

Jako měl bych pro ten switch právě použit knihovny ale nejsem si jist jak to rozdělit, aby to fungovalo tak jak má

Nahlásit jako SPAM
IP: 195.113.183.–
normy1010
Newbie
31. 5. 2018   #9
-
0
-

switch jsem vyřešil, ale podmínka stále pokulhává, jelikož nevím co v ní přesně má být jestli celý ten switch nebo jen nějaké parametry.

Nahlásit jako SPAM
IP: 195.113.183.–
gna
~ Anonymní uživatel
1849 příspěvků
31. 5. 2018   #10
-
+1
-
Zajímavé

Myslím, že na té ukázce je vidět, že se opakovaně provádějí příkazy v těle cyklu, dokud je splněna podmínka pro opakování.

Co chceš opakovat, to do něj dej.

Nahlásit jako SPAM
IP: 213.211.51.–
MilanL+1
Grafoman
1. 6. 2018   #11
-
+1
-
Zajímavé

#9 normy101
koukám kombinuješ tam jazyky prvni zadání máš česky a zbytek  anglicky.

Jinak pár drobností:

- před zadání bych zobrazil seznam voleb třeba do 4 řádek příklad 
Kruh obvod-1, obsah2
Trojuhelnik obvod-3, obsah-4

- exit bych udělal na zadání 0 nebo v defaultu při zadání neplatné volby.

- ta volba by se dala udělat i dvojmístně první číslo útvar druhé číslo co se má počítat.

- nakonec chuťovkou by bylo zadávání pomocí souřadnic bodů v rovině nebo prostoru případně pomocí útvarových rovnic případně jiných kombinací, např trojúhelník 2 strany a úhel nebo 1 strana a 2 úhly. apod.. :D

Nahlásit jako SPAM
IP: 91.139.9.–
normy1010
Newbie
1. 6. 2018   #12
-
0
-

#11 MilanL
nemám rád diakritiku v programech a v angličtině se toho vyhnu :) a jinak to to menu jsem udělal že jsem si udělal funkci a tu jsem volal v mainu :) takže to by bylo a podmínku jsem nakonec udělal pomocí do while

A ty souřadnice nestraš ale nad těmi úhly jsem přemýšlel :) 

Nahlásit jako SPAM
IP: 195.113.183.–
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, 72 hostů

Podobná vlákna

Vytvoření knihovny — založil Snake

Knihovny — založil yxcvb

Knihovny — založil Sony

Moderátoři diskuze

 

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