[ESERCIZIO 1] Quanti sono gli elementi dispari nel vettore?

Stato
Discussione chiusa ad ulteriori risposte.
Python 3.1, un pochettino ofuscato, giusto per provare quella sottospecie di operatore ternario che si può usare:

Codice:
disp=0
arr=[int(a) for a in input("Inserisci i numeri divisi da uno spazio").split(" ")]
for i in arr: disp+=1 if i%2!=0 else False
print("I numeri dispari sono: {}".format(disp))

beh, in python array veri e propri nn ne esistono, ma la lista credo conti uguale XD
 
RE: [ESERCIZIO 1] Quanti sono gli elementi dispari nel vettore? <Difficoltà: Media>

narcycs ha detto:
RedSkull ha detto:
la consegna dice :
non ho letto la consegna.

poi con 2 variabili int occupo 2*sizeof(int) byte nello stack, con un array ci sarebbero molti più byte usati/sprecati/inutilmente utilizzati...

RedSkull ha detto:
Non vorrei fare il guasta feste, ma il mio prof mi ha inculcato che se la consegna dice una cosa DEVE essere rispettata ai minimi particolari... (pur sapendo che i vettori possono essere evitati)
Dì al tuo prof che se tu riesci a scrivere codice migliore del suo, allora vuol dire che il prof dovrebbe prendere in considerazione l'idea di cambiare mestiere. :phonmg: e di cedere il posto ai "giovani" ;)

ovviamente è un "lol post" il mio :D il fatto è che ho conosciuto una manciata di prof così... e finchè sei a scuola, devi sottostare, ma se sei per conto tuo, cerca di risolvere i problemi nel modo migliore.

ps: (prof != dio)

edit:
ps 2.0
in ogni caso, per "rispettare la consegna" dovresti fare 2 cicli, uno per riempire il vettore, ed uno per controllare e contare la presenza di numeri dispari.

io so che se ti chiedo di fare una cosa in un determinato modo (e tu accetti, sei obbligato o quello che ti pare), me ne frego altamente se sai farlo meglio in un altro. Lo voglio fatto come dico io.
Potrebbe essere anche una routine di un programma che ti da un array. Non sono cavoli tuoi. Fai come ti è stato detto.

Per questo, nonostante prof!= dio (ma anche altro!=dio), i prof che inculcano di seguire la consegna sono spesso nel giusto.

PS:Non vorrei che questo post venisse interpretato male, visto i "toni" che uno potrebbe credere di intravedere. Non sto attaccando nessuno, sto solo cercando di far capire un modo di pensare.
 
↑ un modo di pensare certamente corretto, nella fattispecie se è un esercizio sugli array probabilmente il professore vuole valutare la tua capacità di manipolare gli array, quindi se non li usi hai sbagliato. Come fare un tema su Garibaldi mentre dovevi parlare di Napoleone, sarà anche bello ma hai perso la traccia.

Comunque invito a rimanere in topic, se c'è il potenziale per un dibattito aprite pure un'altro topic.
 
RE: [ESERCIZIO 1] Quanti sono gli elementi dispari nel vettore? <Difficoltà: Media>

mi autoquoto:
narcycs ha detto:
in ogni caso, per "rispettare la consegna" dovresti fare 2 cicli, uno per riempire il vettore, ed uno per controllare e contare la presenza di numeri dispari.

dato che è un esercizio sugli array.
 
da quello che ho capito lo corretto ditemi se sbaglio
â– â–ƒ â–„ â–… â–† â–‡ â–ˆ â–‡ â–† â–„ â– â– â–ƒ â–„ â–… â–† â–‡ â–ˆ â–‡ â–† â–„ â–
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼[ot]
Codice:
puts "Inserisci l' array: [fat1,fat2,fat3...]"
array = gets.chomp.split(",")
size = array.size
size.times do |x|
	x = array[x].to_i
	contatore += 1 if x%2!=0
end
puts "Ci sono #{contatore} numeri dispari.."
[/ot]
 
kr1pn0$ ha detto:
da quello che ho capito lo corretto ditemi se sbaglio

Codice:
puts "Inserisci l' array: [fat1,fat2,fat3...]"
array = gets.chomp.split(",")
size = array.size
size.times do |x|
	x = array[x].to_i
	contatore += 1 if x%2!=0
end
puts "Ci sono #{contatore} numeri dispari.."
that is not c++
 
ecco il mio:

Codice:
#include<stdio.h>
#include<stdlib.h>
int main (void){
	int i, *a, cont=0,max, n;
	printf("Quanti numeri vuoi inserire? ");
	scanf ("%d", &max);
	a=(int*)malloc (max*sizeof(int));
	if (a!=NULL){
		for (i=0;i<max;i++){
			printf("Inserisci il %d numero: ", i+1);
			scanf ("%d", &n);
			a[i]=n;
			if ((a[i]%2)!=0)
					cont++;
		}
	}
	else{
		printf("Impossibile allocare spazio sufficiente\n");
		exit(1);
	}
	printf("Nel vettore ci sono %d elementi dispari\n", cont);
	
	return 0;
}
 
Spero di non essere in ritardo..
Python:
Codice:
print sum([1 for x in raw_input('Numeri separati da uno spazio (n1 n2 n3): ').split() if int(x) % 2 != 0])
 
RE: [ESERCIZIO 1] Quanti sono gli elementi dispari nel vettore? <Difficoltà: Media>

opocaj ha detto:
[Ruby]
Codice:
#!/usr/bin/ruby
puts "Lunghezza vettore?"
len=gets.to_i
$cont=0
$vector=Array.new
len.times do |i|
  puts "Elemento "+i.to_s
  $vector[i]=gets.to_i
end
len.times do |i|
  if $vector[i]%2!=0
    $cont+=1
  end
end
puts "Elementi dispari: "+$cont.to_s

Le variabili globali non sono il massimo, e non c'è bisogno di richiedere la lunghezza dell'array

http://sprunge.us/NHiL?rb
Codice:
#! /usr/bin/env ruby

class Array
    def odditems!
        self.each do |x|
            if x % 2 == 0
                self.delete x
            end
        end
        return self
    end
end

arr = []

puts "Dammi interi, Ctrl^d per terminare."
while gets
    arr << Integer($_)
end

puts arr.odditems!.inspect
Non testato per momentanea inabilità xD
 
Pythoner ha detto:
Spero di non essere in ritardo..
Python:
Codice:
print sum([1 for x in raw_input('Numeri separati da uno spazio (n1 n2 n3): ').split() if int(x) % 2 != 0])

a questo metodo ancora + conciso non ci avevo pensato, complimenti.
 
Bon visto che non avevo nulla da fare ecco qui un altro modo:
Codice:
$a = [] and par = 0 and dis = 0
puts "Inserisci i vettori: , Premi [control] [C] per chiudere il vettore.."
while true
	begin
		$a << $stdin.gets.chomp.to_i
	rescue Interrupt
		$a.each {|x| x%2==0 ? par += 1 : dis += 1 }
		puts "+"+"-"*20+"+"
		puts "|"+"Evilmau".center(20)+"|"
		puts "+"+"-"*20+"+"
		puts "Pari:\t\t#{par}"
		puts "Dispari:\t#{dis}"
		exit
	end
end
 
Stato
Discussione chiusa ad ulteriori risposte.