1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Primzahlen anzeigen bei Comal?

Discussion in 'Programmieren' started by VinceBär, Dec 16, 2007.

Thread Status:
Not open for further replies.
  1. VinceBär

    VinceBär Megabyte

    Hi leute
    ich wollte mal fragen was ich bei Comal eingeben muss, um angezeigt zu kommen welche Primzahlen dazwischen sind... Bsp:
    Wie heißen die Primzahlen bis 100?
    2,3,5, usw...
    Oder ist dies nicht möglich? Mir is kla das man dafür ein kleines "Programm" schreiben muss....
     
  2. RealC++

    RealC++ Kbyte

    Ich kenne COMAL nicht. Vielleicht hilft's dir aber, wenn du siehst wie ich das in C gemacht habe:

    Code:
    #include <stdio.h>
    
    void main(void)
    {
            int a,b,c;
    
            printf("Primzahlen unter 100:");
    
    	while(a<=100)
    	{
                    c=0;
    
                    for(b=1; b<=100; b++)
                    {
                            if(!(a%b))
                            {
                                    c++;
                            }
                    }
    
                    if(c==2)
                    {
                            printf("\n%d",a);
                    }
    
                    a++;
    	}
    
    	getchar(); /* Automatisches Schliessen der Konsole verhindern. */
    }
     
  3. VinceBär

    VinceBär Megabyte

    Nein leider hilfts mir nicht... Aber danke für die Hilfe :)
     
  4. Ich kenne mich nicht so gut mit Comal aus, aber probier es mal mit einer IF-Schleife:

    0010 //Programm
    0020 PRINT "Gib für a 100 ein. Das Programm zeigt dir dann alle Zahlen Primzahlen bis zur ausgewählten Zahl an."
    0030 INPUT :="a"
    0040 IF a Then
    0050 PRINT "3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59,"
    0060 PRINT "61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99"

    Ich hoffe es hilft dir!
     
  5. RealC++

    RealC++ Kbyte

    So muss er die entsprechenden Zahlen ja alle vorher selbst herausfinden, wo soll denn da der Nutzen sein an dem Programm?

    P.S.: Wenn der Benutzer z. B. 5 oder sonst eine Zahl über 0 eingibt, gibt das Programm auch die Primzahlen aus.
     
  6. Hascheff

    Hascheff Moderator

    Scherzkeks! 9 ist keine Primzahl!
     
  7. brum

    brum Kbyte

    ...Und 21, 25, 27, 33, 35, 39, 45, 49, 51, 55, 57, 63, 69, 75, 77, 81, 85, 87, 91, 93, 95 und 99 auch nicht!

    Aber 2 wäre eine Primzahl.

    Gruss
    Bruno
     
  8. Hascheff

    Hascheff Moderator

    Na, dann binden wir mal den Sack zu: 15 und 65 auch nicht.
     
  9. Versuch es hiermit:

    0010 //Zaehlprogramm
    0020 Page
    0030 Print "Gib a eine beliebige Zahl ein!"
    0040 INPUT "a=": a
    0050 Print "Gib für b eine kleinere Zahl ein!"
    0060 INPUT "b=": b
    0070 Page
    0080 For c:=a To b STEP -1 Do
    0090 d#=a/2
    0100 e=d#*2
    0110 Print e
    0120 For e To 10000000 Do
    0130 Endfor e
    0140 IF a<>e THEN
    0150 Print a
    0150 ENDIF
    0160 Endfor c

    So müsste es eigentlich funktionieren!
     
  10. VinceBär

    VinceBär Megabyte

    Bei mir mault Comal in zeile 120: ":=" erwartet nicht TO...:confused:
    Und warum soll ich noch die Zahl B eingeben?
    Wofür steht das "#" Zeichen?
     
  11. Dann versuch es so:

    0120 For e:=a To 10000000 Do

    Das mit den Primzahlen hab ich nicht hinbekommen, ich glaube das ist auch nicht möglich. Wenn du das '#' bei einer Rechnung in Comal eingibst, dann rundet der die Zahl entsprechend hoch/runter.
    Dieses Programm zählt nur alle ungeraden Zahlen herunter.
    Wenn du willst das er wirklich nur die Primzahlen anzeigen soll, musst du erst ein "System" herausfinden, in welchen Schritten/Abständen eine Primzahl auftaucht und das dann in dieses Programm einbinden.
     
  12. RealC++

    RealC++ Kbyte

    Das man auch mit COMAL Primzahlen ermitteln kann, ist wohl totsicher!

    Sehr komfortabel geht es in C/C++ mit dem Modulo-Operator, wie man in meinem ersten Beitrag sieht.
    Wenn es in dieser Sprache halt einen solchen nicht gibt, muss man eine entsprechende Funktion selber schreiben.
    Der Rest, das eigentliche Programm ist dann eigentlich sehr einfach und mit etwas Gehirnschmalz kann man's gleich von meinem Listing abschauen.
     
  13. RealC++

    RealC++ Kbyte

    Wahrscheinlich muss es ca. so aussehen:
    Code:
    PRINT "Primzahlen unter 100:"
    
    CNT1:=1
    
    WHILE CNT1<=100 DO
    
    	CNT3:=0
    
    	FOR CNT2:=1 TO 100 STEP 1 DO
    
    		IF CNT1 MOD CNT2 THEN
    			//NOP
    		ELSE
    			CNT3:+1
    		ENDIF
    
    	ENDFOR CNT3
    
    	IF CNT3=2 THEN
    		PRINT CNT1
    
    	CNT1:+1
    
    LOOP
     
  14. Ich habe einige Programme dazu selbst geschrieben Gruß Gerhard
     
Thread Status:
Not open for further replies.

Share This Page