Tänker jag rätt? Har jag gjort rätt? C++, rätt mig.
Re: Tänker jag rätt? Har jag gjort rätt? C++, rätt mig.
Om du inkluderar <conio.h> istället kanske det går bättre.
Vad cout gör är att den skriver text och dylikt till standard output(stdout) som default är ut till terminalen.
Vad cout gör är att den skriver text och dylikt till standard output(stdout) som default är ut till terminalen.
-
- Inlägg: 401
- Blev medlem: 08 dec 2007, 23:46
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
- Ort: Gävle
Re: Tänker jag rätt? Har jag gjort rätt? C++, rätt mig.
Jarulf skrev:Om du inkluderar <conio.h> istället kanske det går bättre.
Vad cout gör är att den skriver text och dylikt till standard output(stdout) som default är ut till terminalen.
Får samma fel med : #include <conio.h> som med conio.
Just nu så va det, den skriver ut till skärmen.

- Osprey
- Inlägg: 6310
- Blev medlem: 06 apr 2008, 00:09
- OS: Ubuntu
- Ort: Göteborg/Mölndal/Falkenberg
- Kontakt:
Re: Tänker jag rätt? Har jag gjort rätt? C++, rätt mig.
Jag får ut det här när jag söker på det:

Så det verkar helt enkelt som att du kan skippa den raden...Wikipedia skrev: conio.h is a header file used in old MS-DOS compilers to create text user interfaces, however, it is not part of the C programming language, the C standard library, ISO C or required by POSIX.

Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
-
- Inlägg: 6191
- Blev medlem: 14 jan 2007, 19:31
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Stockholm
Re: Tänker jag rätt? Har jag gjort rätt? C++, rätt mig.
Jo, conio.h är en gammal DOS-fil, det är synd att de inte håller sig till standarden i kursen. Det finns risk att du stöter på fler problem av det slaget, men fråga här så kan säkert någon hjälpa dig.
Variabeln cout är en så kallad ström (stream), "console output" kan jag tänka mig att det står för. "cin" och "cerr" finns också. Senare i kursen kommer du att lära dig hur man skriver och läser filer på liknande sätt.
Variabeln cout är en så kallad ström (stream), "console output" kan jag tänka mig att det står för. "cin" och "cerr" finns också. Senare i kursen kommer du att lära dig hur man skriver och läser filer på liknande sätt.
Re: Tänker jag rätt? Har jag gjort rätt? C++, rätt mig.
Fel. Cout är inte en ström, Cout skriver till en ström.Lars skrev:Variabeln cout är en så kallad ström (stream)
-
- Inlägg: 401
- Blev medlem: 08 dec 2007, 23:46
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
- Ort: Gävle
Re: Tänker jag rätt? Har jag gjort rätt? C++, rätt mig.
Den sista Pseudokod uppgiften.
Sedan är det slut på dom och jag avancerar mig till att hitta fel i program tydligen enligt kursplanen.
UPPGIFT:
Ta fram ett kaffefilter lägg det i kaffebryggaren. Fyll kaffebryggaren med vatten. Ta bara sex skopor kaffepulver om kaffet inte ska vara så starkt. För starkt kaffe, ta tolv skopor. Brygg kaffet. Brygg sedan fler kannor tills alla gäster fått kaffe.
LÄSNINGAR!
Så har jag fått in snitsen?
Sedan är det slut på dom och jag avancerar mig till att hitta fel i program tydligen enligt kursplanen.
UPPGIFT:
Ta fram ett kaffefilter lägg det i kaffebryggaren. Fyll kaffebryggaren med vatten. Ta bara sex skopor kaffepulver om kaffet inte ska vara så starkt. För starkt kaffe, ta tolv skopor. Brygg kaffet. Brygg sedan fler kannor tills alla gäster fått kaffe.
LÄSNINGAR!
Kod: Markera allt
START
REPETERA
ta fram kaffefilter
lägg det i kaffebryggaren
fyll kaffebryggaren med vatten
OM svagt kaffe
ta 6 skopor
ANNARS
ta 12 skopor kaffe
Brygg kaffet
har alla gäster fått kaffe?
SÅ LÄNGE nej
STOPP
Så har jag fått in snitsen?
-
- Inlägg: 401
- Blev medlem: 08 dec 2007, 23:46
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
- Ort: Gävle
Re: Tänker jag rätt? Har jag gjort rätt? C++, rätt mig.
Har försökt mig på att bygga ett program av pseukoden ovan men det går inte så bra då mina kunskaper tydligen är begränsade.
Någon som har lust att fylla i där jag har missat och förklara lite om dom olika saker ni fyller i?
Iaf, så här ser programmet ut just nu:
Någon som har lust att fylla i där jag har missat och förklara lite om dom olika saker ni fyller i?
Iaf, så här ser programmet ut just nu:
Kod: Markera allt
#include <iostream>
int main(int argc, char** argv)
{
using namespace std;
int skopor;
skopor = 6;
cout << "Ta fram kaffefiltret.";
getchar();
cout << "Lägg filtret i kaffebryggaren.";
getchar();
cout << "Fyll på kaffebryggaren med vatten.";
getchar();
cout << "starkt eller svagt kaffe?";
// Här vill jag sätta in så att man kan svara svagt eller starkt kaffe.
cout << "Ha nu i " << skopor << "skopor kaffe."; // svaret om dom vill ha svakt kaffe.
skopor = + 6;
cout << "Ha nu i " << skopor << "skopor kaffe."; // svaret om dom vill ha starkt kaffe.
getchar ();
cout << "Brygg kaffet.";
getchar();
cout << "Har alla gästerna fått kaffe?";
// Här vill jag sätta så man kan svara ja eller nej.
// Om man svarar nej så ska det gå en "loop" upp till där programmet startade.
// Om man svarar ja så ska programmet visa det jag har skrivit nedan.
cout << "Grattis, nu har du bryggt kaffe och alla gästerna är nöjda.";
return 0;
}
- micke_nordin
- Inlägg: 1539
- Blev medlem: 21 aug 2008, 17:03
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Kontakt:
Re: Tänker jag rätt? Har jag gjort rätt? C++, rätt mig.
Kanske skulle man kunna göra ungefär så här:
Programmet är dock rätt så dumt och kollar inte om den får gilltigt input. Dessutom dubbleras en del kod vilket man skulle kunna flytta till en egen funktion (inläsningen av input). Men du fattar kanske hur loopen funkar, ditt sätt att skriva hade förutsatt en GOTO-sats vilket anses vara ett stort no-no.
/Micke
Kod: Markera allt
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
int skopor = 6; //Antal skopor för svagt kaffe
char temp; //En temporär variabel som tar input från användaren
bool alla_fatt = false; //Så länge alla inte fått kaffe fortsätter programmet
while(alla_fatt == false) //Loopen börjar här
{
cout << "För att brygga kaffe:\n"; //Skriver ut instruktioner
cout << "1. Ta fram kaffefiltret.\n";
cout << "2. Lägg filtret i kaffebryggaren.\n";
cout << "3. Fyll på kaffebryggaren med vatten.\n";
cout << "Välj styrka:\n1. starkt\n2. svagt\n";
cout << "→_\b"; //Skriver ut prompten
cin.get(temp); //Läser in svar från användaren, kollar inte om det är ett gilltigt svar vilket är en svaghet
cin.get(); //Slänger bort vagnretur
if(temp == '1') //Om det önskas starkt kaffe
{
skopor = + 6; //Dubbla antalet skopor
}
cout << "\nHa nu i " << skopor << " skopor kaffe.\n"; //Skriv ut antal skopor
cout << "Brygg kaffet.\n"; //Skriver ut fler instruktioner
cout << "Har alla gäster fått kaffe?\n"; //Kollar om alla fått kaffe
cout << "1. ja\n2. nej\n";
cout << "→_\b"; //Prompten igen
cin.get(temp); //Läser in ett tecken
cin.get(); //Slänger bort vagnretur
if(temp == '1') //Om alla fått
{
alla_fatt = true; //Sätt alla_fatt till sant, vilket avsutar loopen, annars börjar den om igen
}
}
cout << "Grattis, nu har du bryggt kaffe och alla gästerna är nöjda."; //Berättar att gästerna är lätta att behaga
return 0; //Avslutar programmet
}
/Micke

-
- Inlägg: 401
- Blev medlem: 08 dec 2007, 23:46
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
- Ort: Gävle
Re: Tänker jag rätt? Har jag gjort rätt? C++, rätt mig.
micke_nordin skrev:Kanske skulle man kunna göra ungefär så här:Programmet är dock rätt så dumt och kollar inte om den får gilltigt input. Dessutom dubbleras en del kod vilket man skulle kunna flytta till en egen funktion (inläsningen av input). Men du fattar kanske hur loopen funkar, ditt sätt att skriva hade förutsatt en GOTO-sats vilket anses vara ett stort no-no.Kod: Markera allt
#include <iostream> using namespace std; int main(int argc, char** argv) { int skopor = 6; //Antal skopor för svagt kaffe char temp; //En temporär variabel som tar input från användaren bool alla_fatt = false; //Så länge alla inte fått kaffe fortsätter programmet while(alla_fatt == false) //Loopen börjar här { cout << "För att brygga kaffe:\n"; //Skriver ut instruktioner cout << "1. Ta fram kaffefiltret.\n"; cout << "2. Lägg filtret i kaffebryggaren.\n"; cout << "3. Fyll på kaffebryggaren med vatten.\n"; cout << "Välj styrka:\n1. starkt\n2. svagt\n"; cout << "→_\b"; //Skriver ut prompten cin.get(temp); //Läser in svar från användaren, kollar inte om det är ett gilltigt svar vilket är en svaghet cin.get(); //Slänger bort vagnretur if(temp == '1') //Om det önskas starkt kaffe { skopor = + 6; //Dubbla antalet skopor } cout << "\nHa nu i " << skopor << " skopor kaffe.\n"; //Skriv ut antal skopor cout << "Brygg kaffet.\n"; //Skriver ut fler instruktioner cout << "Har alla gäster fått kaffe?\n"; //Kollar om alla fått kaffe cout << "1. ja\n2. nej\n"; cout << "→_\b"; //Prompten igen cin.get(temp); //Läser in ett tecken cin.get(); //Slänger bort vagnretur if(temp == '1') //Om alla fått { alla_fatt = true; //Sätt alla_fatt till sant, vilket avsutar loopen, annars börjar den om igen } } cout << "Grattis, nu har du bryggt kaffe och alla gästerna är nöjda."; //Berättar att gästerna är lätta att behaga return 0; //Avslutar programmet }
/Micke
Aha okej, har som sagt just börjat lärt mig "cin" och "cout" hehe.
Men ska ta och försöka bygga om den där koden osv lite så jag kan se och lära mig istället för att bara läsa i boken.
Ska ge mig in i den där koden återkommer med mitt resultat

Edit:
Den ger inte korrekt antal skopor, det står 6 skopor hela tiden.
Får inte riktigt till detta.
Någon som ser felet?
-
- Inlägg: 401
- Blev medlem: 08 dec 2007, 23:46
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
- Ort: Gävle
Re: Tänker jag rätt? Har jag gjort rätt? C++, rätt mig.
Gjorde om koden lite så fungerade den sedan.
Jag tog bort skopor kommandot.
Och satte dit else efter if satsen.
Det blev så här:
Hoppas det är korrekt gjort.
Någon som vet hur man får sina filer till .exe i geany?
Jag ska skicka ett relativt enkelt program till en windows användare därför jag undrar.
Jag tog bort skopor kommandot.
Och satte dit else efter if satsen.
Det blev så här:
Kod: Markera allt
/*
* untitled.cpp
*
* Copyright 2008 Robin Sandberg <robin@PHILIPS>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/
/*--- PROGRAM 5 ----*/
// program5.cpp
// Att deklarera och tilldela i EN C++ sats. Att slå ihop (to concatenate)
// flera 'blandade' (dvs "text" OCH int-variabler) cout-satser till EN.
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
char temp; //En temporär variabel som tar input från användaren
bool alla_fatt = false; //Så länge alla inte fått kaffe fortsätter programmet
while(alla_fatt == false) //Loopen börjar här
{
cout << "För att brygga kaffe:\n"; //Skriver ut instruktioner
cout << "1. Ta fram kaffefiltret.\n";
cout << "2. Lägg filtret i kaffebryggaren.\n";
cout << "3. Fyll på kaffebryggaren med vatten.\n";
cout << "Välj styrka:\n1. starkt\n2. svagt\n";
cout << "→_\b"; //Skriver ut prompten
cin.get(temp); //Läser in svar från användaren, kollar inte om det är ett gilltigt svar vilket är en svaghet
cin.get(); //Slänger bort vagnretur
if(temp == '1') //Om det önskas starkt kaffe
{
cout << "Ha nu i 12 skopor kaffe.\n";
}
else
cout << "\nHa nu i 6 skopor kaffe.\n"; //Skriv ut antal skopor
cout << "Brygg kaffet.\n"; //Skriver ut fler instruktioner
cout << "Har alla gäster fått kaffe?\n"; //Kollar om alla fått kaffe
cout << "1. ja\n2. nej\n";
cout << "→_\b"; //Prompten igen
cin.get(temp); //Läser in ett tecken
cin.get(); //Slänger bort vagnretur
if(temp == '1') //Om alla fått
{
alla_fatt = true; //Sätt alla_fatt till sant, vilket avsutar loopen, annars börjar den om igen
}
}
cout << "Grattis, nu har du bryggt kaffe och alla gästerna är nöjda."; //Berättar att gästerna är lätta att behaga
return 0; //Avslutar programmet
}
Hoppas det är korrekt gjort.
Någon som vet hur man får sina filer till .exe i geany?
Jag ska skicka ett relativt enkelt program till en windows användare därför jag undrar.
-
- Inlägg: 401
- Blev medlem: 08 dec 2007, 23:46
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
- Ort: Gävle
Re: Tänker jag rätt? Har jag gjort rätt? C++, rätt mig.
Jag skulle göra ett program som räknade ut 2 värden som skrevs in i programmet.
Jag gjorde det programmet som ni kan se nedan, jag skulle också förklara vad det olika linjerna betyder, har jag förstått dom rätt?
Betyder om det jag har skrivit?
Kan tillägga att jag är relativt stolt
gjorde detta program utan att kolla på någon annan kod eller ta hjälp 
Jag gjorde det programmet som ni kan se nedan, jag skulle också förklara vad det olika linjerna betyder, har jag förstått dom rätt?
Betyder om det jag har skrivit?
Kan tillägga att jag är relativt stolt


Kod: Markera allt
#include <iostream> // Hämtar information från iostream bibloteket som är en headfil.
int main(int argc, char** argv) // Skickar information till processorn.
{
using namespace std; // Läser in och använder namespace detta föränklar skrivandet av vissa kommandon.
int tal1, tal2, summa; // Deklarerar en heltalsvariabel.
cout << "-----------------------------\n"; // skriver ut information till skärmen.
cout << "Uträkningsprogrammet\n";
cout << "Skapat av Robin Sandberg.\n";
cout << "-----------------------------\n";
cout << endl; // Gör ett radbyte.
cout << "Mata in ett tal (tryck på Enter): ";
cin >> tal1; // Läser in det första talet som skrivs in.
cout << endl;
cout << "Mata in ett tal till: ";
cin >> tal2; // Läser in det andra talet som skrivs in.
cout << endl;
cout << endl;
cout << tal1; // Visar det inskrivna värdet av tal1.
cout << " + ";
cout << tal2; //Visar det inskrivna värdet av tal2.
cout << " = ";
summa = tal1 + tal2; // Räknar ut tal1 & tal2 med +.
cout << summa; // Skriver ut den totala summan av tal1 + tal2 till skärmen.
cout << endl;
cout << tal1;
cout << " * ";
cout << tal2;
cout << " = ";
summa = tal1 * tal2; // Räknar ut tal1 & tal2 med *.
cout << summa; // Skriver ut den totala summan av tal1 * tal2 till skärmen.
return 0; // Medelar till int main() att programmet har slutförts, detta leder till att operativsystemet
// kan stänga ner programmet.
}
- micke_nordin
- Inlägg: 1539
- Blev medlem: 21 aug 2008, 17:03
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Kontakt:
Re: Tänker jag rätt? Har jag gjort rätt? C++, rätt mig.
Tänk också på att du kan slå ihop flera utskrifter på samma rad:
eller ännu hellre:
istället för:
/Micke
Kod: Markera allt
cout << endl << endl << tal1 << " + " << tal2 << " = ";
Kod: Markera allt
cout << "\n\n" << tal1 << " + " << tal2 << " = ";
Kod: Markera allt
cout << endl;
cout << endl;
cout << tal1;
cout << " + ";
cout << tal2;
cout << " = ";

-
- Inlägg: 401
- Blev medlem: 08 dec 2007, 23:46
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
- Ort: Gävle
Re: Tänker jag rätt? Har jag gjort rätt? C++, rätt mig.
micke_nordin skrev:Tänk också på att du kan slå ihop flera utskrifter på samma rad:eller ännu hellre:Kod: Markera allt
cout << endl << endl << tal1 << " + " << tal2 << " = ";
istället för:Kod: Markera allt
cout << "\n\n" << tal1 << " + " << tal2 << " = ";
/MickeKod: Markera allt
cout << endl; cout << endl; cout << tal1; cout << " + "; cout << tal2; cout << " = ";
Okej, det ska jag tänka på i framtiden, jag testade att göra det nu men kom inte på hur man skrev det korrekt, och jag ville göra programmet fungerande utan hjälp så jag kollade inte upp det.
ÄR mina förklaringar i programmet korrekta då?
Tack så mycket Mickel för alla din hjälp, tack till er andra också, kommer inte ihåg era namn.
Utan er så skulle jag stå som ett frågetecken.
-
- Inlägg: 6191
- Blev medlem: 14 jan 2007, 19:31
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Stockholm
Re: Tänker jag rätt? Har jag gjort rätt? C++, rätt mig.
Du får pluspoäng för att använda GPL
Och en liten guldstjärna i kanten.

- micke_nordin
- Inlägg: 1539
- Blev medlem: 21 aug 2008, 17:03
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Kontakt:
Re: Tänker jag rätt? Har jag gjort rätt? C++, rätt mig.
För att göra det korrekt gör du typ så här;Lulle skrev:
Okej, det ska jag tänka på i framtiden, jag testade att göra det nu men kom inte på hur man skrev det korrekt, och jag ville göra programmet fungerande utan hjälp så jag kollade inte upp det.
Kod: Markera allt
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
int tal1 = 1;
int tal2 = 2;
cout << endl << endl << tal1 << " + " << tal2 << " = " << tal1 + tal2;
return 0;
}
Kod: Markera allt
int main(int argc, char** argv) // Tar emot information från operativsystemet
/Micke

-
- Inlägg: 401
- Blev medlem: 08 dec 2007, 23:46
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
- Ort: Gävle
Re: Tänker jag rätt? Har jag gjort rätt? C++, rätt mig.
Lars skrev:Du får pluspoäng för att använda GPLOch en liten guldstjärna i kanten.
Dum fråga, vad är GPL?
-
- Inlägg: 6191
- Blev medlem: 14 jan 2007, 19:31
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Stockholm
Re: Tänker jag rätt? Har jag gjort rätt? C++, rätt mig.
GNU General Public License som du klistrade in i filenLulle skrev:Dum fråga, vad är GPL?Lars skrev:Du får pluspoäng för att använda GPLOch en liten guldstjärna i kanten.

-
- Inlägg: 401
- Blev medlem: 08 dec 2007, 23:46
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
- Ort: Gävle
Re: Tänker jag rätt? Har jag gjort rätt? C++, rätt mig.
Lars skrev:GNU General Public License som du klistrade in i filenLulle skrev:Dum fråga, vad är GPL?Lars skrev:Du får pluspoäng för att använda GPLOch en liten guldstjärna i kanten.
Samma licens som bl.a. Linux använder.
Jaha, jag tänkte lite fel.
Trodde du menade något med kodning nu, haha.
Ja självklart använder jag mig av den licensen, jag sitter ju med *nix baserade operativsystem osv.
Helt gått ifrån windows, så varför skulle man inte själv använda GPL?
Om jag inte hade gjort det så hade jag bara varit en dum dristig idiot och en hycklare.
Dvs äta tårtan men fortfarande ha den kvar.
- Osprey
- Inlägg: 6310
- Blev medlem: 06 apr 2008, 00:09
- OS: Ubuntu
- Ort: Göteborg/Mölndal/Falkenberg
- Kontakt:
Re: Tänker jag rätt? Har jag gjort rätt? C++, rätt mig.
Egentligen är det nog så att det är när man använder *nix baserade OS och deltar i gemenskapen som man både kan äta tårtan men samtidigt ha den kvar...Lulle skrev:Dvs äta tårtan men fortfarande ha den kvar.

Presonlig synpunkt: Jag kan inte anse att Windowsanvändare varken äter någon tårta, eller har något kvar...

Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
- micke_nordin
- Inlägg: 1539
- Blev medlem: 21 aug 2008, 17:03
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Kontakt:
Re: Tänker jag rätt? Har jag gjort rätt? C++, rätt mig.
He he, jag kollade inte så noga på vad du skrivit, det skall vara:Lulle skrev: Edit:
Den ger inte korrekt antal skopor, det står 6 skopor hela tiden.
Får inte riktigt till detta.
Någon som ser felet?
Kod: Markera allt
if(temp == '1') //Om det önskas starkt kaffe
{
skopor += 6; //Dubbla antalet skopor
}
Kod: Markera allt
if(temp == '1') //Om det önskas starkt kaffe
{
skopor = + 6; //Dubbla antalet skopor
}
