/ Forside/ Teknologi / Udvikling / C/C++ / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
Bech_bb 500
kyllekylle 500
jdjespers.. 500
gibson 300
scootergr.. 300
molokyle 287
10  strarup 270
nybegynder
Fra : famgaard
Vist : 1137 gange
100 point
Dato : 22-12-10 11:16

hej allesammen.

jeg er helt ny inden for programmering og jeg prøver at lave nogle små projekter..

lige nu er jeg gået i stå i et projekt og har ikke kunnet komme videre nogle dage..

det programmet kan/skal er at man skriver et navn på feks op til 10 bogstaver.

også skal den vise alle de kombinationer der er af de bogstaver fra navnet.
feks navnet "ray" skal vises "rya" - "yar" osv...

lige nu ser min kode sådan her ud

//****************************************
#include <iostream>
#include <fstream>
#include <string>
#include <ctime>
#include <cstdlib> // er ikke selv sikker på om mine "#include" er rigtige.. som sagt jeg er ny.

using namespace std ;

int main ()
{
string x;
int y;

cout << "Type name: " ;
cin >> x;
cout << endl;
cout << x << endl;






cout<< "==========" << endl;
system ("pause");
return 0;
}

//*************************************************************************

havde tænkt mig at bruge "rand" meen ja er lidt lost..

ville være skønt hvis i gad skrive en forklaring på hvordan og hvorfor istedet for bare at gi mig "den rigtige kode".. er meget intresseret i at lære..

på forhånd tak..

 
 
Kommentar
Fra : bentjuul


Dato : 22-12-10 16:14

Her er en guide for begyndere http://www.eksperten.dk/guide/762

Også en begynder guide http://www.udvikleren.dk/Article.aspx?tech=1&id=120

Sikkert også noget du kan bruge her http://www.udvikleren.dk/C/Index.aspx

God fornøjelse og


Kommentar
Fra : famgaard


Dato : 22-12-10 17:14

hey mange tak for svaret.. jeg har brugt http://xoax.net/ til det samme.. kan ikke komme igennem alt det tekst.. noget jeg er født med..

men syntes ikke jeg har fundet svaret på mit spørgsmål..


Kommentar
Fra : bentjuul


Dato : 22-12-10 17:29

Du kan måske få svar i deres forum hos udvikleren

Kommentar
Fra : BertelBrander


Dato : 22-12-10 19:52

Jeg tror at du skal starte med at finde ud af hvordan du ville løse opgaven, hvis du skulle gøre det systematisk på papir, hvis nu navnet er "01" har du følgende mulige kombinationer:
01
10

Hvis navnet er "012":
012
021
102
120
210
201
Det er der jo en vis systematik i, prøv så at skrive kombinationerne for "0123" og "01234", og find et system i det.

Der er naturligvis mange måder at gøre det på, hvis du ved at navnet højest er på 10 bogstaver kan du lave en stor tabel med alle kombinationer, og så "klippe" en del ud, hvis der er mindre end 10 bogstaver i navnet.

Normalt bruger man ikke rand til at løse opgaver som denne, funktionen laver et tilfældigt tal. Men hvis du vil bruge den, kan det godt gøres. Så laver du en liste med alle de kombinationer du har fundet, derpå bytter du to bogstaver og checker om den nye kombination er i listen, hvis ikke tilføjer du den. Og så fortsætter du til du har alle kombinationer.

Hvad nu hvis navnet er anna, har det lige så mange kombinationer som keld?

Prøv at overveje løsninger, så vender jeg tilbage senere.

Kommentar
Fra : famgaard


Dato : 22-12-10 20:40

nemlig!

Anna må gerne have ligeså mange kompinationer som Keld.

ideen til programmet er fra en spejder leder jeg kender.. de har jo spejder navne..

så vil hun gerne ha et program der tager et navn og ændre det med de samme bogstaver også smider "ix" bagefter.. som hvis hele spejder gruppen var Asterix og obelix tema.. så bare en laang list med en masse vrøvl + xi.. lavet ud fra spejders eget navn.. faktisk en fed ide og noget som jeg mener er en passende udfordring for en nybegynder som mig..

at smide xi bagefter noget mener jeg nu godt jeg selv kan klare i programmeringen..

som du kan se i koden gik det hurtigt galt..

string x ;
cout << "Type name: " ;
cin >> x;
cout << endl;
cout << x << endl;

hvis jeg selv har forstået det rigtigt har jeg lige lavet et navn om til et x..
også opstod problemet.. hvordan skal jeg manipulere med indholdet af et x??

mine tanker omkring programmet har været..

gå hele alfabetet igennem og gi hver bogstav et number for så at kunnne bruge rand..

Helt sikkert ikke den mest optimale metode men det er jo så min nybegynder erfaring der spiller ind..

måske du kunne anbefale en metode til Spejder programmet? som jeg så kunne kikke på?

eller jeg kunne bygge på min rand ide men ja du kan se hvor langt jeg er nået med den.

jeg føler at der er en lille bitte dum ting jeg har fuldstændigt overset når jeg forsøger at lave det her projekt..




Kommentar
Fra : famgaard


Dato : 22-12-10 20:45

jeg kunne også sende sig mit andet projekt.. det er jeg nået en del længere med og med det ville du kunne se hvad jeg sådan ca kan indtil videre.. måske det var en hjælp?

Accepteret svar
Fra : BertelBrander

Modtaget 100 point
Dato : 22-12-10 20:59

Lidt mere info:
Hvis du gemmer navnet i en std::string:
string Navn = "Ole";
Kan du få fat i de enkelte bogstaver som Navn[0], Navn[1], Navn[2]

Hvis navnet stadig er 3 bogstaver langt kan du udskrive de 6 kombinationer med
for(int n = 0; n < 6; n++)
cout << Navn[N0] << Navn[N1] << Navn[N2] << endl;

Nu mangler du så bare at udregne N0, N1 og N2 for hver gennemløb af løkken.
Hvis du ser på den sekvens jeg vist før:
012
021
102
120
201
210

Kan du se at det første nummer (N0) tæller én op hver anden gang, starter med 0
Tilsvarende mønstre burde man kunne finde for de andre koloner.

Kommentar
Fra : famgaard


Dato : 22-12-10 21:15

mange tak jeg tager det lige stille og roligt og starter med at lege med
" string Navn = "Ole";
Kan du få fat i de enkelte bogstaver som Navn[0], Navn[1], Navn[2]
"

er det ok at jeg skriver til din kandu mail hvis jeg har flere spørgsmål`?
så kan jeg nemlig lukke den her og gi dig de 100 point?

Kommentar
Fra : BertelBrander


Dato : 22-12-10 21:18

Ja, det er ok at skrive direkte.

Godkendelse af svar
Fra : famgaard


Dato : 22-12-10 21:27

Tak for svaret BertelBrander.

jeg skal lige bruge noget tid på at kikke det igennem og forstå det.. mange mange tak..

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407831
Brugere : 218875

Månedens bedste
Årets bedste
Sidste års bedste