WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 16.05.2004, 08:45   #11
pong
Inventar
 
Benutzerbild von pong
 
Registriert seit: 25.12.2000
Alter: 41
Beiträge: 9.063

Mein Computer

pong eine Nachricht über ICQ schicken
Standard

Zitat:
Ja es stimmt die Angabe ist sehr schwammig!
Also:

Es sollen n Zahlen eingebeben werden mit dem Keyboard.
Bei der Eingabe des Buchstaben e soll die Eingabe Ausgegeben werden!
Dann frag doch einfach genauer nach, denn normalerweise sind Aufgaben da, um einen gelernten Stoff zu festigen, sprich du solltest die Mittel, welche du zur Lösung benötigst bereits erlernt haben


Lösung für Konsolenanwendung am Beispiel für C:

Code:
char eingabe[N];
int i=0;
int j=0;

eingabe[0]=' ';

for(i=0;eingabe[i] != 'e' && eingabe[i] != 'E';i++)
{
 for(j=0;j < i; j++)
     display eingabe[j]
  eingabe[i]=getchar();
  clrscr();
}
pong
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug

Nicht klicken!


Erstposteralarm/Beschwerde/Kummerkasten


Verplattet
pong ist offline   Mit Zitat antworten
Alt 16.05.2004, 12:06   #12
exafish
Newbie
 
Registriert seit: 22.09.2001
Beiträge: 5


Standard

obiges codesnip funktioniert mit sicherheit nicht.

folgender code aber schon (nicht sauber, aber es wird reichen):

Code:
#include <stdio.h>
#define MAX 50

int main(void)
{
int i=0;
char eingabe[MAX];
char c;


while(1)
{
     if((c=fgetc(stdin))==NULL)
     {
        fprintf(stderr,"%s","error reading from stdin");
        exit(1);
     }

     if(c=='e'||c=='E')
         break;

     eingabe[i++]=c;
     }

// kontrolle
for(i=0;i<sizeof(eingabe);i++)
{
  printf("%c",eingabe[i]);
}

return 0;
}
das sollte vorerst helfen...
exafish ist offline   Mit Zitat antworten
Alt 16.05.2004, 15:36   #13
_m3
Inventar
 
Registriert seit: 24.09.2001
Beiträge: 7.335


Standard

Geh postet ihm wer eine Loesung in
a) Smalltalk
b) Cobol
c) PL/1
?

Was anderes hat er nicht verdient. Wahrscheinlich hat er am Montag Abgabe und ist noch immer so blunzenfett, dass er hier nicht einmal eine ordentliche Frage posten, noch die Antworten verstehen kann.
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org .
_m3 ist offline   Mit Zitat antworten
Alt 16.05.2004, 15:48   #14
pong
Inventar
 
Benutzerbild von pong
 
Registriert seit: 25.12.2000
Alter: 41
Beiträge: 9.063

Mein Computer

pong eine Nachricht über ICQ schicken
Standard

b)

Code:
........

Working-Storage Section.

05 zeichenkette occurs 9999 indexed by eing-i.
    10 eingabe pic x(1).

.......

Procedure Division.

hauptprogramm
    section.
    display 'geben sie ihren numerischen zeichenkette ein'
    
    perform with test before
    varying eing-i from 1 by 1
    until eingabe(eing-i) = 'e'

    accept eingabe(eing-i) from terminal
    if eingabe(eing-i) is numeric
      then
        display eingabe(eing-i) upon terminal
      else 
        continue
    end-if

    end-perform
    move 
    .
    end-section.
    exit.
pong
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug

Nicht klicken!


Erstposteralarm/Beschwerde/Kummerkasten


Verplattet
pong ist offline   Mit Zitat antworten
Alt 16.05.2004, 15:57   #15
_m3
Inventar
 
Registriert seit: 24.09.2001
Beiträge: 7.335


Standard

Grazie
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org .
_m3 ist offline   Mit Zitat antworten
Alt 16.05.2004, 16:13   #16
Who-T
Elite
 
Registriert seit: 01.08.2000
Beiträge: 1.395


Who-T eine Nachricht über ICQ schicken
Standard

five exclamation marks, the sure sign of an insane mind.

Terry Pratchett, Reaper Man
____________________________________
Whoever built humanity left in a major design flaw: it was the tendency to bend at the knees.
Who-T ist offline   Mit Zitat antworten
Alt 16.05.2004, 16:31   #17
Biri
Hero
 
Registriert seit: 04.09.2001
Beiträge: 894


Standard

@exafish: ich würde eher sagen, dein codeausschnitt funktioniert nicht.
du verwendest hier eine etwas eigenartige methode, um einzelne zeichen einzulesen - liest ja mal alles von stdin ein und teilst es dann zeichenweise dem ausgabepuffer zu.
leider hast du vergessen, den ausgabepuffe rmit ascii 0 abzuschließen. sizeof(eingabe) liefert daher einen zufallswert.
solltest den ausgabepuffer mit '\0' initialisieren.

besser ist imho. die lösung von pong.

ist aber alles in allem ein lustiger thread !

fg
-hannes

ps: kann bei bedarf noch eine lösung in C# nachliefern.
Biri ist offline   Mit Zitat antworten
Alt 16.05.2004, 17:04   #18
pong
Inventar
 
Benutzerbild von pong
 
Registriert seit: 25.12.2000
Alter: 41
Beiträge: 9.063

Mein Computer

pong eine Nachricht über ICQ schicken
Standard

Sag nix gegen mein cobol...

pong
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug

Nicht klicken!


Erstposteralarm/Beschwerde/Kummerkasten


Verplattet
pong ist offline   Mit Zitat antworten
Alt 16.05.2004, 20:58   #19
exafish
Newbie
 
Registriert seit: 22.09.2001
Beiträge: 5


Standard

>@exafish: ich würde eher sagen, dein codeausschnitt funktioniert nicht.

@Biri: wundersamerweise laesst er sich compilieren und liefert korrekte ergebnisse.

>du verwendest hier eine etwas eigenartige methode, um einzelne zeichen einzulesen - liest ja mal alles von stdin ein und teilst es dann zeichenweise dem ausgabepuffer zu.

bitte den sourcecode genau ansehen und erst dann konkrete verbesserungen dazu abgeben.

>leider hast du vergessen, den ausgabepuffe rmit ascii 0 abzuschließen.

ja, richtig, da aber der ganze array ausgegeben wird(printf %c ->RTFM) und der c-string nicht weiterverarbeitet wird, spielt das keine rolle(ist eben wie oben erwaehnt schmutzig).

>sizeof(eingabe) liefert daher einen zufallswert.

dem ist nicht so. als rueckgabewert wird die groesse des arrays geliefert. wenn du darauf anspielst, dass somit unnoetigerweise der ganze array unabh. von der eingabelaenge am ende ausgegeben wird, stimmt das.

>solltest den ausgabepuffer mit '\0' initialisieren.

danke, das habe ich verschlafen. nicht initialisierter speicher fuehrt zu unerwartetem verhalten.

>ist aber alles in allem ein lustiger thread !

das ist er!

>ps: kann bei bedarf noch eine lösung in C# nachliefern.

ich bitte darum, da du dich augenscheinlich mit programmieren beschaeftigst, wuerde mich jener interessieren, sowie als auch die C-version von dir, da ich meinen stil verbessern moechte.
exafish ist offline   Mit Zitat antworten
Alt 16.05.2004, 21:44   #20
Biri
Hero
 
Registriert seit: 04.09.2001
Beiträge: 894


Standard

@exafish:
ich halte es wie gesagt in diesem fall besser, den ausgabestring zu initialisieren (mit Acsii 0) und statt sizeof
dann strlen() zu verwenden - wenn man es auf die von dir beschriebene weise löst.

ad. C#: sollte so gehen:

PHP-Code:
using System;
using System.Text;

namespace ConsoleApplication1
{
    class 
Class1
    
{
        [
STAThread]
        static 
void Main(string[] args)
        {
            
StringBuilder output = new StringBuilder();
            
char zeichen ' ';

            while (
char.ToUpper(zeichen) != 'E')
            {
                
zeichen = (charConsole.Read ();
                
output.Append(zeichen);
            }

            
Console.WriteLine(output.ToString());
            
Console.ReadLine();  // warten
        
}
    }

ps: find das ganze deshalb lustig, weil ich die programmieraufgaben auch immer am letzten tag gemacht hab - damals war internet+foren aber noch nicht gerade "verbreitet".
(zeit von win 3.11, wo man noch eigenen tcpip prozess starten musste)

fg
-hannes
Biri ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:55 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag