Versteh den Code Reloaded
Aus reiner Langeweile starte ich hier mal ein neues Forenspiel.
Regeln:
- Wer den aktuellen Code versteht und angeben kann was damit errechnet / erreicht wird, gewinnt.
- Der Gewinner darf einen neuen Code posten.
- Die Codes sollten nicht allzu schwierig sein.
Ich fang mal an, wenn nichts draus wird -> Spiderman Thread.
Code:
#include "stdafx.h"
#include <math.h>
#include <stdlib.h>
#define PI 3.14159265
#define pow_d(x) pow(x,2)
double geheim(double a[], double b[]) {
double top = a[0]*b[0]+a[1]*b[1]+a[2]*b[2];
double bot_left = sqrt((pow_d(a[0])+pow_d(a[1])+pow_d(a[2])));
double bot_right = sqrt((pow_d(b[0])+pow_d(b[1])+pow_d(b[2])));
return acos (top / (bot_left * bot_right)) * 180.0 / PI;
}
int _tmain(int argc, _TCHAR* argv[])
{
double vec_a[3] = { -11, 7, 9 }; // vec = Ein Hinweis!
double vec_b[3] = { 1, 2, 3 };
printf ("***** between a & b: %lf\n", geheim(vec_a,vec_b));
system("pause");
return 0;
}
AW: Versteh den Code Reloaded
//Bogenmaß (rad) zwischen punkt a und punkt b im 3d koordinatensystem?
double top = a[0]*b[0]+a[1]*b[1]+a[2]*b[2]; //Skalarprodukt beider vektoren
double bot_left = sqrt((pow_d(a[0])+pow_d(a[1])+pow_d(a[2]))); //Betrag vektor (Raumdiagonale ?) 1
double bot_right = sqrt((pow_d(b[0])+pow_d(b[1])+pow_d(b[2]))); //Betrag vektor (Raumdiagonale ?) 2
return acos (top / (bot_left * bot_right)) * 180.0 / PI; //in Bogenmaß umrechnen
AW: Versteh den Code Reloaded
Zitat:
Zitat von
Jut4h.tm
Bogenmaß (rad) zwischen punkt a und punkt b im 3d koordinatensystem?
http://i.imgur.com/ScgMm.gif
(Das wollte ich schon lange mal posten :) )
(Punkt a = Vektor a, das lasse ich mal gelten)
Wenn du Lust hast bist du jetzt dran!
AW: Versteh den Code Reloaded
ja gerne ^^
irgendwelche vorgaben?
AW: Versteh den Code Reloaded
Es sollte nicht all zu schwerer Code sein.
AW: Versteh den Code Reloaded
Okay ich versuche es mal damit allzu schwer ist es nicht wenn man sich mit linux und posix auskennt vor der zeit der threads...
Code:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <fcntl.h>
int main(int argc, char *argv[]) {
int pipefd[2];
pid_t ls_pid, wc_pid;
pipe(pipefd);
if ((ls_pid = fork()) == 0) {
dup2(pipefd[1],STDOUT_FILENO);
close(pipefd[0]);
execl("/bin/ls", "ls","-al", NULL);
exit(EXIT_FAILURE);
}
if ((wc_pid = fork()) == 0) {
dup2(pipefd[0], STDIN_FILENO);
close(pipefd[1]);
execl("/bin/grep", "grep","mini", NULL);
exit(EXIT_FAILURE);
}
return EXIT_SUCCESS;
}
AW: Versteh den Code Reloaded
Bitte nicht zu mathematisch! =)
Die Aufgabe eben war eigentlich schon ganz gut; bin auch recht weit in die Nähe der Lösung gekommen nur leider ist es dann an der Mathematik gescheitert.
aber es ist ja auch schon spät :D
AW: Versteh den Code Reloaded
Kein Mathe ^^ mag ich auch nicht
AW: Versteh den Code Reloaded
Der Code listet alle Dateien welche die Zeichenkette "mini" enthalten auf.
AW: Versteh den Code Reloaded
pipt den output vom 1. in den 2. Prozess und filtert alle Dateien die mini im Namen haben
(oder *mini* gehören. user/gruppe)