Új hozzászólás Aktív témák
-
!wannabe
tag
Hali!
Eclipse-el meg VS.-el én is állandóan szívok. Ezért is használok DevC-t vagy CodeBlocks-t. Kisebb programok írására tökéletesen alkalmas. Majd ha muszáj lesz belerázódok a többibe addig ez megfelel.
Amúgy meg csak nem ezen fogod bebukni a tárgyat...
U.I.:
system("PAUSE");
-t használok, hogy ne tűntesse el egyből a parancssort. Bár a jobb programozok biztos megmondják majd h mi a szitu.
[ Szerkesztve ]
-
félisten
Hali!
Hát ime az összehasonlítás. Mindegyik fejlesztőkörnyezetben CONSOLE APPLICATION PROJECT van létrehozva
Dev c++ C PROJECT
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
printf("Hello Daneeka!\n");
printf("Press ANY KEY to continue...");
getchar();
return 0;
}Visual Studio C# 2008
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello Daneeka!");
}
}
}Dev C++ C++ PROJECT
#include <iostream>
using namespace std;
int main (int argc, char *argv[])
{
cout << "Hello Daneeka!" << endl;
cout << "Press ANY KEY to continue..." << endl;
cin.get();
return 0;
}Visual Studio C++ 2008
// Fire.cpp : main project file.
#include "stdafx.h"
using namespace System;
int main(array<System::String ^> ^args)
{
Console::WriteLine("Hello Daneeka!");
return 0;
}Szerintem is maradjunk a Dev c++-nál, aztán majd segítünk átalakítani Visual Studios-ra.
Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
Daneeka
senior tag
válasz Fire/SOUL/CD #452 üzenetére
Te jó isten, azt hittem ilyen "Hello World" szintű dolgok nyomokban hasonlítanak egymásra.
Egyébként most az van, hogy csináltam egy dualboot rendszert és egy szűz XP-re telepítettem a VS2008 Pro-t, így most működik. A DevC-ben nem működő VisualStudió progikról meg azt mondta nekem valaki, hogy nem egészen azonos a "parancs készletük" és azért nem működnek.(nem ezt a szót használta de talán fedi amit mondott) -
félisten
Hali!
Igen, azért tettem bele a négy kódot, hogy lásd mekkora a különbség.(azért a VS-ben "writeline" , miért nem írtak akkor egy pascal editort is )
Na mindegy, döntsd el miben akarsz dolgozni, aztán ha tudunk segítünk.
(lehetőleg C legyen, mivel ez C topic)Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
Lortech
addikt
válasz Fire/SOUL/CD #455 üzenetére
Nem azért, de te vs. 2008-ban managed c++ projektet nyitottál, nem natívat.
Egyébként ~ugyanaz a kód lefordítható vele mint amit devcpp-hez írtál.Thank you to god for making me an atheist
-
félisten
Hali!
Biztos igazad van. Sajna nem ismerem(nem használom) ezeket a fejlesztőkörnyezeteket.
Azért bátorkodtam ezen kódokat berakni, mert Daneeka korábban arról "panaszkodott", hogy nem tudja befordítani a project-jét, ezeket meg belehet. Tehát lássa, hogy így kellene kinézni a forrásnak.
Amúgy Borland Delphi 7, Codegear Builder ill Assembler-ben írogatok, amikor ilyen melót kapok.(Rendszerprogramozó szakon végeztem 12 éve)A Dev c++ ill VS2008 csak azért raktam fel, mert mostanában sok pl diplomamunkát hoznak hozzám átnézésre vagy javításra, amit ezekben a környezetekben írnak.
(VS esetén lehet mint újra tanulni, de sebaj szeretem a kihívásokat )Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
Lortech
addikt
válasz Fire/SOUL/CD #457 üzenetére
Én pedig csak bátorkodtam jelezni, hogy hiányos információid miatt nevetgélsz a WriteLine-on és félrevezeted a kérdezőt tisztelt 12 éve végzett rendszerprogramozó kolléga.
Thank you to god for making me an atheist
-
Daneeka
senior tag
válasz !wannabe #454 üzenetére
Eredetileg Vista van a gépemen. Felszabadítottam egy particionáló progival 10 gigát a merevlemezen. (ez egyébként 5 óráig tartott) Betettem egy Win Xp lemezét és installáltam. Na ezek után már nem Vistával bootol hanem Xp-vel. Ezért egy EasyBCD nevű programmal modifikálom a bootsectort, (lehet nem a bootsectort hanem valami mást de a boothoz van köze) így aztán bootolásnál még mielőtt bármelyik oprendszer elindulna, választhatok, hogy az Xp-t vagy a Vistát indítom. Be lehet állítani, hogy mennyi időt várjon mielőtt elindítja a primary oprendszert, én 5 szekundumot állítottam, így nem lassítja a bootolást jelentősen.
-
Daneeka
senior tag
válasz Fire/SOUL/CD #455 üzenetére
C-ben kell dolgoznom mert ez a tantárgy továbbá a gyak.vez, szinte kötelezővé tette a VisualStudio használatát. (azt nem tudom, hogy azért mondja-e mert az MSDNAA szerződésben benne van, hogy nyomni kell a cuccaikat és ezért is kapjuk ingyenesen, hogy rászokjunk azt később megvegyük. )
-
félisten
Hali!
Bevallom a a VS C++ részével nem is foglalkoztam, engem a VS C# project érdekelt, mivel ez C topic. Megtisztelnél vele rendszerprogramozó kolléga(amúgy tényleg az vagy?), ha leírnád, hogyan kell Visual C# 2008-ban Console Application-t létrehozni, amiben a PRINTF használható, nem a WRITELINE.
Fire.
UI: utánanéztem amit írtál, ha Win32 Console App van létrehozva akkor "megy" a műsor, mármint VS c++-ban.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
!wannabe
tag
Értem. Igazából gondoltam, hogy dual boot azt jelentené, hogy két (vagy több) oprndsz.-t használsz cask még nem láttam ezt ilyen kifejezésben.
Amúgy én XP mellé tettem fel anno Linuxot és a Linux csinált egy GRUB menut-t amiben lehetett választani, hogy mit akarok indítani azt hittem, hogy Windows-éknál is így van. ( ezek szerint nem)Az MSDNAA-ról meg annyit, hogy a Pannon Egyetemen is van ez a dolog ( talán az összes egyetem info karán van ) itt viszont erősen az Eclipse-t használjuk.
-
Lortech
addikt
válasz Fire/SOUL/CD #462 üzenetére
Örülök, hogy sikerült.. Te CLR projektet hoztál létre (.NET managed kód, amit írtam), ami .NET BCL-ből dolgozik, ezért volt WriteLine.
Natív win32 projekt teljesen más tészta.
ui: Nem rendszerprogramozó, hanem simán okleves programozó (programtervező informatikus).Thank you to god for making me an atheist
-
félisten
Hali!
Sajna erre nem kaptam választ:
"hogyan kell Visual C# 2008-ban Console Application-t létrehozni, amiben a PRINTF használható, nem a WRITELINE."
igen, az a gáz hogy ez is ebből "él"
"A project for creating a command-line application (.NET Framework 3.5)"
Így hozza létre a Console Application-t.
Erre van valami ötleted?Fire.
UI: Amúgy szakmádban(okleveles programozó) dolgozol, esetleg szabadúszó vagy?
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
amargo
addikt
válasz Fire/SOUL/CD #462 üzenetére
Hopp most esik le, Te nem is ismered a C# .NET-et.
"hogyan kell Visual C# 2008-ban Console Application-t létrehozni, amiben a PRINTF használható, nem a WRITELINE."
Nos pedig Lortech erre a kérdésedre is válaszolt, csak feltételezte, hogy valamennyire tisztában vagy .NET környzettel.
.NET keretrendszert úgy képzeld el mint egy virtuális fordító gépet(java-ból ismerős lehet).
Bocsánat, de ki kell ugranom, ha visszatértem kifejtem.“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
Lortech
addikt
válasz Fire/SOUL/CD #465 üzenetére
Megmondom őszintén, azt hittem, hogy elírtad, majd helyesbítettél az utóiratodban. amargo kifejtette már: értelmetlen a kérés / kérdés.
Thank you to god for making me an atheist
-
félisten
Hali!
Köszönöm a felvilágosítást, most már tiszta, hogy VS C#-ben kizárólag .NET Framework.
(Azt hittem, hogy sima ANSI C nyelvet is lehet használni benne )
Akkor marad, hogy VS C++-ban írunk ANSI C progit, "nekem a 9 is páros..."Fire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
!wannabe
tag
Mit gondoltok a webes C tutorialokrol? Esetleg vannak olyanok amiket külön kiemelnétek mert annyira jó / rossz?
Néhányat átnéztem közülük mostanában. túl sok különbséget nem látok köztük. Egyáltalán ti hogyan indultatok el a C programozás rögös útjain?Néhány link az ilyen tutorialokrol: Leicester,
Strath,
Cprogramming[ Szerkesztve ]
-
félisten
válasz !wannabe #469 üzenetére
Hali!
Én magam(már nem tudom pontosan mikor,de a 80-as évek közepe vége felé) C64-en kezdtem el programozni, assembly-ben. Volt egy kis csapat, amiben én a 1541-II-drive-ért voltam felelős, tehát lemezes műveletek. Akkor írtam az első 4 másodperces formattert, a 10 másodperces validator, a 14-szeres irq loadert(miközben szól a zene, tölt a drive) stb.
Az egyik csapattag megvette első PC-jét(486dx4-100, 4 mega ram, 2x sony cd olvasó, s3 1megás vga, tomato alaplapmeg talán seagate vinyó), tudtam nekem is kell PC. Természetesen Assembly egyből, alig vártuk hogy a gamestar meg chip meg egyéb újságok lemezmellékleteit megnézhessük, mert nagyon sok hasznos uty ill doksi volt rajtuk.
Borland assemblerrel kezdtem, aztán borland pascal, borland c/c++, borland delphi, borland builder.....és jelenleg is borland(ill. mostmár Codegear) cuccokkal dolgozom.Persze, én is assemblyben meg más nyelven is úgy kezdtem, hogy "töröljük le a képernyőt, írjuk ki hogy Helló!". Akkoriban a net nem volt elterjedt, hogy úgy mondjam csak a "kiváltságosok" rendelkeztek vele, elsősorban anyagi ill technikai feltételek miatt. Így lemezmellékletekről meg szakirodalomból tanultunk magunktól. Ha minden könyvet eladnék, ami most a szekrényen van, egy igen jó konfigot tudnék venni..., de nem adom.
Sajnos a középiskolában szinte megutáltatták a informatikát ill matekot(ami abban merült ki, hogy valami videoton gépen egymás alá meg mellé kiirattuk 1-10-ig a számokat ).
Sajnos azt látom, hogy jelengleg is ez a legnagyobb probléma, hiába van tehetsége, szorgalma, kitartása a számítástechnika(ezen belül programozás) iránt, a középiskolákban elveszik az ember kedvét tőle. Rossz tananyag, rosszul leadott jó tananyag, diákok érdektelensége....és még sorolhatnám.Neked anyyit javasolnék és minden kezdőnek, hogy a nyelv alapjait kell első körben tökéletesen elsajátítani, megérteni. Aztán ahhoz a nyelvhez kiválasztani a megfelelő fejlesztőkörnyezetet, amikor ez megvan, kitartani a Cég mellett, mert akár mennyire is szabvány pl a C++, de az jól látszik, hogy mennyire eltérnek a fejlesztőkörnyezetek egymástól. Itt a net, tessék használni, mindent meg lehet rajt találni. Aztán meg tessék kérdezni PH-en!(nekünk anno 30km-en belül nem volt senki, akit megkérdezhettünk volna ) Nem érdekes, ha értelmetlen dolgot kérdezel, akkor megmondják hogy ez értelmetlen, ezért meg ezért meg ezért, és így meg így kellene megoldani.
Én is sok mindent megkérdezek és mindig kapok rá választ, sok mindent tanulok itt, noha elég rég óta üzöm az "ipart". Ebben a szakmában, minden nap jönnek ki újdonságok, fizikai képtelenség, hogy mindenhez értsen az ember.Van jó és van rossz tutorial. Én azokat létesítem előnyben, ahol képpel illusztrált, lépésről-lépésre magyarázó, forráskóddal fűszerezett(amit beillesztesz aztán műxik) stb dolgok találhatóak. Az egyik ilyen kedvenc oldalam ez: [www.functionx.com/]
Fire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
!wannabe
tag
Bátorkodom feltenni triviális kérdésem.
A program 1 oszloppal meg 1 sorral többet rajzol ki mint kéne.#include <stdio.h>
int main(){
int sor, oszlop, SORSZAM, OSZLOPSZAM;
printf("Kerem a sorok szamat:");
scanf("%d", &SORSZAM);
printf("Kerem az oszlopok szamat:");
scanf("%d", &OSZLOPSZAM);
for ( sor = 0; sor <= SORSZAM; sor++ ){
for( oszlop = 0; oszlop <= OSZLOPSZAM; oszlop++ ){
printf( "+-" );
};
printf( "+\n" );
for( oszlop = 0; oszlop <= OSZLOPSZAM; oszlop++ ){
printf( "| " );
};
printf( "|\n" );
};
for( oszlop = 0; oszlop <= OSZLOPSZAM; oszlop++ ){
printf( "+-" );
};
printf( "+%n" );
return 0;
}[ Szerkesztve ]
-
félisten
válasz !wannabe #471 üzenetére
Hali!
Úgy van ahogy a kolléga is mondja, azaz <= helyett <, vagy a a for ciklusban a sor és oszlop változót 1-ről indítsd.
Ezt a sort meg javítsd printf( "+%n" );
Nyíilván ezt akartad írni printf( "+\n" );Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
!wannabe
tag
Az oszlop meg sorcímeket akarom megcsinálni. Ez sakktábla szóval az oszlopokba kellene betűket a sorokba pedig számokat iratni. Ezt gondolom tömbökkel kellene. A tömböt kell egy for ciklusban inicializálni? Vagy hogy tudok hivatkozni arra a tömbre?
-
!wannabe
tag
válasz !wannabe #474 üzenetére
közben érkezett egy megoldás egy havertól megosztom veletek. Ezen a megoldáson jelölve vannak a fekete-fehér mezők.
#include <stdio.h>
int main(){
int sor, oszlop, SORSZAM, OSZLOPSZAM;
printf("Kerem a sorok szamat:");
scanf("%d", &SORSZAM);
printf("Kerem az oszlopok szamat:");
scanf("%d", &OSZLOPSZAM);
printf(" ");
for(sor=0; sor<SORSZAM; sor++){
printf(" %c", sor+'A');
}
printf("\n");
for ( sor = 0; sor < SORSZAM; sor++ ){
printf(" ");
for( oszlop = 0; oszlop < OSZLOPSZAM; oszlop++ ){
printf( "+-" );
};
printf( "+\n" );
printf(" %d", sor+1);
for( oszlop = 0; oszlop < OSZLOPSZAM; oszlop++ ){
if((oszlop%2==0 && sor%2==1) || (sor%2==0 && oszlop%2==1)){
printf("|x");
}else{
printf( "| " );
}
}
printf( "| \n" );
};
printf(" ");
for( oszlop = 0; oszlop < OSZLOPSZAM; oszlop++ ){
printf( "+-" );
};
printf("+\n");
return 0;
}[ Szerkesztve ]
-
félisten
válasz !wannabe #474 üzenetére
Nos, egy sakktábla 8x8-as, gondolom ez nem ujdonság, tehát kell egy plusz sor az oszlop azonosítóknak (A-H) ill egy plusz oszlop a sor azonosítóknak(1-8).
Viszont a oszlopnevek meg sorszámok (ha már nagyon szakszerűen akarsz eljárni), nem hasraütésre megy. Ha leraksz magad elé egy táblát, akkor a feléd eső oldalon a bal kezednél van az A1, ami fekete.(esetleg ha ki is akarod szinezni).
Ha akarod tömbözhetsz is, de felesleges(ha csak nincs a tarsojodba valami más terv is a táblával kapcsolatban), simán minden sornál 8-től lefelé ill minden oszlopnál A-H ig kiírod pluszba.Fire.
Közbe beugrott a kód, megnézem
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz !wannabe #475 üzenetére
Alapvetően a kód jó, csak módosítani kell hogy tényleg "szabványos" sakktábla legyen.
Ilyen legyen: [link]Fire.
UI: remélem nem cseszegetésnek veszed, de legyünk precízek
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
!wannabe
tag
válasz Fire/SOUL/CD #477 üzenetére
Mindenféle jó tanácsot szívesen fogadok.
-
félisten
-
!wannabe
tag
válasz Fire/SOUL/CD #479 üzenetére
CodeBlocks (CB ) -ban írtam. Meg DEV-C++-t is használok néha, de most bejön a CB, szerintem ezt használom.
[ Szerkesztve ]
-
félisten
válasz !wannabe #480 üzenetére
Rendben, csak azért kérdeztem, mert én teljesen megszokásból, használok cikluson belül deklarációt. PL: for(int i=1;i<=10;i++); Na ezt alapban a Dev c++ nem szereti, mert nem a régi c89 módot használja, hanem a c99-et. Ilenykor ezt a hibát dobja:
for loop initial declaration used outside C99 modeA "hiba" megszüntethető, ha a compiler parancssorához hozzáadod a -std=c99 utasítást vagy kapcsolót, ahogy tetszik.
A CodeBlocks nem tudom, hogy foglalkozik-e vele, próbáld ki...
Fire.
UI: Amúgy VS c++-ban írok C-t(most ismerkedem a környezettel), de a Dev c++ is fent van.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
rothkrisz
csendes tag
Sziasztok!
A segítségeteket szeretném kérni. Most kezdtem C nyelven programozgatni és segítségre lenne szükségem.
Egy olyan programot kell írnom ami 0tól 9 ig számjegyeket kér be és kiirja hogy melyik számjegy hányszor fordul elő.Ez a része megy.
A másik rész ami a bekért számjegyek előfordulási számát jeleníti meg a karakteres képernyőn "grafikusan". Minden számjegyhez egy álló oszlop tartozik, amiben annyi darab csillag karakter szerepl, ahányszor az adott számjegy előfordult.
Hát ebben szeretnék segítséget kérni
-
félisten
válasz rothkrisz #482 üzenetére
Hali!
A progi CodeBlocksban íródott. Bár írtad, hogy most kezdtél C-ben írni, de ennak ellenére úgy írtam, hogy legyen bent valami "újdonság" is, ami hasznos. Nézd át, ha valami nem tiszta írj.
Fire.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char str[255];
unsigned char ndx[10];
int i,j,maxndx;
for(i=0;i<sizeof(ndx);ndx[i]=0, i++);
printf("Enter numbers (0-9): ");
gets(str);
for (i=0;i<strlen(str);i++) {
if (str[i]<'0' || str[i]>'9') {
printf("Illegal char found, skipped.. -> %c\n",str[i]);
continue;
};
ndx[str[i] & 0x0f]++;
}
//Horizontal
for(i=0;i<sizeof(ndx);i++) {
printf("\n%c ",i+'0');
for (j=ndx[i];j>0;j--) { printf("*"); }
}
printf("\n\n\n");
//Vertical
for(i=0, maxndx=0;i<sizeof(ndx);i++) {
maxndx=ndx[i]>=maxndx ? ndx[i] : maxndx;
}
for(;maxndx>0;maxndx--) {
for(i=0;i<sizeof(ndx);i++) {
ndx[i]<maxndx ? printf(" ") : printf("*");
}
printf("\n");
}
for(i=0;i<sizeof(ndx);printf("%c",'0'+i),i++);
printf("\n");
return 0;
}Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
-
félisten
válasz !wannabe #484 üzenetére
Hali!
Újra kellet pakolnom a vista-t, és még nem raktam fel a VS-t. (de lehet hogy nem is fogom, csak ha kell). Jó ez a CodeBlocks (Kösz mégegyszer, hogy javasoltad!)
Ez a példa, függölegesen, meg vizszintesen is kiírja a számokat ill kirajzolja a csillagokat......
(Horizontal/Vertical rész)
Valamit félreértettem?Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
!wannabe
tag
válasz Fire/SOUL/CD #485 üzenetére
Hihetetlen vagyok!!!
22:00kor keltem fel...annak már majdnem egy órája és még mindig homályosan látok. Nem vettem észre, hogy vízszintesen is kirajzolja. A kódban meg azon gondolkodtam, hogy miért van ott kommentbe a horizontal/vertical... szóval sry. korán van még.CodeBlocks a legkirályabb
-
félisten
válasz !wannabe #486 üzenetére
Hali!
Semmi gáz! Ismerős az érzés, Én is ha lefárasztom az agyam, 5-10 másodpercnek ell kell telnie, mire felismerem édesanyámat . Ha meg hirtelen kell felkelnem, akkor órákig "beszámíthatattlan" vagyok...
Fire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
mmarta
senior tag
Hisztogram még mindig:
Ebből kellene függőlegest csinálni:
#include <stdio.h>int i, j, szam, tomb[10];
int main(){
for(i=0; i<10; i++){
tomb[i]=0;
};do{
printf("kerem a kovetkezot: ");
scanf("%d", &szam);
if((szam>=0) && (szam <10)){
tomb[szam]++;
}}while(szam>=0);
for(i=0; i<10; i++){
printf("A(z) %d szamjegy %d alkalommal szerepelt\n", i, tomb[i]);
};for(i=0; i<10; i++){
printf("%d: ", i);
for(; 0<tomb[i];tomb[i]--){
printf("*");
}
printf("\n");
};return 0;
}így nézne ki:
[link] -
!wannabe
tag
válasz Fire/SOUL/CD #483 üzenetére
Fire:
ndx[str[i] & 0x0f]++;
Ez a sor pontosan mit csinál a hisztogramodban?
[ Szerkesztve ]
-
félisten
válasz !wannabe #489 üzenetére
Hali!
Az ndx tömben van tárolva ugyebár, hogy melyik számjegy hányszor fordul elő.
Mivel én STRING-ként olvasom be, ezért a '0'-'9' számjegyek a karakterkódjukkal vannak jelen a STRING-be, vagyis hexa 0x30-0x39. Ebből kell 0-9 indexet csinálni.
pla '9' ascii kódja 0x39 binárisan 00111001, a 0x0f binárisan 00001111
00111001 AND 00001111 = 0000 1001 azaz 9.
( az AND ott lesz 1, ahol mindkét számban az azonos bitpozíción 1 van)
tehát ebben az esetben az ndx[str[i] & 0x0f]++ az ndx[9]++ lesz, azaz a tömb 9. indexén lévő elem értékét megnöveli egyel.Meg lehetett volna így is oldani ndx[str[i]-0x30]++ vagy ndx[str[i]-'0']++
Csak azért választottam az AND-es módszert, mert a logikai műveletek fontos része minden programozási nyelvnek(AND, OR, XOR, NOT stb)Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
D@ni88
addikt
melyik parancsal tudok kicsiből nagybetűt csinálni?
-
D@ni88
addikt
int beolvas(char fnev[])
{
ifstream be(fnev);
//ellenőrött fájlbeolvasás
if(!be)
{
cerr<<fnev<< " nevu allomany nem letezik!\n";
exit(1);
}
const int x=80;
int db=0;
char sz[x];
//szövegbeolvasas
while(!be.eof())
{
be.getline(sz, x);
int i=0;
cout <<db+1<<".sor " << sz; //IDE KELL VALAMI
db++;
}
be.close();
return db;
}próbáltam a touppert, meg a strupr-t is de semmi...
külön ciklussal megcsinálnám, de azt nem tom hogy kell megcsinálni, hogy csak sor végéig fusson... pedig akkor karakterenként ki lehetne íratni[ Szerkesztve ]
-
-
D@ni88
addikt
akkor adnátok írnátok egy olyan for ciklust, ami csak a sor végéig megy el? köszi
-
Lortech
addikt
Fogalmam sincs, mit szeretnél konkrétan, de ha az a gond hogy nem olvassa végig a teljes sort, akkor ajánlom olvasásra a getline specifikációját. Ha nem elegendő a buffered a következő sorvégéig akkor hiba keletkezik és nem megy tovább a beolvasás. Ajánlom még a ifstream fail, rdstate és clear függvényeit.
Thank you to god for making me an atheist
-
félisten
Hali!
Nincs baj azzal a strupr() függvénnyel, csak a bemenete (char*). Így használd:
#include <iostream>
using namespace std;
int main()
{
char str[]="Test text";
cout << strlwr((char*)str) << endl;
cout << strupr((char*)str) << endl;
return 0;
}Ebből gondolom nyílvánvaló, hogy mit kell módosítanod a kódodban.
Azonban ez valóban C programozás topic, van C++ topic is, oda tedd a C++ kérdéseket.
Ígérem ott is ránézek, és ha tudok segítek.Fire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
!wannabe
tag
Itt van egy másik megoldás a hisztogramra. Azonban ez vízszintesen rajzol:
#include <stdio.h>
int tomb[10], szam, f;
int main(){
for(szam=0; szam<=9; szam++)
tomb[szam]=0;
do{
scanf("%d", &szam);
if(szam>=0 && szam<10) tomb[szam]++;
}while(szam>=0 && szam<10);
for(szam=0; szam<10; szam++){
printf("%d: ", szam);
for(f=0; f<tomb[szam]; f++)
printf("*");
printf("\n");
}
return 0;
}Ez kicsit fapadosabb megoldás. Nincs benne annyi disznóság mint Fire kollega megoldásában
[ Szerkesztve ]
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- HP ProBook 430 G5, Core i5-8250U, 13.3" HD, 8-16GB DDR4, 128-256GB SSD, 4 órás akku (Bios jelszavas)
- Új! Gamer pc, i5, 32gb, rtx 3060 12gb, 1,5TB nvme M.2, 650W 80+
- Új iPhone 15 Pro 128Gb Natural Titanium
- iPhone 13 Pro 128gb Sierra blue
- PowerColor Radeon RX 6700XT Red Devil 12GB OC DDR6 (OC) Rgb Videokártya