reorganisation + hashmap
This commit is contained in:
		
							
								
								
									
										48
									
								
								q2/algo/hashmap.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								q2/algo/hashmap.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,48 @@
 | 
			
		||||
public class hashmap implements Map{
 | 
			
		||||
 | 
			
		||||
	public static final TAB_SIZE = 1024;
 | 
			
		||||
	Object[] values = new Object[TAB_SIZE];
 | 
			
		||||
	class tuple{ public Object key, values; 
 | 
			
		||||
		public tuple(Object key, Object value){
 | 
			
		||||
			this.key = key;
 | 
			
		||||
			this.value = value;
 | 
			
		||||
		}
 | 
			
		||||
	
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public hashmap() {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public void put(Object key, Object value){
 | 
			
		||||
		int pos = key.hashCode() % values.lenght();
 | 
			
		||||
		if (values[pos] == null){
 | 
			
		||||
			values[pos] = value;
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
		if(value[pos] instanceof ArrayList<tuple> t){
 | 
			
		||||
			t.add(new tuple(key, value));
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
		Object temp = values[pos];
 | 
			
		||||
		values[pos] = new ArrayList<tuple>;
 | 
			
		||||
		value[pos].add(temp);
 | 
			
		||||
		value[pos].add(new tuple(key, value));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public Object get(Object key){
 | 
			
		||||
		int pos = key.hashCode() % values.lenght();
 | 
			
		||||
		if(values[pos].equals(key)){
 | 
			
		||||
			return values[pos].value;
 | 
			
		||||
		}
 | 
			
		||||
		if(values[pos] instanceof ArrayList<tuple> t){
 | 
			
		||||
			for (v : t) {
 | 
			
		||||
				if (v.key.equals(key)){
 | 
			
		||||
					return v.value
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return null;
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										0
									
								
								q2/tp2/recursif/.idea/.gitignore → q2/algo/tp2/recursif/.idea/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										0
									
								
								q2/tp2/recursif/.idea/.gitignore → q2/algo/tp2/recursif/.idea/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										29
									
								
								q2/fonctio/tp1/algo_q21.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								q2/fonctio/tp1/algo_q21.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,29 @@
 | 
			
		||||
#!/bin/python
 | 
			
		||||
 | 
			
		||||
def toBinaryString(user_i:int):
 | 
			
		||||
    squares  = [2**i for i in range(32)]
 | 
			
		||||
    squares.reverse()
 | 
			
		||||
 | 
			
		||||
    ret = ''
 | 
			
		||||
    show = False
 | 
			
		||||
 | 
			
		||||
    for s in squares:
 | 
			
		||||
        if user_i & s:
 | 
			
		||||
            ret += '1'
 | 
			
		||||
            show=True
 | 
			
		||||
        else:
 | 
			
		||||
            if show:
 | 
			
		||||
                ret += '0'
 | 
			
		||||
    return ret 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
    """
 | 
			
		||||
    Ask the user for an input
 | 
			
		||||
    """
 | 
			
		||||
    user_in = input("entrez un nombre :")
 | 
			
		||||
    print(toBinaryString(int(user_in)))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
    main()
 | 
			
		||||
							
								
								
									
										85
									
								
								q2/fonctio/tp1/exercices.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								q2/fonctio/tp1/exercices.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,85 @@
 | 
			
		||||
# Exercices
 | 
			
		||||
 | 
			
		||||
## Binary
 | 
			
		||||
 | 
			
		||||
1) \\(  \\) 
 | 
			
		||||
 | 
			
		||||
2) 4095
 | 
			
		||||
 | 
			
		||||
3) 100000 (2) = 32 (10)
 | 
			
		||||
4) 000010 (2) = 2 (10)
 | 
			
		||||
5) 111111 (2) = 63 (10)
 | 
			
		||||
6) 010101 (2) = 21 (10)
 | 
			
		||||
 | 
			
		||||
7) 64 (10) = 0100 0000 (2)
 | 
			
		||||
8) 7 (10) = 0000 0100 (2)
 | 
			
		||||
9) 192 (10) = 1100 0000 (2)
 | 
			
		||||
10) 3073 (10) = 0110 0000 0001 (2)
 | 
			
		||||
 | 
			
		||||
11) 0x1010 = 4112
 | 
			
		||||
12) 0x10A0 = 4256
 | 
			
		||||
13) 0xBABE = 47806
 | 
			
		||||
 | 
			
		||||
14) 020 = 16
 | 
			
		||||
15) 072 = 58
 | 
			
		||||
 | 
			
		||||
16) sur papier = 0xCAFE
 | 
			
		||||
17) sur papier = 02001
 | 
			
		||||
 | 
			
		||||
18) 0xCAFE = 1100 1010 1111 1110
 | 
			
		||||
19) 0xCAFE = 0145376
 | 
			
		||||
20) 072 = 111010
 | 
			
		||||
 | 
			
		||||
21) > ./algo_q21.py
 | 
			
		||||
 | 
			
		||||
## Complement a 2
 | 
			
		||||
 | 
			
		||||
22)
 | 
			
		||||
23) \\( -2^11 → 2^11-1 \\)  
 | 
			
		||||
 | 
			
		||||
24) 17 = 0001 0001
 | 
			
		||||
25) -17 = 1110 1101
 | 
			
		||||
26) 255 = 1111 1111 (Imposible car pas dans l'interval)
 | 
			
		||||
27) -128 = 1000 0000
 | 
			
		||||
28) -73 = 10110111 
 | 
			
		||||
 | 
			
		||||
29)   01001111
 | 
			
		||||
   +  00000001
 | 
			
		||||
   =  01010000
 | 
			
		||||
 | 
			
		||||
30) - 10010110 = 01101010
 | 
			
		||||
 | 
			
		||||
31)   01001111
 | 
			
		||||
    + 01000001
 | 
			
		||||
    ---------
 | 
			
		||||
    = 10010000 (Overflow, le nombre n'est pas dans la range de nombre accesible sur 8 bits en ca2)
 | 
			
		||||
 | 
			
		||||
32)   00000001
 | 
			
		||||
    - 00000010
 | 
			
		||||
    ----------
 | 
			
		||||
    = 11111111
 | 
			
		||||
 | 
			
		||||
33)   00001001
 | 
			
		||||
    x 00000110
 | 
			
		||||
    ----------
 | 
			
		||||
     000010010      
 | 
			
		||||
  + 0000100100
 | 
			
		||||
  ------------
 | 
			
		||||
  = 0000110110
 | 
			
		||||
 | 
			
		||||
34)   10000001
 | 
			
		||||
    - 10000010
 | 
			
		||||
    ----------
 | 
			
		||||
    = 11111111 
 | 
			
		||||
35) - 10000000 = 011111111 (Imposible a representer sur 8 bits)
 | 
			
		||||
 | 
			
		||||
36)   00010100
 | 
			
		||||
    / 00000101
 | 
			
		||||
    ----------
 | 
			
		||||
      00000100
 | 
			
		||||
 | 
			
		||||
37)   00010111
 | 
			
		||||
    / 00001001
 | 
			
		||||
    ----------
 | 
			
		||||
      00000010 (reste 101)
 | 
			
		||||
38)
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								q2/fonctio/tp1/fonct-ordis-tp1-integers.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								q2/fonctio/tp1/fonct-ordis-tp1-integers.pdf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user