GNOME in a 22” screen
Just a quik post to show how awsome GNOME looks in a 22” screen with 1920×1080
.

A small gift to myself before worst days arrive.
Another C mathematical program
Disclaimer: For the non geeky programming lovers out there, sorry for spamming you with this bunch of incomprehensible lines of text!
The first time I wrote some kind of program was back in high school with a Ti80 calculator which had some sort of BASIC programming language. After reading the manual I spent hours making small mathematical programs to speedup my problem solving study. I must say the programs were not that useful to math because in the tests I had of course to show all the calculation I did… Then I forgot most things about programming… Until some years ago
.
Anyways, what does this have to do with the code below? Almost nothing! The code bellow calculates the mode of n numbers provided by a user. It dynamically creates an n size array and checks with value is seen more often. I still haven’t done a python version this time, if someone wan’ts to do it in python or any other language, please do!
Here it goes.
#include <stdio.h> #include <stdlib.h> /*Create a n sized array*/ int* makearray(int n) { int* v; int i; v = (int*) malloc(n*sizeof(int)); /*Alocates n int numbers*/ printf("Array elements:\n"); for (i = 0; i < n; i++){ /*Fill the array with user input*/ scanf("%d", &v[i]); } return v; } /*Get the size of an array*/ int arraylen(int v[]) { int i=0; while(v[i]) i++; return i; } /*Count how many times a given element is repeated in an array*/ int countelem(int v[], int num) { int i, n=0; for (i=0; i < arraylen(v); i++){ if (v[i] == (int) num){ n++; } } return n; } int main() { int n, i, count = 0, mode; int* v; printf("Size of the array?\n"); /*We don't wan't anyone creating a oversized array: DANGER'*/ /*So we limit it's' size. Here I randomly defined 100*/ do{ scanf("%d", &n); } while(n > 100); v = makearray(n); /*Update the wich value is repeated more ofted -> Mode*/ for (i = 0; i < n; i++){ if (countelem(v, v[i]) > count){ count = countelem(v, v[i]); /*Update the value of the maximum number of repeats*/ printf("%d\n", count); mode = v[i]; /*Update mode*/ } } printf("Mode: %d\n", mode); return 0; }
EDIT: There was a little bug with my code, it’s fixed now
.
One of my colegues made a python version
. Hope he doesn’t mind if I publish it
#!/bin/sh python #-*- coding: utf-8 -*- def makearray(v): """Creates the dictionary with the elements input by the user """ print "Array elements (end with empty line):" while(1): s = raw_input("-> ") # get an element if not s: break try: i = int(s) if v.has_key(i): # if already exists, increment frequency v[i] += 1 else: # if not, create it v[i] = 1 except: # error handling print "not an integer" #----------------------------------------------------------------------- # program # instead of a vector or array, we do this with a dictionary # that way we can keep the frequency count with each entry v = {} makearray(v) # get the mode if len(v): mode = 0 maxfreq = 0 for i in v.keys(): if v[i] > maxfreq: mode = i maxfreq = v[i] print "Mode %d, with frequency %d" % (mode, maxfreq) else: print "Empty array"
Prime factors code in C and Python
Today someone spoke about prime factors and I thought it was something interesting to code. I needed to practice my C so I’ve coded it in C. Here it goes:
#include <stdio.h> #define VMAX 25 int main() { /*Prime numbers < 100 */ int primes[VMAX] = {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97}; int factors[VMAX] = {}; /*Prime factors*/ int repeat[VMAX] = {}; /*Store times each factor repeats*/ int a, i, n=0; printf("Type a number to find it's prime factors: \n"); scanf("%d", &a); /*Start to divide the number by prime numbers while a is not 1*/ for (i=0; i<VMAX; i++){ while ((a != 1) && (a % primes[i] == 0)){ a = a / primes[i]; factors[i] = primes[i]; /*The prime factor is the one being used*/ n++; /*Count how many times each prime is used*/ } if ((a % primes[i] == 0) ) n = 0; repeat[i] = n; n = 0; /*Reinitialize counter*/ } printf("Prime factors:\n"); for (i=0; i<VMAX; i++){ /*Print all factors in the array != 0*/ if (factors[i] !=0){ /*Since x ^ 0 = 1, we have to print x ^ 1 instead*/ if (repeat[i] == 0) printf("%d ^ 1\n", factors[i]); else printf("%d ^ %d\n", factors[i], repeat[i]); } } return 0; }
I really like python but unfortunately I haven’t had the time to code anything with python. Now it’s learning C , then C++ and so on. But this time I wanted to code this in python also. I’m a bit out of practice and my brain was thinking in C. But here it goes.
#! /usr/bin/env/python VMAX = 25 #Prime numbers < 100 primes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97] factors = [0]*VMAX #Prime factors repeat = [0]*VMAX #Store times each factor repeats i = 0 n = 0 k = 0 a = raw_input("Type a number to find it's prime factors:") #Start to divide the number by prime numbers while a is not 1 for i in range(VMAX): while ((a != 1) & (int (a) % primes[i] == 0)): a = int (a) / primes[i] print primes[i] factors[i] = primes[i] # The prime factor is the one being used n = n + 1 #*Count how many times each prime is used print n if (int (a) % primes[i] == 0): n = 0 #Reinitialize counter repeat[k] = n n = 0 k = k + 1 print "Prime factors:" #Print all factors in the array != 0 for i in range(VMAX): if (factors[i] !=0): #Since x ^ 0 = 1, we have to print x ^ 1 instead if (repeat[i] == 0): print factors[i] else: print "%s ^ %s " % (factors[i], repeat[i])
Breathing more now, but not for long
The last few days have been just a tiny bit more quiet and I can finally have *some rest at night. I like being busy but the last weeks have been ridiculous. In a few days work will catch up and take my time away again. Plus I have to study some more for the exams. The good part is that I have some work already done so I think I won’t have to work till very late.
Apart from work and boring stuff, I went with the flow and finally signed up for facebook. I was quite septic but I must admit it was a pleasant surprise.
I’ve discovered, thanks to a University college in facebook a really great site to discover music: thesixtyone . Check it out.
I’m trying out gnome-shell with the new message tray, pretty cool
Check it out as well! I just hope Xorg doesn’t lock on me with KMS…
Bye!

Subscribe by Email