-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
-
Frissítve: 2014-04-25 14:12 Téma összefoglaló
Új hozzászólás Aktív témák
-
szilu84
tag
nah, erre meg ezt írta vissza.
Kedves Kollegina!
Nagyon köszönöm a részletes leírást a perror függvényről. Csak zárójelben jegyzem meg, hogy az atoi() függvény sohasem ad hibát, de ez semmit nem von le a perror-ról szóló leírásából.
Az elküldött program azonban még mindig nem KR C-ben van. A feladatok kiírásában feltételként szerepel, hogy sem ANSI C, sem C++ kódot nem fogadok el. A KR C-ben a függvények deklarálásakor csak az értékkészlet deklarációja szerepel. Hogy hány változós a függvény és hogy milyen típusúak az egyes változók, az nem.
Az
int main(int argc, char*argv[])
{
...
}
függvény definíció például ANSI C, de a C++ ugyanezt a szintaxist használja.
Az
int egesze(s)
char *s;
{
...
}
alakú függvény definíció pedig KR C kód. Ezek a fogalmak a gyakorlatokon szerepeltek. Kérem, kűldje el programja KR C változatát, amelyben javítsa ki azokat a program ágakat, ahol hibát detektál, és hibaüzenetet ad. Feltételezem, hogy szándéka szerint a hibaüzenet kiírása után nem akarja, hogy a program tovább fusson.Szóval mostmár totál kivagyok miatta, kértem hogy írja meg ez így mennyit ér, de arra persze nem válaszolt.
nem tudom miért van belesve annyira a KR C-be, majdnem ugyanaznem túl rugalmas tanárotok van

-
Benmartin
senior tag
-
sghc_toma
senior tag
Ne értsd félre az info-s dolgot, nem rosszindulatból mondtam. Csak azokét dobja vissza, akik már fél lábbal kinnt vannak az egyetemről, és ők már mélyebb programozási ismeretekkel rendelkeznek. Nem értem, hogy miért kell ennyire belemélyedni ebbe a verzióba, mikor valószínű nem is ezt fogjuk venni a továbbiakban.
Kissé furi az egész rendszer minálunk.Az a bajom, hogy megcsinálja másnak is egy olyan ember, aki igazán ért hozzá, de a tanárnak nem felel meg. Nem tudom mit vár tőlünk.
azt várja, hogy az eredeti (értsd: első kiadású) KR könyvben leírtak alapján írjátok meg a házit.. a bekopizott válaszlevele alapján KR-féle kódokat írtatok órán is.. gyakorlatilag visszakéri, amit tanultatok..
félreértés ne essék: nem értem miért kell egyáltalán tanítani a KR C-t.. nekem kellett Fortran-t tanulnom, utáltam, és tudtam, hogy gyakorlatilag semmi hasznát nem veszem majd.. ennek ellenére az órai anyag alapján mindig megírtam a házit..
nem hinném, hogy embertelen feladat lenne egy problémát KR C-ben megírni, csak ehhez ugye ismerni kéne a nyelvet.. márpedig azt Nektek megtanították, vagy mi... -
mm00
aktív tag
Ne értsd félre az info-s dolgot, nem rosszindulatból mondtam. Csak azokét dobja vissza, akik már fél lábbal kinnt vannak az egyetemről, és ők már mélyebb programozási ismeretekkel rendelkeznek. Nem értem, hogy miért kell ennyire belemélyedni ebbe a verzióba, mikor valószínű nem is ezt fogjuk venni a továbbiakban.
Kissé furi az egész rendszer minálunk.Az a bajom, hogy megcsinálja másnak is egy olyan ember, aki igazán ért hozzá, de a tanárnak nem felel meg. Nem tudom mit vár tőlünk.
Próbáld meg nála az utolsó forráskódot... hátha...
-
Bettina87
csendes tag
Ne értsd félre az info-s dolgot, nem rosszindulatból mondtam. Csak azokét dobja vissza, akik már fél lábbal kinnt vannak az egyetemről, és ők már mélyebb programozási ismeretekkel rendelkeznek. Nem értem, hogy miért kell ennyire belemélyedni ebbe a verzióba, mikor valószínű nem is ezt fogjuk venni a továbbiakban.
Kissé furi az egész rendszer minálunk.Az a bajom, hogy megcsinálja másnak is egy olyan ember, aki igazán ért hozzá, de a tanárnak nem felel meg. Nem tudom mit vár tőlünk.
-
Lortech
addikt
A KR C-ben a függvények deklarálásakor csak az értékkészlet deklarációja szerepel. Hogy hány változós a függvény és hogy milyen típusúak az egyes változók, az nem.
Szerintem ez így nem igaz, vagy nekem nem egyértelmű.
The C programming Language
By Brian W. Kernighan and Dennis M. Ritchie.
Chapter 4 - Functions and Program Structure:"Each function definition has the form
return-type function-name(argument declarations)
{
declarations and statements
}"Ez a második kiadása a könyvnek, ami már ansi c -t tárgyalja, nem a hagyományos K&R C-t.
-
Benmartin
senior tag
nah, erre meg ezt írta vissza.
Kedves Kollegina!
Nagyon köszönöm a részletes leírást a perror függvényről. Csak zárójelben jegyzem meg, hogy az atoi() függvény sohasem ad hibát, de ez semmit nem von le a perror-ról szóló leírásából.
Az elküldött program azonban még mindig nem KR C-ben van. A feladatok kiírásában feltételként szerepel, hogy sem ANSI C, sem C++ kódot nem fogadok el. A KR C-ben a függvények deklarálásakor csak az értékkészlet deklarációja szerepel. Hogy hány változós a függvény és hogy milyen típusúak az egyes változók, az nem.
Az
int main(int argc, char*argv[])
{
...
}
függvény definíció például ANSI C, de a C++ ugyanezt a szintaxist használja.
Az
int egesze(s)
char *s;
{
...
}
alakú függvény definíció pedig KR C kód. Ezek a fogalmak a gyakorlatokon szerepeltek. Kérem, kűldje el programja KR C változatát, amelyben javítsa ki azokat a program ágakat, ahol hibát detektál, és hibaüzenetet ad. Feltételezem, hogy szándéka szerint a hibaüzenet kiírása után nem akarja, hogy a program tovább fusson.Szóval mostmár totál kivagyok miatta, kértem hogy írja meg ez így mennyit ér, de arra persze nem válaszolt.
nem tudom miért van belesve annyira a KR C-be, majdnem ugyanazA KR C-ben a függvények deklarálásakor csak az értékkészlet deklarációja szerepel. Hogy hány változós a függvény és hogy milyen típusúak az egyes változók, az nem.
Szerintem ez így nem igaz, vagy nekem nem egyértelmű.
The C programming Language
By Brian W. Kernighan and Dennis M. Ritchie.
Chapter 4 - Functions and Program Structure:"Each function definition has the form
return-type function-name(argument declarations)
{
declarations and statements
}" -
mm00
aktív tag
-
mm00
aktív tag
nah, erre meg ezt írta vissza.
Kedves Kollegina!
Nagyon köszönöm a részletes leírást a perror függvényről. Csak zárójelben jegyzem meg, hogy az atoi() függvény sohasem ad hibát, de ez semmit nem von le a perror-ról szóló leírásából.
Az elküldött program azonban még mindig nem KR C-ben van. A feladatok kiírásában feltételként szerepel, hogy sem ANSI C, sem C++ kódot nem fogadok el. A KR C-ben a függvények deklarálásakor csak az értékkészlet deklarációja szerepel. Hogy hány változós a függvény és hogy milyen típusúak az egyes változók, az nem.
Az
int main(int argc, char*argv[])
{
...
}
függvény definíció például ANSI C, de a C++ ugyanezt a szintaxist használja.
Az
int egesze(s)
char *s;
{
...
}
alakú függvény definíció pedig KR C kód. Ezek a fogalmak a gyakorlatokon szerepeltek. Kérem, kűldje el programja KR C változatát, amelyben javítsa ki azokat a program ágakat, ahol hibát detektál, és hibaüzenetet ad. Feltételezem, hogy szándéka szerint a hibaüzenet kiírása után nem akarja, hogy a program tovább fusson.Szóval mostmár totál kivagyok miatta, kértem hogy írja meg ez így mennyit ér, de arra persze nem válaszolt.
nem tudom miért van belesve annyira a KR C-be, majdnem ugyanazTalán ez:
#include <stdio.h>
int main(argc, argv)
int argc;
char *argv[];
{
int i = 0, x=0;
int dec;
char rom[50];
if(argc == 1){
fprintf(stderr, "Hianyzik a parameter!");
exit( 1 );
}
for(x=1;x<argc;x++){
if(egesze(argv[x])){
dec = atoi(argv[x]);
}else{
fprintf(stderr, "A parameterlistaban nem megfelelo az egyik ertek!");
exit( 1 );
}
while(dec>=1000){
dec -= 1000;
rom[i] = 'M';
i++;
}
if (dec>=900){
dec-=900;
rom[i] = 'C';
i++;
rom[i] = 'M';
i++;
}
if(dec>=500){
dec -= 500;
rom[i] = 'D';
i++;
}
if (dec>=400){
dec -= 400;
rom[i] = 'C';
i++;
rom[i] = 'D';
i++;
}
while(dec>=100){
dec = dec-100;
rom[i] = 'C';
i++;
}
if(dec>=90){
dec -= 90;
rom[i] = 'X';
i++;
rom[i] = 'C';
i++;
}
if(dec>=50){
dec -= 50;
rom[i] = 'L';
i++;
}
if(dec>=40){
dec -= 40;
rom[i] = 'X';
i++;
rom[i] = 'L';
i++;
}
while(dec>=10){
dec -= 10;
rom[i] ='X';
i++;
}
if(dec == 9){
rom[i] = 'I';
i++;
rom[i] = 'X';
i++;
}
else{
if(dec >= 5){
dec -= 5;
rom[i] = 'V';
i++;
}
if(dec == 4){
rom[i] = 'I';
i++;
rom[i] = 'V';
i++;
}
else{
while(dec > 0){
dec -= 1;
rom[i] = 'I';
i++;
}
}
}
rom[i]='\0';
printf(" %s", rom);
}
exit(0);
}
int egesze(s)
char *s[];
{
int i=0, kezd;
while (s[i]==' ' || s[i]=='\n' || s[i]=='\t')++i;
if(s[i]=='+' || s[i]=='-')++i;
kezd=i;
while(s[i]>='0' && s[i]<='9')++i;
if(i==kezd || s[i]!=' ' && s[i]!='\t' && s[i]!='\n' && s [i]!=0) return 0;
else return 1;
}
int atoi(s)
char s[];
{
int i, n;
n = 0;
for (i = 0; s[i] >= '0' && s[i] <= '9'; ++i)
n = 10 * n + (s[i] - '0');
return n;
} -
Bettina87
csendes tag
nah, erre meg ezt írta vissza.
Kedves Kollegina!
Nagyon köszönöm a részletes leírást a perror függvényről. Csak zárójelben jegyzem meg, hogy az atoi() függvény sohasem ad hibát, de ez semmit nem von le a perror-ról szóló leírásából.
Az elküldött program azonban még mindig nem KR C-ben van. A feladatok kiírásában feltételként szerepel, hogy sem ANSI C, sem C++ kódot nem fogadok el. A KR C-ben a függvények deklarálásakor csak az értékkészlet deklarációja szerepel. Hogy hány változós a függvény és hogy milyen típusúak az egyes változók, az nem.
Az
int main(int argc, char*argv[])
{
...
}
függvény definíció például ANSI C, de a C++ ugyanezt a szintaxist használja.
Az
int egesze(s)
char *s;
{
...
}
alakú függvény definíció pedig KR C kód. Ezek a fogalmak a gyakorlatokon szerepeltek. Kérem, kűldje el programja KR C változatát, amelyben javítsa ki azokat a program ágakat, ahol hibát detektál, és hibaüzenetet ad. Feltételezem, hogy szándéka szerint a hibaüzenet kiírása után nem akarja, hogy a program tovább fusson.Szóval mostmár totál kivagyok miatta, kértem hogy írja meg ez így mennyit ér, de arra persze nem válaszolt.
nem tudom miért van belesve annyira a KR C-be, majdnem ugyanaz -
Bettina87
csendes tag
Ne is mondd. Eddig még azokét is visszadobta, akiknek infósok csinálták meg. Szóval túl sok embernek nincs meg.
Nagyon szépen köszönöm az újabb verziót, remélem ez már jó lesz neki, már ki vagyok akadva rá teljesen.
-
mm00
aktív tag
utananeztem a perrornak, es ahogy nezem ennek az a lenyege, hogy egy globalis valtozo tarolja, hogy a program futtatasa soran milyen hiba lepett fel, es a parameterul adott string utan kiirja. Tehat teszem azt, ha az atoi-t ugy probalnad meghivni, hogy elotte nem ellenorzod le hogy konvertalhato-e szamma a string, akkor ha hiba tortent, beallitana az errno nevu globalis valtozot (hivas elott erdemes nullazni, es includolni kell az errno.h-t) Ha az atoi hivas utan ellenorzod, hogy az errno erteke 0. Ha nem, akkor hivsz egy perror-t ami kirna a szoveget, meg az errno hibakodnak megfelelo szoveget. De mivel te mindig leellenorzod, hogy a szam konvertalhato-e, a program futasa soran sosem kap rossz parametert, sosem fog az errno erteke megvaltozni, ezert a perror hivas ebbol a szempontbol felesleges, irhatnal egybol a stderr-re is.
Visszaterve a temara: mivel fogalmam sincs mi az ami Kernighan-Ritchie C es mi az ami nem, fogalmam sincs mi a baja. De ha perror-t lehet hasznalni Kernighan-Ritchie C-ben, akkor lehet, hogy arra gondol a tanero amit fennt levezettem mert akkor az lehet hogy Kernighan-Ritchie-sebb

Hát nem tudom mit várhat a tanár.... Talán ez "Kernighan-Ritchie" kód... átnéztem egy hivatalos Richie könyvbe... Ha ilyen tanárom lenne nem kicsit szidnám...
#include <stdio.h>
int egesze(char[]);
int atoi(char[]);
int main(int argc, char *argv[]) {
int i = 0, x=0;
int dec;
char rom[50];
if(argc == 1){
fprintf(stderr, "Hianyzik a parameter!");
}
for(x=1;x<argc;x++){
if(egesze(argv[x])){
dec = atoi(argv[x]);
}else{
fprintf(stderr, "A parameterlistaban nem megfelelo az egyik ertek!");
}
while(dec>=1000){
dec -= 1000;
rom[i] = 'M';
i++;
}
if (dec>=900){
dec-=900;
rom[i] = 'C';
i++;
rom[i] = 'M';
i++;
}
if(dec>=500){
dec -= 500;
rom[i] = 'D';
i++;
}
if (dec>=400){
dec -= 400;
rom[i] = 'C';
i++;
rom[i] = 'D';
i++;
}
while(dec>=100){
dec = dec-100;
rom[i] = 'C';
i++;
}
if(dec>=90){
dec -= 90;
rom[i] = 'X';
i++;
rom[i] = 'C';
i++;
}
if(dec>=50){
dec -= 50;
rom[i] = 'L';
i++;
}
if(dec>=40){
dec -= 40;
rom[i] = 'X';
i++;
rom[i] = 'L';
i++;
}
while(dec>=10){
dec -= 10;
rom[i] ='X';
i++;
}
if(dec == 9){
rom[i] = 'I';
i++;
rom[i] = 'X';
i++;
}
else{
if(dec >= 5){
dec -= 5;
rom[i] = 'V';
i++;
}
if(dec == 4){
rom[i] = 'I';
i++;
rom[i] = 'V';
i++;
}
else{
while(dec > 0){
dec -= 1;
rom[i] = 'I';
i++;
}
}
}
rom[i]='\0';
printf(" %s", rom);
}
}
int egesze(char s[]){
int i=0, kezd;
while (s[i]==' ' || s[i]=='\n' || s[i]=='\t')++i;
if(s[i]=='+' || s[i]=='-')++i;
kezd=i;
while(s[i]>='0' && s[i]<='9')++i;
if(i==kezd || s[i]!=' ' && s[i]!='\t' && s[i]!='\n' && s [i]!=0) return 0;
else return 1;
}
int atoi(char s[])
{
int i, n;
n = 0;
for (i = 0; s[i] >= '0' && s[i] <= '9'; ++i)
n = 10 * n + (s[i] - '0');
return n;
} -
shev7
veterán
ÁÁÁ hibáztam
sorryEz a jó leteszteltem most

#include<stdio.h>
#include <stdlib.h>
int egesze(char[]);
int main(int argc, char *argv[]) {
int i = 0, x=0;
int dec;
char rom[50];
if(argc == 1){
perror("Hianyzik a parameter!");
}
for(x=1;x<argc;x++){
if(egesze(argv[x])){
dec = atoi(argv[x]);
}else{
perror("A parameterlistaban nem megfelelo az egyik ertek!");
}
while(dec>=1000){
dec -= 1000;
rom[i] = 'M';
i++;
}
if (dec>=900){
dec-=900;
rom[i] = 'C';
i++;
rom[i] = 'M';
i++;
}
if(dec>=500){
dec -= 500;
rom[i] = 'D';
i++;
}
if (dec>=400){
dec -= 400;
rom[i] = 'C';
i++;
rom[i] = 'D';
i++;
}
while(dec>=100){
dec = dec-100;
rom[i] = 'C';
i++;
}
if(dec>=90){
dec -= 90;
rom[i] = 'X';
i++;
rom[i] = 'C';
i++;
}
if(dec>=50){
dec -= 50;
rom[i] = 'L';
i++;
}
if(dec>=40){
dec -= 40;
rom[i] = 'X';
i++;
rom[i] = 'L';
i++;
}
while(dec>=10){
dec -= 10;
rom[i] ='X';
i++;
}
if(dec == 9){
rom[i] = 'I';
i++;
rom[i] = 'X';
i++;
}
else{
if(dec >= 5){
dec -= 5;
rom[i] = 'V';
i++;
}
if(dec == 4){
rom[i] = 'I';
i++;
rom[i] = 'V';
i++;
}
else{
while(dec > 0){
dec -= 1;
rom[i] = 'I';
i++;
}
}
}
rom[i]='\0';
printf(" %s", rom);
}
}
int egesze(char s[]){
int i=0, kezd;
while (s[i]==' ' || s[i]=='\n' || s[i]=='\t')++i;
if(s[i]=='+' || s[i]=='-')++i;
kezd=i;
while(s[i]>='0' && s[i]<='9')++i;
if(i==kezd || s[i]!=' ' && s[i]!='\t' && s[i]!='\n' && s [i]!=0) return 0;
else return 1;}utananeztem a perrornak, es ahogy nezem ennek az a lenyege, hogy egy globalis valtozo tarolja, hogy a program futtatasa soran milyen hiba lepett fel, es a parameterul adott string utan kiirja. Tehat teszem azt, ha az atoi-t ugy probalnad meghivni, hogy elotte nem ellenorzod le hogy konvertalhato-e szamma a string, akkor ha hiba tortent, beallitana az errno nevu globalis valtozot (hivas elott erdemes nullazni, es includolni kell az errno.h-t) Ha az atoi hivas utan ellenorzod, hogy az errno erteke 0. Ha nem, akkor hivsz egy perror-t ami kirna a szoveget, meg az errno hibakodnak megfelelo szoveget. De mivel te mindig leellenorzod, hogy a szam konvertalhato-e, a program futasa soran sosem kap rossz parametert, sosem fog az errno erteke megvaltozni, ezert a perror hivas ebbol a szempontbol felesleges, irhatnal egybol a stderr-re is.
Visszaterve a temara: mivel fogalmam sincs mi az ami Kernighan-Ritchie C es mi az ami nem, fogalmam sincs mi a baja. De ha perror-t lehet hasznalni Kernighan-Ritchie C-ben, akkor lehet, hogy arra gondol a tanero amit fennt levezettem mert akkor az lehet hogy Kernighan-Ritchie-sebb

-
Bettina87
csendes tag
Elküldtem neki az utolsót, amit küldtél, és ezt küldte vissza:
"Ez egy picivel jobb, mint az előző, de nem KR (Kernighan-Ritchie) C-ben van.
Ha elküldi a KR C változatát, és levelében elmagyarázza nekem, hogy miért a perror rendszer függvényt hívja, akkor teljesen jó lesz."Az a gász, hogy fogalmam sincs hogy mit mire kéne kicserélni. Elvileg jó, meg minden, csak nem KR C. Bár részemről ezt is lepontozhatná, a lényeg hogy ne buktasson meg, de ez még mindig nem felel meg neki.
Lenne esetleg ötletetek hogy mit kéne változtatni?
ha szépen megkérlek titekt, azt is leírnátok hogy miért a perror rendszer függvényt hívja
aztán ígérem nem zaklatlak titeket többet, vasárnapig kell leadni.
Bár nektek ez jobban megy mint nekem.

köszi mindenkinek aki segít
-
mm00
aktív tag
ÁÁÁ hibáztam
sorryEz a jó leteszteltem most

#include<stdio.h>
#include <stdlib.h>
int egesze(char[]);
int main(int argc, char *argv[]) {
int i = 0, x=0;
int dec;
char rom[50];
if(argc == 1){
perror("Hianyzik a parameter!");
}
for(x=1;x<argc;x++){
if(egesze(argv[x])){
dec = atoi(argv[x]);
}else{
perror("A parameterlistaban nem megfelelo az egyik ertek!");
}
while(dec>=1000){
dec -= 1000;
rom[i] = 'M';
i++;
}
if (dec>=900){
dec-=900;
rom[i] = 'C';
i++;
rom[i] = 'M';
i++;
}
if(dec>=500){
dec -= 500;
rom[i] = 'D';
i++;
}
if (dec>=400){
dec -= 400;
rom[i] = 'C';
i++;
rom[i] = 'D';
i++;
}
while(dec>=100){
dec = dec-100;
rom[i] = 'C';
i++;
}
if(dec>=90){
dec -= 90;
rom[i] = 'X';
i++;
rom[i] = 'C';
i++;
}
if(dec>=50){
dec -= 50;
rom[i] = 'L';
i++;
}
if(dec>=40){
dec -= 40;
rom[i] = 'X';
i++;
rom[i] = 'L';
i++;
}
while(dec>=10){
dec -= 10;
rom[i] ='X';
i++;
}
if(dec == 9){
rom[i] = 'I';
i++;
rom[i] = 'X';
i++;
}
else{
if(dec >= 5){
dec -= 5;
rom[i] = 'V';
i++;
}
if(dec == 4){
rom[i] = 'I';
i++;
rom[i] = 'V';
i++;
}
else{
while(dec > 0){
dec -= 1;
rom[i] = 'I';
i++;
}
}
}
rom[i]='\0';
printf(" %s", rom);
}
}
int egesze(char s[]){
int i=0, kezd;
while (s[i]==' ' || s[i]=='\n' || s[i]=='\t')++i;
if(s[i]=='+' || s[i]=='-')++i;
kezd=i;
while(s[i]>='0' && s[i]<='9')++i;
if(i==kezd || s[i]!=' ' && s[i]!='\t' && s[i]!='\n' && s [i]!=0) return 0;
else return 1;} -
Bettina87
csendes tag
Az elsőzőt küldtem el neki, kiváncsi leszek erre mit ír vissza.
Nagyon szépen köszönöm a segítséget, majd írok hogy ezekre mit reagált. Remélem ez már jó lesz neki valamilyen szinten. -
doc
nagyúr
Eszméletlen rendesek vagytok, hogy segítetek
A legelsőt amit küldtél (373. hozzászólás) elküldtem a tanárnak, és visszadobta, hogy nem egészen ez volt a feladat kiírása.
Ezt a kis szösszenetet is mellékelte:
"Írjunk C programot (Kernighan-Ritchie C), amellyel az alábbi UNIX környezetben
végrehajtható parancsok valamelyikét valósítja meg. A választott parancsot
megvalósító programnak a parancs végrehajtásához szükséges információt a
parancssorból kell átvennie a „Hanoi Tornyai” játékot megvalósító
példaprogramban található módon. Az egészszám parancs argumentum átvételéhez az
int atoi(s)
char *s;
könyvtári függvényt használhatják ugyancsak a fent idézett példaprogramban látható módon.
Fontos: ANSI C, C++ forráskódú megoldások nem értékelhetők. "Totál kiakaszt, eddig mindenkiét visszaküldte, akiket ismerek, szóval roppant kedves és megértő emberke.
Azért próbálkozom a többivel is, hátha valamelyiket elfogadja. Remélem legalábbis.
ez a tanerő hülye

-
Bettina87
csendes tag
Eszméletlen rendesek vagytok, hogy segítetek
A legelsőt amit küldtél (373. hozzászólás) elküldtem a tanárnak, és visszadobta, hogy nem egészen ez volt a feladat kiírása.
Ezt a kis szösszenetet is mellékelte:
"Írjunk C programot (Kernighan-Ritchie C), amellyel az alábbi UNIX környezetben
végrehajtható parancsok valamelyikét valósítja meg. A választott parancsot
megvalósító programnak a parancs végrehajtásához szükséges információt a
parancssorból kell átvennie a „Hanoi Tornyai” játékot megvalósító
példaprogramban található módon. Az egészszám parancs argumentum átvételéhez az
int atoi(s)
char *s;
könyvtári függvényt használhatják ugyancsak a fent idézett példaprogramban látható módon.
Fontos: ANSI C, C++ forráskódú megoldások nem értékelhetők. "Totál kiakaszt, eddig mindenkiét visszaküldte, akiket ismerek, szóval roppant kedves és megértő emberke.
Azért próbálkozom a többivel is, hátha valamelyiket elfogadja. Remélem legalábbis.
-
mm00
aktív tag
-
doc
nagyúr
a K-R-féle C lényegében az ANSI
a clrscr meg szerintem a világ egyetlen szabványával sincs köszönőviszonyban sem
-
mm00
aktív tag
Na összehoztam neked, szerintem ez meg fog felelni

#include<stdio.h>
#include <ctype.h>
#define HSZ sizeof(int)/sizeof(short)*5
int getch(void);
void ungetch(int);
int getint(int *);
int main(int argc, char *argv[]) {
int i = 0;
int dec;
char rom[50];
getint(&dec);
printf("%d\n\n", dec);
while(dec>=1000){
dec -= 1000;
rom[i] = 'M';
i++;
}
if (dec>=900){
dec-=900;
rom[i] = 'C';
i++;
rom[i] = 'M';
i++;
}
if(dec>=500){
dec -= 500;
rom[i] = 'D';
i++;
}
if (dec>=400){
dec -= 400;
rom[i] = 'C';
i++;
rom[i] = 'D';
i++;
}
while(dec>=100){
dec = dec-100;
rom[i] = 'C';
i++;
}
if(dec>=90){
dec -= 90;
rom[i] = 'X';
i++;
rom[i] = 'C';
i++;
}
if(dec>=50){
dec -= 50;
rom[i] = 'L';
i++;
}
if(dec>=40){
dec -= 40;
rom[i] = 'X';
i++;
rom[i] = 'L';
i++;
}
while(dec>=10){
dec -= 10;
rom[i] ='X';
i++;
}
if(dec == 9){
rom[i] = 'I';
i++;
rom[i] = 'X';
i++;
}
else{
if(dec >= 5){
dec -= 5;
rom[i] = 'V';
i++;
}
if(dec == 4){
rom[i] = 'I';
i++;
rom[i] = 'V';
i++;
}
else{
while(dec > 0){
dec -= 1;
rom[i] = 'I';
i++;
}
}
}
rom[i]='\0';
printf("%s", rom);
}
int getint(int *pn)
{
int c=0, sign, ok=0, numdb;
double d;
while(!ok && c!=EOF)
{
while(isspace(c=getch()));
sign = 1;
if(c=='+'||c=='-')
{
sign=(c=='+')?1:-1;
c=getch();
}
for(d=0., numdb=HSZ; numdb-->0&&isdigit(c);c=getch())
{
d=10.*d+c-'0';
ok = 1;
}
d*=sign;
while(!isspace(c)&&c!=EOF)
{
c=getch();
ok = 0;
}
else
*pn=d;
}
if(c!=EOF)ungetch(c);
return(c);
} -
Bettina87
csendes tag
köszönöm a segítséget, egyetlen egy gondom van, hogy ansi c-t nem fogad el a tanár, csak a Kernighan-Ritchie C-s parancsokat.
ha van még valakinek ötlete, hatalmas örömmel fogadom
Előre is köszönöm -
szilu84
tag
Tessék, egy alapnak jó lesz (google)

#include<stdio.h>
main()
{
int a,b,c,d,e;
clrscr();
printf("Input a number (between 1-3000):");
scanf("%d",&e);
while (e==0||e>3000)
{
printf ("ERROR: Invalid Input!
");
printf ("Enter the number again:");
scanf ("%d",&e);
}
if (e>3000)
printf("Invalid");
a = (e/1000)*1000;
b = ((e/100)%10)*100;
c = ((e/10)%10)*10;
d = ((e/1)%10)*1;
if (a ==1000)
printf("M");
else if (a ==2000)
printf("MM");
else if (a ==3000)
printf("MMM");
if (b == 100)
printf("C");
else if (b == 200)
printf("CC");
else if (b == 300)
printf("CCC");
else if (b == 400)
printf("CD");
else if (b ==500)
printf("D");
else if (b == 600)
printf("DC");
else if (b == 700)
printf("DCC");
else if (b ==800)
printf("DCCC");
else if (b == 900)
printf("CM");
if (c == 10)
printf("X");
else if (c == 20)
printf("XX");
else if (c == 30)
printf("XXX");
else if (c == 40)
printf("XL");
else if (c ==50)
printf("L");
else if (c == 60)
printf("LX");
else if (c == 70)
printf("LXX");
else if (c ==80)
printf("LXXX");
else if (c == 90)
printf("XC");
if (d == 1)
printf("I");
else if (d == 2)
printf("II");
else if (d == 3)
printf("III");
else if (d == 4)
printf("IV");
else if (d ==5)
printf("V");
else if (d == 6)
printf("VI");
else if (d == 7)
printf("VII");
else if (d ==8)
printf("VIII");
else if (d == 9)
printf("IX");
getch();
}biztos jó a kód, csak a clrscr(); sor nem kell bele, mert az nincs az ansi c-ben
-
mm00
aktív tag
Tessék, egy alapnak jó lesz (google)

#include<stdio.h>
main()
{
int a,b,c,d,e;
clrscr();
printf("Input a number (between 1-3000):");
scanf("%d",&e);
while (e==0||e>3000)
{
printf ("ERROR: Invalid Input!
");
printf ("Enter the number again:");
scanf ("%d",&e);
}
if (e>3000)
printf("Invalid");
a = (e/1000)*1000;
b = ((e/100)%10)*100;
c = ((e/10)%10)*10;
d = ((e/1)%10)*1;
if (a ==1000)
printf("M");
else if (a ==2000)
printf("MM");
else if (a ==3000)
printf("MMM");
if (b == 100)
printf("C");
else if (b == 200)
printf("CC");
else if (b == 300)
printf("CCC");
else if (b == 400)
printf("CD");
else if (b ==500)
printf("D");
else if (b == 600)
printf("DC");
else if (b == 700)
printf("DCC");
else if (b ==800)
printf("DCCC");
else if (b == 900)
printf("CM");
if (c == 10)
printf("X");
else if (c == 20)
printf("XX");
else if (c == 30)
printf("XXX");
else if (c == 40)
printf("XL");
else if (c ==50)
printf("L");
else if (c == 60)
printf("LX");
else if (c == 70)
printf("LXX");
else if (c ==80)
printf("LXXX");
else if (c == 90)
printf("XC");
if (d == 1)
printf("I");
else if (d == 2)
printf("II");
else if (d == 3)
printf("III");
else if (d == 4)
printf("IV");
else if (d ==5)
printf("V");
else if (d == 6)
printf("VI");
else if (d == 7)
printf("VII");
else if (d ==8)
printf("VIII");
else if (d == 9)
printf("IX");
getch();
}Egy másik, ez függvénybe

// written by Ste Cork, free for any and all use.
//
const char *Number_AsRomanString( int iNumber )
{
struct RomanDigit_t
{
char *m_psString;
int m_iValue;
};
static const RomanDigit_t RomanDigits[]=
{
{"M", 1000},
{"CM", 900},
{"D", 500},
{"CD", 400},
{"C", 100},
{"XC", 90},
{"L", 50},
{"XL", 40},
{"X", 10},
{"IX", 9},
{"V", 5},
{"IV", 4},
{"I", 1},
};
// Strictly speaking, Roman digits can't display something
// such as 4999 without using overlaid bars and so forth,
// but for now this is a quick-and-dirty piece of code that'll
// just keep using M's...
//
static char sRomanString[20];
sRomanString[0] = '\0';
for (int i=0; iNumber && i<sizeof(RomanDigits)/
sizeof(RomanDigits[0]); i++)
{
while ( RomanDigits[i].m_iValue <= iNumber )
{
strcat( sRomanString, RomanDigits[i].m_psString );
iNumber -= RomanDigits[i].m_iValue;
}
}
return sRomanString;
} -
mm00
aktív tag
Szia!
Az a baj, hogy egyiket sem tudom megcsinálni, volt kemény 3 órám belőle, ami alatt nem igazán sikerült elsajátítani a dolgokat, és sajna a többieknek sem megy. Még egy rossz programnak is örülnék, ami Kernighan-Ritchie C-ben írodott. Szóval nem gáz, ha nem fut le, bár ti biztos nagyon értetek ehhez, én majd pár év múlva talán, ha majd belemélyedek a programozás rejtelmeibe.
Szóval roppant nagy segítségre szorulok jelenleg. :-(Tessék, egy alapnak jó lesz (google)

#include<stdio.h>
main()
{
int a,b,c,d,e;
clrscr();
printf("Input a number (between 1-3000):");
scanf("%d",&e);
while (e==0||e>3000)
{
printf ("ERROR: Invalid Input!
");
printf ("Enter the number again:");
scanf ("%d",&e);
}
if (e>3000)
printf("Invalid");
a = (e/1000)*1000;
b = ((e/100)%10)*100;
c = ((e/10)%10)*10;
d = ((e/1)%10)*1;
if (a ==1000)
printf("M");
else if (a ==2000)
printf("MM");
else if (a ==3000)
printf("MMM");
if (b == 100)
printf("C");
else if (b == 200)
printf("CC");
else if (b == 300)
printf("CCC");
else if (b == 400)
printf("CD");
else if (b ==500)
printf("D");
else if (b == 600)
printf("DC");
else if (b == 700)
printf("DCC");
else if (b ==800)
printf("DCCC");
else if (b == 900)
printf("CM");
if (c == 10)
printf("X");
else if (c == 20)
printf("XX");
else if (c == 30)
printf("XXX");
else if (c == 40)
printf("XL");
else if (c ==50)
printf("L");
else if (c == 60)
printf("LX");
else if (c == 70)
printf("LXX");
else if (c ==80)
printf("LXXX");
else if (c == 90)
printf("XC");
if (d == 1)
printf("I");
else if (d == 2)
printf("II");
else if (d == 3)
printf("III");
else if (d == 4)
printf("IV");
else if (d ==5)
printf("V");
else if (d == 6)
printf("VI");
else if (d == 7)
printf("VII");
else if (d ==8)
printf("VIII");
else if (d == 9)
printf("IX");
getch();
} -
Bettina87
csendes tag
Szia!
Az a baj, hogy egyiket sem tudom megcsinálni, volt kemény 3 órám belőle, ami alatt nem igazán sikerült elsajátítani a dolgokat, és sajna a többieknek sem megy. Még egy rossz programnak is örülnék, ami Kernighan-Ritchie C-ben írodott. Szóval nem gáz, ha nem fut le, bár ti biztos nagyon értetek ehhez, én majd pár év múlva talán, ha majd belemélyedek a programozás rejtelmeibe.
Szóval roppant nagy segítségre szorulok jelenleg. :-( -
Benmartin
senior tag
Sziasztok!
Egy kis segítségre lenne szükségem. Konkrétan egy programot kéne megírni az alábbi három közül. Nagyon hálás lennék ha segítenétek nekem, mert én totál béna vagyok és az idő is sürget mert júni 6-ig kéne. Csak Kernighan-Ritchie C nyelven fogadja el a tanár, másban nem.
Ezekből lehet választani:1. r2d római-szám
A parancs a parancs sorban egy római számot (vagy római számok
szóközökkel elválasztott sorozatát) vár(ja), amely(ek)nek kiírja
decimális megfelelőjét az stdout-ra.
Hibásan megadott parancs esetén a programnak rövid diagnosztikai
üzenetben informálnia kell a felhasználót arról, hogy a parancsot
hogyan kell használni. A diagnosztikai üzenetet az stderr-re kell
küldeni.2. d2r decimális-szám
A parancs a parancs sorban egy decimális számot (vagy decimális számok
szóközökkel elválasztott sorozatát) vár(ja), amely(ek)nek kiírja római
szám megfelelőjét az stdout-ra.
Hibásan megadott parancs esetén a programnak rövid diagnosztikai
üzenetben informálnia kell a felhasználót arról, hogy a parancsot
hogyan kell használni. A diagnosztikai üzenetet az stderr-re kell
küldeni.3. twins decimális-szám
A parancs a parancs sorban egy decimális számot vár, és az
[1, decimális-szám] zárt intervallumba eső ikerprímeket írja
ki az stdout-ra.
Hibásan megadott parancs esetén a programnak rövid diagnosztikai
üzenetben informálnia kell a felhasználót arról, hogy a parancsot
hogyan kell használni. A diagnosztikai üzenetet az stderr-re kell
küldeni.Ha valaki meg tudna oldani nekem egyet és elküldené az e-mail címemre, nagyon hálás lennék.
és hol akadtál el, mi a baj?
-
Bettina87
csendes tag
Sziasztok!
Egy kis segítségre lenne szükségem. Konkrétan egy programot kéne megírni az alábbi három közül. Nagyon hálás lennék ha segítenétek nekem, mert én totál béna vagyok és az idő is sürget mert júni 6-ig kéne. Csak Kernighan-Ritchie C nyelven fogadja el a tanár, másban nem.
Ezekből lehet választani:1. r2d római-szám
A parancs a parancs sorban egy római számot (vagy római számok
szóközökkel elválasztott sorozatát) vár(ja), amely(ek)nek kiírja
decimális megfelelőjét az stdout-ra.
Hibásan megadott parancs esetén a programnak rövid diagnosztikai
üzenetben informálnia kell a felhasználót arról, hogy a parancsot
hogyan kell használni. A diagnosztikai üzenetet az stderr-re kell
küldeni.2. d2r decimális-szám
A parancs a parancs sorban egy decimális számot (vagy decimális számok
szóközökkel elválasztott sorozatát) vár(ja), amely(ek)nek kiírja római
szám megfelelőjét az stdout-ra.
Hibásan megadott parancs esetén a programnak rövid diagnosztikai
üzenetben informálnia kell a felhasználót arról, hogy a parancsot
hogyan kell használni. A diagnosztikai üzenetet az stderr-re kell
küldeni.3. twins decimális-szám
A parancs a parancs sorban egy decimális számot vár, és az
[1, decimális-szám] zárt intervallumba eső ikerprímeket írja
ki az stdout-ra.
Hibásan megadott parancs esetén a programnak rövid diagnosztikai
üzenetben informálnia kell a felhasználót arról, hogy a parancsot
hogyan kell használni. A diagnosztikai üzenetet az stderr-re kell
küldeni.Ha valaki meg tudna oldani nekem egyet és elküldené az e-mail címemre, nagyon hálás lennék.
-
Gergello
addikt
Köszi a gyors válaszokat!
Esetemben az fgets kellet volna használni
-
PazsitZ
addikt
Ilyen felépítésű szöveges fileból hogy lehet beolvasni?
Példa:
5 4 12345
das d as d ad
3 1 56565
gfdgd fgd asd asd ggggfscanf(f,"%d %d %s",......) ezzel beolvasom az első sort ez oké
a második sort ezzel próbálnám fscanf(f,"%s"....) ,de ez ugye csak az első szóközig olvassa be. Mindez egy for ciklusban van.[link]
fgets - sortonként olvasásás
fgetc - karakterenként beolvasás -
doc
nagyúr
Ilyen felépítésű szöveges fileból hogy lehet beolvasni?
Példa:
5 4 12345
das d as d ad
3 1 56565
gfdgd fgd asd asd ggggfscanf(f,"%d %d %s",......) ezzel beolvasom az első sort ez oké
a második sort ezzel próbálnám fscanf(f,"%s"....) ,de ez ugye csak az első szóközig olvassa be. Mindez egy for ciklusban van.lehet fscanf-fel is, és a végén összerakosgatod egy stringbe, de egyszerűbb ha rákeresel a getline függvényre
-
Gergello
addikt
Ilyen felépítésű szöveges fileból hogy lehet beolvasni?
Példa:
5 4 12345
das d as d ad
3 1 56565
gfdgd fgd asd asd ggggfscanf(f,"%d %d %s",......) ezzel beolvasom az első sort ez oké
a második sort ezzel próbálnám fscanf(f,"%s"....) ,de ez ugye csak az első szóközig olvassa be. Mindez egy for ciklusban van. -
Lortech
addikt
-
Facek
csendes tag
heló!
Mi a problémája ennek a programnak?#include <stdio.h>
main ()
{
int a;
char b;
printf("Kerek egy egesz szamot: ");
scanf("%d",&a);
printf("Kerek egy betut: ");
scanf("%c",&b);
printf("a=%d es b=%c",a,b);
}A számot beolvassa, de a betűvel gondjai vannak. Vagy nem enged semmit beírni, vagy átugorja és egyből kiírja hogy pl: a=3 es b=
Vagy ha a program jó, akkor a fordítóval lehet a baj? Mert C++ fordítóm van, a könyv meg amiből tanulgatok sima C könyv.tudtommal nem kell & jel a karakterek beolvasasanal, vagy hasznalj gets(b); -t
-
Lortech
addikt
heló!
Mi a problémája ennek a programnak?#include <stdio.h>
main ()
{
int a;
char b;
printf("Kerek egy egesz szamot: ");
scanf("%d",&a);
printf("Kerek egy betut: ");
scanf("%c",&b);
printf("a=%d es b=%c",a,b);
}A számot beolvassa, de a betűvel gondjai vannak. Vagy nem enged semmit beírni, vagy átugorja és egyből kiírja hogy pl: a=3 es b=
Vagy ha a program jó, akkor a fordítóval lehet a baj? Mert C++ fordítóm van, a könyv meg amiből tanulgatok sima C könyv.scanf("%1s", &b);
Bennemarad az inputban az előző beolvasásból az enter és azt húzza be a karakter beolvasásánál.
scanf(" %c",&b) is jó (szóköz a c előtt), de ez csak egy db white-spacet küszöböl ki.
Ha pl. azt írod, hogy számnak, hogy:
1 szóközszóközszóköz akkor már nem jó. -
Wizardmon
csendes tag
heló!
Mi a problémája ennek a programnak?#include <stdio.h>
main ()
{
int a;
char b;
printf("Kerek egy egesz szamot: ");
scanf("%d",&a);
printf("Kerek egy betut: ");
scanf("%c",&b);
printf("a=%d es b=%c",a,b);
}A számot beolvassa, de a betűvel gondjai vannak. Vagy nem enged semmit beírni, vagy átugorja és egyből kiírja hogy pl: a=3 es b=
Vagy ha a program jó, akkor a fordítóval lehet a baj? Mert C++ fordítóm van, a könyv meg amiből tanulgatok sima C könyv. -
djszapi
csendes tag
sziasztok!
az a kérdésem van, hogy soros porton keresztül gsm modulra kellene küldenem üzenetet, nyilván at parancsok segítségével hogy üzenetet küldjön a modul egy telefonra bizonyos feltételek teljesülésekor.
a kérdésem az hogy az elküldött szövegbe hogy tudom beleszúrni a nem nyomtatható, vezérlő karaktereket? enterre, meg a ctrl+z-re gondolnék.
enter vmi ilyesmi hogy \n, de a cntrl+z-nek a char alakja SUB, hexa meg decimalis alakja meg nem egeszen jo megoldas volt eddig...közsi: Laci
-
Noobi
tag
Köszönöm a segítséget!
...hát igen, normális keresőszavakkal tényleg 
-
Noobi
tag
Az lehet, hogy láttad
...igen ez már ++os project volt... szóval mindkét variáció jó?
És a másodfokús feladat hogy legyen? -
Benmartin
senior tag
Az egyenletesnek már az elején.......
A memóriásra van két variációm, de sztem nem jó...var1:
#include<conio.h>
#include <iostream>
using namespace std;
main()
{
int i = 1024;
float f = -1.2;printf("A %d erteke a memoriaban: %p\n",i, i);
printf("A %f erteke a memoriaban: %p\n",f, f);getch();
}de ennél kicsit "sántít" a lebegőpontos....
var2:
#include <stdio.h>
#include <conio.h>
int main()
{
int n;
float m;
printf("Kerem a \/fixpontos\/ szamot: ");
scanf("%d", &n);
printf("Fixpontosan: ");
char *p = (char *) (&n);
for (int i = 0; i < sizeof(int); ++i, ++p)
{
printf("%02X ", (int) (unsigned char) (*p));
}
getch();{
printf("\nKerem a \/lebegopontos\/ szamot: ");
scanf("%f", &m);
char *p = (char *) (&m);
for (int i = 0; i < sizeof(float); ++i, ++p)
{
printf("%02X ", (int) (unsigned char) (*p));
}
getch();
return 0;
}
}
Nah így állok.... nem tudom hogy melyik lenne az elfogadható..... de a másodfokúshoz hozzá sem tudok fogni
[link], pedig jól működik, megjegyzem nagyon ismerős a program, mintha már láttam volna máshol is.
mod:
using namespace std c programban? c-ben nincs, és itt pedig szükség sincs rá. -
Noobi
tag
Az egyenletesnek már az elején.......
A memóriásra van két variációm, de sztem nem jó...var1:
#include<conio.h>
#include <iostream>
using namespace std;
main()
{
int i = 1024;
float f = -1.2;printf("A %d erteke a memoriaban: %p\n",i, i);
printf("A %f erteke a memoriaban: %p\n",f, f);getch();
}de ennél kicsit "sántít" a lebegőpontos....
var2:
#include <stdio.h>
#include <conio.h>
int main()
{
int n;
float m;
printf("Kerem a \/fixpontos\/ szamot: ");
scanf("%d", &n);
printf("Fixpontosan: ");
char *p = (char *) (&n);
for (int i = 0; i < sizeof(int); ++i, ++p)
{
printf("%02X ", (int) (unsigned char) (*p));
}
getch();{
printf("\nKerem a \/lebegopontos\/ szamot: ");
scanf("%f", &m);
char *p = (char *) (&m);
for (int i = 0; i < sizeof(float); ++i, ++p)
{
printf("%02X ", (int) (unsigned char) (*p));
}
getch();
return 0;
}
}
Nah így állok.... nem tudom hogy melyik lenne az elfogadható..... de a másodfokúshoz hozzá sem tudok fogni
-
Benmartin
senior tag
Sziasztok! Tudna nekem valaki segíteni 2 feladat megoldásában? A határidő sürget, mivel holnap már be kell mutatni, és nagyon nem megy...
de ha valaki mégis segítene, azt nagyon köszönöm!1., Készítsünk a másodfokú egyenlet megoldására programot. Számítsuk ki a programmal az (x-10.0^i)*(x-1.0)=0.0 másodfokú egyenlet gyökeit az i=1,2,3,...értékekre. Figyeljük meg a kisebbik gyökként előállított értékeket. A hiba oka: a nagyon kis gyökök relatív hibája nagy, különösen akkor, ha az egyenlet két gyöke abszolút értékben jelentősen eltér egymástól. Ilyenkor ugyanis "a" is, és "c" is kicsi "b"-hez képest, s ezért b és sqrt(b^2-4*a*c) közel azonos értékű. A korlátozott pontosság következtében e két érték különbségének nagy lesz a relatív hibája. Jobb eredményt kapunk, ha a megoldóképlettel ekvivalens megoldóképlettel ekvivalens x1= -((2*c/b)/(1+sqrt(1-(4*a*c/b^2)))) x2= -(c/a*x1) képletek alapján határozzuk meg a gyököket, ahol abszolút értékét tekintve x1 a kisebik és x2 a nagyobbik gyök. Szóval valahogy szemléltetni kellene az egyik és a másik képlet által generált megoldásokat
2., a C hogyan ábrázolja a memóriában a számokat fixpontosan és lebegőpontosan... szóval azt kellene valahogy kiíratni, hogy tárolódik ez a memóriában... pl hexában a 12, -1.05 stb... számok...
Bocsi, hogy beírtam, de tanácstalan vagyok

és pontosan miben segítsünk, hol akadtál el?
-
szilu84
tag
Sziasztok! Tudna nekem valaki segíteni 2 feladat megoldásában? A határidő sürget, mivel holnap már be kell mutatni, és nagyon nem megy...
de ha valaki mégis segítene, azt nagyon köszönöm!1., Készítsünk a másodfokú egyenlet megoldására programot. Számítsuk ki a programmal az (x-10.0^i)*(x-1.0)=0.0 másodfokú egyenlet gyökeit az i=1,2,3,...értékekre. Figyeljük meg a kisebbik gyökként előállított értékeket. A hiba oka: a nagyon kis gyökök relatív hibája nagy, különösen akkor, ha az egyenlet két gyöke abszolút értékben jelentősen eltér egymástól. Ilyenkor ugyanis "a" is, és "c" is kicsi "b"-hez képest, s ezért b és sqrt(b^2-4*a*c) közel azonos értékű. A korlátozott pontosság következtében e két érték különbségének nagy lesz a relatív hibája. Jobb eredményt kapunk, ha a megoldóképlettel ekvivalens megoldóképlettel ekvivalens x1= -((2*c/b)/(1+sqrt(1-(4*a*c/b^2)))) x2= -(c/a*x1) képletek alapján határozzuk meg a gyököket, ahol abszolút értékét tekintve x1 a kisebik és x2 a nagyobbik gyök. Szóval valahogy szemléltetni kellene az egyik és a másik képlet által generált megoldásokat
2., a C hogyan ábrázolja a memóriában a számokat fixpontosan és lebegőpontosan... szóval azt kellene valahogy kiíratni, hogy tárolódik ez a memóriában... pl hexában a 12, -1.05 stb... számok...
Bocsi, hogy beírtam, de tanácstalan vagyok

huh ennek nagyon nummat szaga van, nem irigyellek

-
Noobi
tag
Sziasztok! Tudna nekem valaki segíteni 2 feladat megoldásában? A határidő sürget, mivel holnap már be kell mutatni, és nagyon nem megy...
de ha valaki mégis segítene, azt nagyon köszönöm!1., Készítsünk a másodfokú egyenlet megoldására programot. Számítsuk ki a programmal az (x-10.0^i)*(x-1.0)=0.0 másodfokú egyenlet gyökeit az i=1,2,3,...értékekre. Figyeljük meg a kisebbik gyökként előállított értékeket. A hiba oka: a nagyon kis gyökök relatív hibája nagy, különösen akkor, ha az egyenlet két gyöke abszolút értékben jelentősen eltér egymástól. Ilyenkor ugyanis "a" is, és "c" is kicsi "b"-hez képest, s ezért b és sqrt(b^2-4*a*c) közel azonos értékű. A korlátozott pontosság következtében e két érték különbségének nagy lesz a relatív hibája. Jobb eredményt kapunk, ha a megoldóképlettel ekvivalens megoldóképlettel ekvivalens x1= -((2*c/b)/(1+sqrt(1-(4*a*c/b^2)))) x2= -(c/a*x1) képletek alapján határozzuk meg a gyököket, ahol abszolút értékét tekintve x1 a kisebik és x2 a nagyobbik gyök. Szóval valahogy szemléltetni kellene az egyik és a másik képlet által generált megoldásokat
2., a C hogyan ábrázolja a memóriában a számokat fixpontosan és lebegőpontosan... szóval azt kellene valahogy kiíratni, hogy tárolódik ez a memóriában... pl hexában a 12, -1.05 stb... számok...
Bocsi, hogy beírtam, de tanácstalan vagyok

-
Wizardmon
csendes tag
Köszi szépen a helpet.
odonye-nek válasz:
Ezt én is megtaláltam, de a fordító működéséhez nincs benne leírás. (vagy csak én nem találtam) -
odonye
csendes tag
http://www.eet.bme.hu/publications/e_books/progr/cpp/node2.html <-- Google-ban nem volt nehéz ezt megtalálni.
-
Lortech
addikt
Heló!
Most kezdtem C-ben programozni. Pontosabban ma délután.
Van nekem egy borland c++ 2.05 fordítóm. Elmondaná valaki, hogyan kell azt használni? agy valami linket adjon please ahol leírják.
Olyasmi programmal kezdtem, hogy:
#include<stdio.h>
main()
{
printf("Elsö C programom \n");
}
Ilyenkor elvileg meg kell hogy jelenjen a: Első C programom - szöveg.
De már az sem biztos hogy sikerült normálisan lefordítanom. Rámegyek hogy save. Akkor csinál nekem egy jegyzettömb formájú fájlt, aztán mondom neki hogy RUN. Akkor kiír 3-4 sor szöveget, és rak a jegyzetemhez egy .exe fájlt meg egy csomó mást is. Ha rákattintok az exe-re, kijön egy dosos ablak, de mire észreenném, hogy van-e rajt valami, be is záródik. Enek kell történnie? Ezt kell csinálnom fordításkor?
Légyszi valaki segítsen.Nyiss egy cmd ablakot (parancssor), és ott futtasd le a kapott exe fájlt, és látni fogod a programod kimenetét, ha volt neki.
Ennek kell történnie, amit leírtál, mivel a program befejeződik felhasználói interakció nélkül, és a parancssor bezáródik, ezért nem látod az eredményt. -
Wizardmon
csendes tag
Heló!
Most kezdtem C-ben programozni. Pontosabban ma délután.
Van nekem egy borland c++ 2.05 fordítóm. Elmondaná valaki, hogyan kell azt használni? agy valami linket adjon please ahol leírják.
Olyasmi programmal kezdtem, hogy:
#include<stdio.h>
main()
{
printf("Elsö C programom \n");
}
Ilyenkor elvileg meg kell hogy jelenjen a: Első C programom - szöveg.
De már az sem biztos hogy sikerült normálisan lefordítanom. Rámegyek hogy save. Akkor csinál nekem egy jegyzettömb formájú fájlt, aztán mondom neki hogy RUN. Akkor kiír 3-4 sor szöveget, és rak a jegyzetemhez egy .exe fájlt meg egy csomó mást is. Ha rákattintok az exe-re, kijön egy dosos ablak, de mire észreenném, hogy van-e rajt valami, be is záródik. Enek kell történnie? Ezt kell csinálnom fordításkor?
Légyszi valaki segítsen. -
Lortech
addikt
-
Noobi
tag
Ha ennek: http://ebookz.hu/ a keresőjébe beírod, hogy c programozás, kidob mindent, még feladatgyűjtemény is van rajta... Sok Sikert!
-
dany27
őstag
oks
Csak vmi jó irodlalom kéne hozzá, mert magamtól nem fogok rájönni hogy mi hogy van
Szóval tudnál nekem mondani valami jó kis könyvet C-hez?? -
Noobi
tag
Szia!
Szerintem az általad megadott sorrend a helyes.... a C-re épül a másik kettő lényegében... a C++ objektum orientált, a C# pedig a C++ és a Java keveréke .... elvileg... szóval én a sima C-re voksolnék... -
Noobi
tag
-
dany27
őstag
sziasztok!
Én most szeretném elkezdeni a C-t tanulgatni de nem tudom melyiket lenne érdemes elkezdeni. Mivel nem tudom hogy mi a különbség a sima C a C++ és C# között!
Előre is köszönöm a válaszaitokat! -
Noobi
tag
-
Lortech
addikt
Sziasztok! Tudna nekem segíteni valaki abban a problémában, hogy a devCpp-omban a sima c project nem fordul le? Csak a c++-os fut le hiba nélkül....
A kiírt hiba: "C:\Prog\Dev-Cpp\Project\Makefile.win [Build Error] [main.o] Error 1 "
Vistám van, bár nem gondolom hogy az lenne a baja, mert a legelején simán lefordult... azóta hiába telepítettem újra mindent, nem segít.....
Előre is köszönöm!Pedig bizony az a baj (vista alatt nem megy a devcpp alapból).
Itt egy biztosan működő leírás (én is így raktam fel Vistára): [link]
-
Noobi
tag
Sziasztok! Tudna nekem segíteni valaki abban a problémában, hogy a devCpp-omban a sima c project nem fordul le? Csak a c++-os fut le hiba nélkül....
A kiírt hiba: "C:\Prog\Dev-Cpp\Project\Makefile.win [Build Error] [main.o] Error 1 "
Vistám van, bár nem gondolom hogy az lenne a baja, mert a legelején simán lefordult... azóta hiába telepítettem újra mindent, nem segít.....
Előre is köszönöm! -
Vico87
tag
Igen, meg lehet oldani. Nyilván vannak könnyebben és nehezebben kivitelezhetõ megoldások.
Könnyű megoldások pl :
- megoldóképlet alkalmazása (negyedfokú polinomig alkalmazható, de a negyedfokú megoldóképletét tutira rosszul írod majd le, mert embertelen hosszú)
- iteratív módszer alkalmazása (lásd : Newton módszer, Lagrange módszer)
Az egyenletmegoldáshoz ajánlott "numerikus módszerek" témakörbõl ismeretek.Igazából minél többet tudsz matekból annál jobb megoldást tudsz erre írni.
-
PazsitZ
addikt
-
kicsitomi88
őstag
-
odonye
csendes tag
Üdv! Egyenletet meg lehet oldatni progival? Pl egy olyan, hogy 24=262.2-x/500-x*100?
-
maszat
senior tag
-
rOwLeY
őstag
Köszönet mindenkinek a segédkezésért!

-
szilu84
tag
Felhasználva a forrásodat elkészítettem egy másik verziót:
char *feladat(char *str){
char *uj=(char*)malloc(sizeof(char)*(strlen(str)*1.2));
int i=0;
int ujszohossz=0;
int egyesek=0;
for(i=0; i<strlen(str); i++){
uj[i+ujszohossz]=str[i];
if(str[i]=='1'){
egyesek++;
if(egyesek == 5){
egyesek = 0;
ujszohossz++;
uj[i+ujszohossz]='0';
}
} else {
egyesek=0;
}
}
return uj;
}Működése:
Létrehozza a célszónak megfelelő karaktertömböt. Külön megvizsgálva lehetett volna pontosan akkorát létrehozni, mint amekkora kell, de hirtelen ez is jó, elvégre max 20%-al lesz hoszabb a szó.
Betűnként olvassa a szót, és számolja az egymásutáni 1-eseket. Ha megvan az 5, akkor hozzácsapja a 0-t, ha nincs, akkor nullázza a számlálót.
uj[i+ujszohossz]=str[i]; az ujszohossz változó az eltolás kezelésére szolgál, mikor a 0-t beszúrjuk.
Így hirtelen kipróbálva működött, de a hibátlan működésért nem vállalok garanciát.
kipróbáltam, müxik az algoritmusod, de sztem nem zárod le az uj sztringet, mert kiírásnál mindenféle krixkraxot ír a végére.
ez hiányzik a return elé: uj[i+ujszohossz]='\0'; -
D@ni88
addikt
hát végülis jó, csak eddig számokban gondolkoztam mint mezők nevei, de ha egy lenne akkor meglehetne oldani betűkkel
hát nem tom úgy mennyire lenne átlátható, mert azért a betű vs számhoz már hozzá van szokva az emberi szem. -
maszat
senior tag
char *feladat(char *str){
char *uj=(char*)malloc(sizeof(char)*500);
char tmp[2];
tmp[1]='\0';
int i;
uj[0]='\0';
for (i=0;i<strlen(str);){
if (str[i]=='1' && str[i+1]=='1' && str[i+2]=='1' &&
str[i+3]=='1' && str[i+4]=='1'){
strcat(uj,"111110");
i+=5;
}
else{
tmp[0]=str[i++];
strcat(uj,tmp);
}
}
return uj;
}Felhasználva a forrásodat elkészítettem egy másik verziót:
char *feladat(char *str){
char *uj=(char*)malloc(sizeof(char)*(strlen(str)*1.2));
int i=0;
int ujszohossz=0;
int egyesek=0;
for(i=0; i<strlen(str); i++){
uj[i+ujszohossz]=str[i];
if(str[i]=='1'){
egyesek++;
if(egyesek == 5){
egyesek = 0;
ujszohossz++;
uj[i+ujszohossz]='0';
}
} else {
egyesek=0;
}
}
return uj;
}Működése:
Létrehozza a célszónak megfelelő karaktertömböt. Külön megvizsgálva lehetett volna pontosan akkorát létrehozni, mint amekkora kell, de hirtelen ez is jó, elvégre max 20%-al lesz hoszabb a szó.
Betűnként olvassa a szót, és számolja az egymásutáni 1-eseket. Ha megvan az 5, akkor hozzácsapja a 0-t, ha nincs, akkor nullázza a számlálót.
uj[i+ujszohossz]=str[i]; az ujszohossz változó az eltolás kezelésére szolgál, mikor a 0-t beszúrjuk.
Így hirtelen kipróbálva működött, de a hibátlan működésért nem vállalok garanciát.
-
Lortech
addikt
char *feladat(char *str){
char *uj=(char*)malloc(sizeof(char)*500);
char tmp[2];
tmp[1]='\0';
int i;
uj[0]='\0';
for (i=0;i<strlen(str);){
if (str[i]=='1' && str[i+1]=='1' && str[i+2]=='1' &&
str[i+3]=='1' && str[i+4]=='1'){
strcat(uj,"111110");
i+=5;
}
else{
tmp[0]=str[i++];
strcat(uj,tmp);
}
}
return uj;
}Biztos működik, de az nem a legjobb gyakorlat, hogy kihivatkozol a tömbből. Meg ugye ott a limit.
-
szilu84
tag
-
odonye
csendes tag
D@ni88, igen. Et hívják több dimenziós tömbnek. De ha úgy gondolod, hogy 25db 2 karaktert tároló ,,szöveget" akarsz létrehozni, akkor azt fordítva kell megtenni (ha jól tudom, javítsatok ki ha tévedek): char a[25][2].
-
szilu84
tag
Hali!
A segítségeteket kérném!Az alábbi programról lenne szó:Írjon és deklaráljon C föggvényt, amely egy nulla végú stringben, amely 1-es és 0 karaktereket tartalmaz, minden egymást követő ötödik egyes után beír egy 0-ár!Az eredmény számára a függvény foglal helyet.
pl: 11110111011111110011 --> 111101110111110110011char *feladat(char *str){
char *uj=(char*)malloc(sizeof(char)*500);
char tmp[2];
tmp[1]='\0';
int i;
uj[0]='\0';
for (i=0;i<strlen(str);){
if (str[i]=='1' && str[i+1]=='1' && str[i+2]=='1' &&
str[i+3]=='1' && str[i+4]=='1'){
strcat(uj,"111110");
i+=5;
}
else{
tmp[0]=str[i++];
strcat(uj,tmp);
}
}
return uj;
} -
D@ni88
addikt
vagy egyáltalán hogy lehet létrehozni olyan char tömböt? amiben 25db 2hosszúságű "szöveg" tárolható?
char a[2][25]? -
D@ni88
addikt
Bekered hogy melyik koordira es mit, atirod a tombbe, kepernyotorles es ujrakiir.
a bekérést meg az iyleneket értem. megcsináltam már turbóba

hát jólvan de ez int típusú... most át kell h írjam a tömböt char-ra? és kézi feltöltéssel kell megoldani, azt meg nem szeretném.
képernyő törlést egyépként mivel lehetmegoldani? -
kicsitomi88
őstag
Na a "project" egy 5x5ös ötödölő játék lenne...
addig eljutottam hogy kiírassam meg hasonlók.
De valaki tudna egy megoldást arra, hogy ha 'X'-et és 'O'-t akarok beírni azt miként hogy csináljam?#include <stdio.h>
void main()
{
int a[25];
int i, j, x;
x=1;
for (i=0; i<25; i++)
{
a[i]=x++;
}
for (i=0; i<25; i++)
{
if ((i==5) || (i==10) || (i==15) || (i==20) || (i==25)) printf("\n\n");
if (a[i]<10) printf(" %d", a[i]);
else printf("%d", a[i]);
printf(" ");
}
}Bekered hogy melyik koordira es mit, atirod a tombbe, kepernyotorles es ujrakiir.
-
D@ni88
addikt
Na a "project" egy 5x5ös ötödölő játék lenne...
addig eljutottam hogy kiírassam meg hasonlók.
De valaki tudna egy megoldást arra, hogy ha 'X'-et és 'O'-t akarok beírni azt miként hogy csináljam?#include <stdio.h>
void main()
{
int a[25];
int i, j, x;
x=1;
for (i=0; i<25; i++)
{
a[i]=x++;
}
for (i=0; i<25; i++)
{
if ((i==5) || (i==10) || (i==15) || (i==20) || (i==25)) printf("\n\n");
if (a[i]<10) printf(" %d", a[i]);
else printf("%d", a[i]);
printf(" ");
}
} -
rOwLeY
őstag
Hali!
A segítségeteket kérném!Az alábbi programról lenne szó:Írjon és deklaráljon C föggvényt, amely egy nulla végú stringben, amely 1-es és 0 karaktereket tartalmaz, minden egymást követő ötödik egyes után beír egy 0-ár!Az eredmény számára a függvény foglal helyet.
pl: 11110111011111110011 --> 111101110111110110011 -
Lortech
addikt
-
odonye
csendes tag
Próbáltam randommal is, de teljessen felesleges volt, mivel a randomize();-val volt gondja.
-
D@ni88
addikt
-
Lortech
addikt
-
D@ni88
addikt
-
Lortech
addikt
-
odonye
csendes tag
ÜDv, ha a randomize(); helyére ezt írom: srand(time(NULL));, akkor működik. Ez most pontossan mi is? Egy fórumon találtam, hgoy ezzel működik, csak miért, és mi ez?
-
odonye
csendes tag
c.c
.text+0x4f): undefined reference to `randomize'
Azt nem tudtam, hogy az elejen kell. -
doc
nagyúr
milyen hibaüzenetet? ha nem árulod el, nehéz lesz...
azt tudod, hogy a randomize-ot csak egyszer, a program elején szabad meghívni, ugye? -
odonye
csendes tag
Mikor véletlenszerű számot szeretnék kapni, miért kapom mindig gyanazt a programot akárhányszor lefutatom? Ha meghívom a randmize() függványt akkor hibaüzenetet kapok. Ilyet ovlastam:
#include <stdlib.h>
randomize();
x=rnd() % nDe ez csak randomize(); nélkül működik. Miért lehet ez?
-
doc
nagyúr
[ egyeterto smiley ]
Vico87: Pascallal kezdtem es delphiztem evekig, vagy 5 elpazarolt ev az eletembol...

én annak idején szerettem a Pascalt, de mikor sikerült "összejönnöm" a C-vel, onnantól rá sem néztem
az előnye hogy könnyen tanulható, de ez egy idő után már erős hátrány lesz. pl. a C konzekvens felépítéséhez képest a Pascal egy össze-vissza hányt szutyok.
az a baj, hogy az oktatás irtózatosan lassan idomul az aktualitásokhoz, a számítástechnika gyors fejlődésével meg képtelen lépést tartani. a felsőoktatásban még csak-csak, de pl. egy középiskola reménytelen. az a tanár, aki anno 30 éve megtanulta a pascalt, még 10-20 évig tanítani is fogja. ahelyett hogy a modernebb szemléletű nyelveket tanítanák (akár delphit, ha már könnyen tanulható nyelv kell)
ok hogy alapozni is kell, de nem mindegy hogyan -
kicsitomi88
őstag
-
Vico87
tag
Kezdõknek könnyebb, mint C-t tanulni egybõl. Én legelõször Pascalban programoztam, aztán tanultam csak meg C-ül. Manapság az a hátránya, hogy nem igazán használják, míg a C-t igen. Szerintem egyszerűbb kezdõknek azt leírni és megérteni, hogy "szoveg : string;", majd csak használni, mint "char* szoveg stb..." vagy "char szoveg[x]" és mindig &szoveg-ként használni a függvényekben.
-
amargo
addikt
-
D@ni88
addikt
-
odonye
csendes tag
AMúgy a Pasclanak van értelme? Én nem sokat látok.
-
D@ni88
addikt
leesett persze, csak nekem úgy mondták h azzal lehet tömböt létrehozni. furcsélottam h racionális, és tömb is, de hát azthittem h ez csak ilyen egyedi hülyeség

de amit írtál erről az átalakításról, hát izé, nem nagyon értem

amúgy meg 5x5ös 5ödölő lesz belőle. ezt csináltam meg 2 éve középsuli 3.ba prog évvégi ként pascalban, és önszorgalomból megcsináltam snake-et is
csak úgy önszórakoztatás képpen
jólvan elhiszem kicsit furcsa volt :p de kivehető 
-
Lortech
addikt
-
D@ni88
addikt
-
Lortech
addikt
-
D@ni88
addikt
Új hozzászólás Aktív témák
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Milyen légkondit a lakásba?
- Projektor topic
- Eredeti játékok OFF topik
- Motoros topic
- Amlogic S905, S912 processzoros készülékek
- Fejhallgató erősítő és DAC topik
- Anime filmek és sorozatok
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- gban: Ingyen kellene, de tegnapra
- iPhone topik
- További aktív témák...
- HP Omen 17 QHD 240Hz / RTX 4090 / i7-13700HX / 32GB DDR5 / 1TB SSD! BeszámíTOK
- BESZÁMÍTÁS! MSI SUPRIM X RTX 3070 8GB videokártya garanciával hibátlan működéssel
- AKCIÓ! EVGA FTW3 Ultra Gaming RTX 3080Ti 12GB videókártya garanciával hibátlan működéssel
- Honor 200 Lite / 8/256GB / Kártyafüggetlen / 12Hó Garancia
- -50% Dobozos Új Lenovo ThinkPad X1 gen 10 2-in-1 Ultra 7 268V 32gb ram Inter Arc 140V Gari 2030
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest




. Nem tudom megfelel-e a Kernighan-Ritchie parancsoknak 
...hát igen, normális keresőszavakkal tényleg
de ha valaki mégis segítene, azt nagyon köszönöm!





Mindig tanul az ember! 