Thursday, 16 April 2009
Tolle Übungsaufgabe in C: ein simpler Konsolentaschenrechner der addieren, multiplizieren, subtrahiren und divieren kann. Ausserdem soll das Programm beendet werden wenn man ‘q’ eingibt.
/***********************
* Ein einfacher Taschenrechner
*
* Rainer Hihn
*/
#include
void exit(int);
float calculate(char optr, float opr1, float opr2)
{
float rErg = 0;
switch(optr) {
/**
* addieren
*/
case '+':
rErg = opr1 + opr2;
break;
/**
* subtrahieren
*/
case '-':
rErg = opr1 - opr2;
break;
/**
* multiplizieren
*/
case '*':
rErg = opr1 * opr2;
break;
/**
* dividieren
*/
case '/':
rErg = opr1 / opr2;
break;
/**
* Wenn kein erlaubter
* Operator eingegeben wurde
*/
default:
printf("Falscher Operator \n");
exit(1);
}
return rErg;
}
int main(void)
{
/**
* Variablendeklaration
*/
char cOptr;
float fOpr1;
float fOpr2;
float fErg;
while(1)
{
printf("Eingabe: Operator Operand1 Operand2 \n");
/**
* Benutzereingabe Operator
*/
printf("Bitte Eingabe Operator \n");
scanf(" %c", &cOptr);
/**
* Programm wird beendet wenn
* 'q' eingeben wird
*/
if(cOptr == 'q')
{
break;
}
/**
* Benutzereingabe Operand 1
*/
printf("Bitte Eingabe Operand1: \n");
scanf(" %f", &fOpr1);
/**
* Benutzereingabe Operand 2
*/
printf("Bitte Eingabe Operand2: \n");
scanf(" %f", &fOpr2);
if(cOptr == '/' && fOpr2 == 0)
{
printf("ehm ... nein? \n");
break;
}
/**
* Ergebnis berechnen und ausgeben
*/
fErg = calculate(cOptr, fOpr1, fOpr2);
printf("%f %c %f = %f \n\n", fOpr1, cOptr, fOpr2, fErg);
}
return 0;
}
Tags: c, taschenrechner
Posted in Allgemein | No Comments »
Thursday, 16 April 2009
Tolle Übungsaufgabe in C: ein Programm das eine Dezimalzahl in eine Dualzahl umwandelt.
/***********************
* Umrechnung Dezimalzahl
* nach Dualzahl
*
* Rainer Hihn
*/
#include
int main(void)
{
/**
* Variablendeklaration
*/
int iDezi = 0;
int iDual[16] = {0};
int i = 0;
int iErg = 0;
int iRest = 0;
/**
* Einlesen der Dezimalzahl
*/
printf("Geben Sie eine Dezimalzahl ein: \n");
scanf("%i", &iDezi);
printf("\n");
/**
* Pruefen ob die Dezimalzahl
* groesser als 16 bit ist
*/
if(iDezi > 65536)
{
printf("Geben Sie eine Dezimalzahl ein die kleiner als 65.536 ist \n");
}
else{
iErg = iDezi;
i = 0;
while(iErg > 0)
{
if(iErg % 2 == 0)
{
iDual[i] = 0;
}
else {
iDual[i] = 1;
}
iErg = iErg / 2;
i++;
}
/**
* Ausgabe der Dualzahl
*/
i = 15;
for(i = 15; i >= 0; i--)
{
printf("%i", iDual[i]);
}
printf("\n");
}
return 0;
}
Tags: c, dezimalzahl, dualzahl
Posted in Allgemein | No Comments »
Tuesday, 7 April 2009
Wer beim Benutzen der Ports-Collection unter FreeBSD mal über den Fehler stolpern sollte:
fusefs-kmod requires the userland sources to be installed. Set SRC_BASE if it is not in /usr/src.
Lösung:
sysinstall
Dann Configure -> Distributions -> src -> base + sbin + sys auswählen und installieren.
Tags: FreeBSD, konsole
Posted in Allgemein | No Comments »
Thursday, 26 March 2009
Tolle Übungsaufgabe in C: eine Ascii-Tabelle anzeigen.
/***********************
* Ascii Tabelle
*
* Rainer Hihn
*/
#include
int main(void)
{
int Start = 32;
int Ende = 55;
int i = 0;
int j = 0;
for(i = Start; i <= Ende; i++)
{
for(j = 0; j <= 3; j++)
{
printf("%i ", i+(j*24));
printf("%c\t", i+(j*24));
}
printf("\n");
}
}
Tags: c
Posted in Allgemein | No Comments »
Friday, 27 February 2009
Plugin für XChat um den aktuellen Titel in audacious anzuzeigen:
Download
Das Ausgabeformat entspricht dem Format der audacious Playlist.
Aufruf erfolg aus XChat raus mit
/audacious
Tags: audacious, Perl, xchat
Posted in Allgemein | 1 Comment »
Wednesday, 18 February 2009
So kann man aus einem PostgreSQL Timestamp einen Unix Timestamp machen:
select extract(epoch from "timestamp"(postgres_timestamp)) as unix_timestamp from table
Tags: postgres, PostgreSQL
Posted in Allgemein | No Comments »
Tuesday, 10 February 2009
Mit folgendem Befehl kann man mittels mplayer einzelne Bilder aus Videos extrahieren:
mplayer -frames 10 -ss 60 -vo png outdir=/home/foo/:quality=75 /path/to/video.avi
-vo png definiert das Bildformat (möglich wäre hier z.B. auch “jpeg”)
-outdir=/home/foo/test/ definiert das Verzeichnis in dem das Bild gespeichert werden soll
-frames 10 definiert wieviele Bilder extrahiert werden sollen
-ss 200 definiert das Offset, also die Stelle im Video, an der die Bilder extrahiert werden sollen
Tags: konsole, konvertieren, mencoder, mplayer
Posted in Allgemein | No Comments »
Monday, 9 February 2009
Es gibt einige fertige JavaScripts mit denen man genaue Informationen über Dateiuploads bekommen kann (z.B. Progress Bars):
http://t.wits.sg/misc/jQueryProgressBar/demo.php
http://framework.zend.com/manual/en/zend.progressbar.html
Allerdings funktionieren diese Scripte nicht mit einer Standardinstallation von PHP5, da eine Extension fehlt.
Folgende Fehlermeldung taucht auf:
PHP Fatal error: Call to undefined function uploadprogress_get_info()
Um diese Funktion benutzen zu können muss pear installiert werden.
apt-get install php-pear
Danach muss die Extension installiert werden:
pecl install uploadprogress
Un in die php.ini geschrieben werden:
extension=uploadprogress.so
Wenn man jetzt folgende Fehlermeldung erhält:
sh: phpize: command not found
ERROR: `phpize' failed
Muss man noch das Paket php5-dev installieren:
apt-get install php5-dev
Tags: apache, Debian, javascript, PHP, zend-framework
Posted in Allgemein | No Comments »
Thursday, 5 February 2009
Plugin für XChat um den aktuellen Titel (mit Interpret und Album) aus Exaile anzuzeigen:
Download
Die Ausgabe sieht so aus:
* vesperlynd is listening to 'Bob Dylan - 4Th Time Around' from 'Blonde On Blonde'
Aufruf erfolg aus XChat raus mit
/exaile
Tags: exaile, Perl, xchat
Posted in Allgemein | No Comments »
Tuesday, 3 February 2009
Mit dem im Zend Framework enthaltenen Zend Translate kann man komfortabel international programmieren.
Beispiel mit Zend_Translate_Adapter_Array:
In der de.php werden die deutschen Sprachvariablen gespeichert.
/**
* de.php
*/
return array(
'message1' => 'das ist die erste Nachricht'
);
In der en.php die englischen usw.
/**
* en.php
*/
return array(
'message1' => 'this is the first message'
);
Initialisierung und Ausgabe:
/**
* index.php
*/
$translate= new Zend_Translate('array', './lang/en.php', 'en');
echo $translate->_("message1");
Benutzung mit smarty:
$var = $translate->_("message1");
$s->assign("var", $var);
Tags: i18n, l10n, PHP, smarty, zend, zend-framework
Posted in Allgemein | No Comments »