) Skriv ett program som skriver ut versalerna (stora bokstäver) i det engelska alfabetet
(A-Z) med hjälp av någon form av iteration. Det ska vara mellanrum (mellanslag)
mellan bokstäverna och efter 10 bokstäver skall utskriften fortsätta på ny rad .(4 poäng)
Behöver inte en hel kod för ovanstående uppgift. Funderar mest på hur man skriva ut bokstäver på detta sätt? Är det så att "char bokstav = 0" motsvar = a osv?
) Skriv ett program som skriver ut versalerna (stora bokstäver) i det engelska alfabetet
(A-Z) med hjälp av någon form av iteration. Det ska vara mellanrum (mellanslag)
mellan bokstäverna och efter 10 bokstäver skall utskriften fortsätta på ny rad .(4 poäng)
Behöver inte en hel kod för ovanstående uppgift. Funderar mest på hur man skriva ut bokstäver på detta sätt? Är det så att "char bokstav = 0" motsvar = a osv?
1) Konstanten 'A' ger dig heltalsvärdet, så även om ASCII och dess utökningar Latin och UNICODE sedan länge är helt dominerande finns det ingen anledning att skriva talet m.h.a. siffror och göra koden beroende av en speciell teckentabell.
2) Och ska man vara korrekt och krånglig, som jag gillar att vara, garanterar inte standarden heller att bokstäverna är i ordning, 'A' + 1 behöver inte nödvändigtvis vara 'B' (bara de decimala siffrorna '0' till '9' är garanterade att vara i ordning).
Både 1 och 2 beror på att det gamla teckensystemet EBDIC fortfarande användes när C skapades, annars kanske ASCII hade varit en del av standarden, vad vet jag, men det är iaf osannolikt att något nytt teckensystem skulle dyka upp i framtiden eftersom det skulle bugga ur väldig mycket redan existerande kod.
Men även om A-Z är i ordning i ASCII, är inte ÅÄÖ det. Så om du vill skriva kod som är lätt att modifiera i framtiden, och få guldstjärna, eller kanske bli utskrattad, skapa en array för att kolla upp bokstaven från en placering 0-25:
Hoppas att det var lite hjälp och ursäkta den otrevliga tonen. Jag har en grannfamilj som lyssnar på allt som jag gör och alla telefonsamtal (man märker det eftersom det är den enda gången som de tystnar från sitt interna skrikande på varandra). Jag ska gå över vägen till OKQ8 nu, köpa 25 liter bensin, tända eld på huset och skjuta de som kommer ut, så återkommer jag med ett bättre svar.
__________________
Senast redigerad av .profile 2018-01-12 kl. 21:41.
1) Konstanten 'A' ger dig heltalsvärdet, så även om ASCII och dess utökningar Latin och UNICODE sedan länge är helt dominerande finns det ingen anledning att skriva talet m.h.a. siffror och göra koden beroende av en speciell teckentabell.
2) Och ska man vara korrekt och krånglig, som jag gillar att vara, garanterar inte standarden heller att bokstäverna är i ordning, 'A' + 1 behöver inte nödvändigtvis vara 'B' (bara de decimala siffrorna '0' till '9' är garanterade att vara i ordning).
Både 1 och 2 beror på att det gamla teckensystemet EBDIC fortfarande användes när C skapades, annars kanske ASCII hade varit en del av standarden, vad vet jag, men det är iaf osannolikt att något nytt teckensystem skulle dyka upp i framtiden eftersom det skulle bugga ur väldig mycket redan existerande kod.
Men även om A-Z är i ordning i ASCII, är inte ÅÄÖ det. Så om du vill skriva kod som är lätt att modifiera i framtiden, och få guldstjärna, eller kanske bli utskrattad, skapa en array för att kolla upp bokstaven från en placering 0-25:
Perfekt. Vet du något smidigt sätt man skulle kunna koda ny rad efter var 10:e bokstav?
Antar om man vet vilken siffra bokstäverna motsvarar kan man göra:
Kod:
if (c == 75 || c == 85){
printf("\n");}
Citat:
Ursprungligen postat av Gottisborgen
A är lika med 65. (För att få gemener istället lägger du bara på +32)
Så länge jag kommer ihåg detta samband så kan nog ovanstående lösning funka bra.
__________________
Senast redigerad av smellyproof 2018-01-12 kl. 22:41.
Perfekt. Vet du något smidigt sätt man skulle kunna koda ny rad efter var 10:e bokstav?
Antar om man vet vilken siffra bokstäverna motsvarar kan man göra:
Kod:
if (c == 75 || c == 85){
printf("\n");}
Så länge jag kommer ihåg detta samband så kan nog ovanstående lösning funka bra.
Finns många sätt att repetitivt få ut en newline efter ett antal iterationer. En använder modulooperatorn.
Kod:
for (int i = 1, c = 'A'; c <= 'Z'; i++, c++) {
...
if (0 == i % 10) printf("\n");
else printf(" ");
}
) Skriv ett program som skriver ut versalerna (stora bokstäver) i det engelska alfabetet
(A-Z) med hjälp av någon form av iteration. Det ska vara mellanrum (mellanslag)
mellan bokstäverna och efter 10 bokstäver skall utskriften fortsätta på ny rad .(4 poäng)
Behöver inte en hel kod för ovanstående uppgift. Funderar mest på hur man skriva ut bokstäver på detta sätt? Är det så att "char bokstav = 0" motsvar = a osv?
Citat:
Ursprungligen postat av smellyproof
Perfekt. Vet du något smidigt sätt man skulle kunna koda ny rad efter var 10:e bokstav?
Antar om man vet vilken siffra bokstäverna motsvarar kan man göra:
Kod:
if (c == 75 || c == 85){
printf("\n");}
Så länge jag kommer ihåg detta samband så kan nog ovanstående lösning funka bra.
För varje bokstav kan du låta en räknare ticka upp 1. Sedan kollar du med modulo, %, om det är dags att skriva ut en radbrytning.
Påminner eder om https://www.flashback.org/announcement.php?f=205, framförallt stycket "För att skapa ett bättre diskussionsklimat kommer trådar där exempelvis en länk postas till en uppgift och påföljande kommentar "kan någon skriva koden åt mig" kastas när de påträffas, beroende på att det inte blir en speciellt bra diskussion kring detta, dessutom kommer ingen lära sig speciellt mycket av ett sådant förfarande heller."
Se nu till att hålla er till riktlinjerna tack /Mod
Har problem med min kod. Jag vill få programmet att lägga ihop värdena från min array till en egen char eller int fil. har försökt i en loop slå ihop dem med += vilket ger mig error.
Ger mig fel koden invalid use of non lvalue array, in evaluation of operator += char, char[30].
Problemet är i det sista stycket i koden.
Kod:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main (){
char deltagare[50][30];
cout << "programmet skriver ut befintlig lista och beräknar medelåldern."<< endl;
ifstream lasa ("elevinfo.txt");
//varnar användaren ifall rätt fil inte kan finnas.
if (! lasa){cout<< "filen kunde ej finnas" << endl;
return 0;
}
int d;
//beräknar antalet deltagare
while (lasa.getline(deltagare[d],30))
{d++;}
cout<<d<< endl;
//skriver ut arrayen.
for(int i=0;i<d;i++){
cout<< deltagare[i]<< endl;}
//skriver ut åldrarna och sparar gemensama totalåldern.
char mv =0;
for (int i=0;i<d;i++){
++i;
cout << deltagare[i]<<endl;
mv+=deltagare[i];
Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!
Stöd Flashback
Swish: 123 536 99 96Bankgiro: 211-4106
Stöd Flashback
Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!