Pari o dispari

Stato
Discussione chiusa ad ulteriori risposte.

edo1493

Utente Silver
13 Settembre 2008
79
16
1
79
Posto questo esercizio semplice semplice per chi come me è alle prime armi..

Soluzione in C :
Codice:
#include<stdio.h>
/* Scrivere un programma che legga un intero e determini e visualizz se sia pari o dispari */
int main ()

{

int num1,divisione;

printf(" inserisci un intero \n");
scanf("%d",&num1);

divisione = num1 % 2;

if(divisione == 0) {

printf("il numero intero è pari\n",divisione);

}

if(divisione != 0) {

printf("il numero intero è dispari \n",divisione);

}

return 0;

}
 
perl, dato che lo sto studiando ora:
Codice:
#!/usr/bin/perl
print "Inserire un numero\n";
$num = <STDIN>;
$num % 2 == 0 ? print " è pari\n" : print " è dispari\n";

ma questo non è degno di essere chiamato esercizio

edit: la descrizione l'ha inserita nel commento del suo esercizio


@ edo: ma non bastavano moolte meno righe di codice?
 
lepa ha detto:
perl, dato che lo sto studiando ora:
Codice:
#!/usr/bin/perl
print "Inserire un numero\n";
$num = <STDIN>;
$num % 2 == 0 ? print " è pari\n" : print " è dispari\n";

ma questo non è degno di essere chiamato esercizio

edit: la descrizione l'ha inserita nel commento del suo esercizio


@ edo: ma non bastavano moolte meno righe di codice?



piccola annotazione (^^) dato che stai studiando il perl : usa <> al posto di <STDIN>

GreyFox ha detto:
fallo senza usare % allora

basta usare un :
Codice:
$num = <>;
$num -= 2 while $num > 1;
$num == 0 ? print 'pari' : print 'dispari'
 
Questo so farlo anch'io (il che dice tutto...) :asd::asd::asd:

Svolto in C

Codice:
#include <stdio.h>

int main()
{
    int n;
    printf("Inserire un numero intero: ");
    scanf("%d", &n);
    if(n % 2 == 0)
         printf("Il numero è pari\n");
    else
        printf("Il numero è dispari\n");
    return 0;
}

Esercizio fin troppo semplice... :lol:
 
Solo per noia...
[C++]
Codice:
# include <iostream.h>
using namespace std;
int main() {
  int num;
  cout<<"Inserisci un numero: ";
  cin>>num;
  if (num%2==0) {
    cout<<"Pari";
  } else {
    cout<<"Dispari";
  }
  return 0;
}
 
il mio in C
Codice:
#include <stdio.h>
#define pardisp(x)((x%2==0)?0:1)

main()
{
      int num;
      printf("Inserisci un numero:\n");
      scanf("%d", &num);
      if(!pardisp(num))
      printf("Il numero %d e' pari!\n", num);
      else
      printf("Il numero %d e' dipari!\n", num);
}
 
boh giusto per uscire dal coro:
ruby
Codice:
puts [0,2,4,6,8].include?(ARGV[0][-1,1].to_i) ? "pari" : "dispari" ;
 
Fatto in php senza usare %:
Codice:
<?php
$a = array(0,2,4,6,8);
$p = str_split($argv[1],1);
if(in_array($p[count($p)-1],$a))
   print "Pari";
else
   print "Dispari";
?>
 
Codice:
.data
    /* Strings */
    s_usage: .string "Usage: program <number>\n"
    l_usage= .-s_usage
    s_even:  .string "The number is even.\n"
    l_even=  .-s_even
    s_odd:   .string "The number is odd.\n"
    l_odd=   .-s_odd

    /* Arguments */
    argc: .long     0

.bss
    .macro __exit value
        movl    $1, %eax
        movl    \value, %ebx
        int     $0x80
    .endm

    .macro __print string, length
        push    %ebx
        push    %ecx
        push    %edx

        movl    $4, %eax
        movl    $1, %ebx
        movl    \string, %ecx
        movl    \length, %edx
        int     $0x80

        pop     %edx
        pop     %ecx
        pop     %edx
    .endm

.text
    .globl _start

_start:
    pop     argc
    cmp     $2, argc
    jl      usage

    add     $4, %esp
    call    __atoi
    xorl    %edx, %edx
    movl    $2, %ebx
    divl    %ebx

    cmp     $0, %edx
    je      even

odd:
    __print $s_odd, $l_odd
    jmp     end

even:
    __print $s_even, $l_even
    jmp     end

usage:
    __print $s_usage, $l_usage
    jmp     error

error:
    __exit  $-1

end:
    __exit  $0

/* Functions */

/* int __isdigit (char ch) */
__isdigit:
    push    %ebp
    mov     %esp, %ebp

    xorl    %eax, %eax

    cmpb    $0x30, 8(%ebp)
    jl      __isdigit_end
    cmpb    $0x39, 8(%ebp)
    jg      __isdigit_end

    movl    $1, %eax

    __isdigit_end:

    pop     %ebp
    ret


/* int __atoi (char* str) */
__atoi:
    push    %ebp
    movl    %esp, %ebp

    /* is_negative @ -4(%ebp) */
    sub     $4, %esp

    push    %ebx
    push    %ecx
    push    %edx

    movl    8(%ebp), %ecx

    cmpb    $'-', (%ecx)
    je      __atoi_neg
    cmpb    $'+', (%ecx)
    je      __atoi_pos
    jmp     __atoi_P1

    __atoi_neg:
    movl    $1, -4(%ebp)
    incl    %ecx
    jmp     __atoi_P1

    __atoi_pos:
    movl    $0, -4(%ebp)
    incl    %ecx
    
    __atoi_P1:

    push    (%ecx)
    call    __isdigit
    addl    $4, %esp

    cmp     $0, %eax
    je      __atoi_end

    xorl    %ebx, %ebx
    xorl    %edx, %edx

    movb    (%ecx), %dl
    subb    $0x30, %dl
    movl    %edx, %ebx
    incl    %ecx

    __atoi_loop:
        push    (%ecx)
        call    __isdigit
        addl    $4, %esp

        cmp     $0, %eax
        je      __atoi_loop_end

        movl    $10, %eax
        mull    %ebx
        movl    %eax, %ebx

        movzbl  (%ecx), %edx
        subb    $0x30, %dl
        addl    %edx, %ebx

        incl    %ecx

        jmp     __atoi_loop
    __atoi_loop_end:

    movl    %ebx, %eax

    cmp     $1, -4(%ebp)
    jne     __atoi_end

    neg     %eax

    __atoi_end:

    pop     %edx
    pop     %ecx
    pop     %ebx
    addl    $4, %esp
    pop     %ebp
    ret
 
Cioè ma dico, nessuno che lo posta in python???
Codice:
if input % 2 == 0:
    print "pari"
else:
    print "dispari"

edit orak: aggiunti tag code ;)
 
PHP (scritto al momento):
PHP:
<?php
$num = trim (fgets (STDIN));
if (!is_numeric ($num)) die ("Stupid, this is not a number..\n");
$division = (int) $num / 2;
if (is_double ($division) || is_float ($division))
    print "Dispari -.-\n";
else
    print "Pari :-)\n"
?>
 
Robertof ha detto:
PHP (scritto al momento):
PHP:
<?php
$num = trim (fgets (STDIN));
if (!is_numeric ($num)) die ("Stupid, this is not a number..\n");
$division = (int) $num / 2;
if (is_double ($division) || is_float ($division))
    print "Dispari -.-\n";
else
    print "Pari :-)\n"
?>
Se $division lo casti ad (int) non sara' mai double o float :omfg:
 
Io in php avrei fatto così:
PHP:
<?php echo preg_match('/^[0-9]*$/', $argv[1]) ? preg_match('/[02468]$/', $argv[1]) ? "Pari\n" : "Dispari\n" : "Non hai inserito un numero\n" ?>
E questo in falcon è abbastanza figo:
Codice:
load regex; > Regex("^[0-9]*$").match(args[0]) ? int(args[0]) % 2 ? "Dispari" : "Pari" : "Non è un numero ciò che hai inserito"
Dovrebbero andare non ho testato, ne sono quasi sicuro :)
 
vabbe visto che stiamo ne ho fatta anche una versione in c++ abbastanza facile
Codice:
//Programma che controlla se un numero è pari o dispari
#include <cstdio>
#include <iostream>
using namespace std;
int main()
	{
	int* numero=new int;
	cout<<"Inserisci il numero da controllare -->  ";
	cin>>*numero; 
    (*numero) %2 == 0 ? cout<<"Il numero e' pari "<<endl : cout<<"Il numero è dispari "<<endl;		
	delete numero;
	}
 
così, è molto semplice l'esercizio , giusto per diversificarlo dagli altri e utilizzare un metodo diverso..
 
Stato
Discussione chiusa ad ulteriori risposte.