Schiffeversenken gabs hier mal
https://www.paules-pc-forum.de/phpBB2/lhtopic…rsenken,30.html
Schiffeversenken gabs hier mal
https://www.paules-pc-forum.de/phpBB2/lhtopic…rsenken,30.html
Hallo,
wie siehts denn mit der Mathematik aus? Nullstellenberechnung, Polynomdivision ... lange her, finde meine Mathe-Vorlesung grad nicht, hilf uns mal auf die Sprünge, nen Ansatz, paar Überlegungen, wirst Du doch sicher schon haben. Zeig mal her. ([url=http://www.paules-pc-forum.de/phpBB2/topic,35224.html]lies mal hier[/url])
ich schreibe die queries in ein file, welches dann ein user mit zB phpmyadmin ausführen lassen kann
Hab keine Ahnung von SQL, kann man INSERT auch mit Bedingung ausführen lassen?
Z.B. wenn ein Datensatz mit einem bestimmten Inhalt vorhanden ist, dass dann der INSERT Befehl nicht ausgeführt wird.
der Fehler kommt duch die Precision-Angaben im sscanf zustande, das geht nur im Formatierungsstring von Ausgabefunktionen (z.B. printf)
nicht: scanf ("%.2f",&kb);
sondern: scanf ("%f",&kb);
dass der Fehler nicht schon nach dem ersten sscanf auftritt hängt damit zusammen dass du dort das .2 nach dem f geschrieben hast
scanf ("%f.2",&ka);
Zitat von MSDNAlles anzeigenCString::Delete
int Delete( int nIndex, int nCount = 1 )
throw( CMemoryException );Return Value
The length of the changed string.
Parameters
nIndex
The index of the first character to delete.
nCount
The number of characters to be removed.
Remarks
Call this member function to delete a character or characters from a string starting with the character at nIndex. If nCount is longer than the string, the remainder of the string will be removed.
also müsste es bei dir vom Ansatz her so aussehen:
strTextKopi.Delete(auf_index, zu_index-auf_index);
je nach dem ob du die < > Zeichen auch weg haben willst oder nicht musst du noch mit +1 oder -1 ergänzen
also Ziel ist es die "Bildqualität" zu vergleichen zwischen einem unkomprimiertten Originalbild und einem daraus erstellten komprimierten Bild
was ist "Bildqualität", nach welchen Kriterien wird sie beurteilt, welche Bildinformationen werden dafür benötigt?
ich kenn mich da nicht so aus, aber ich könnt mir das folgendermaßen vorstellen:
die höchste Qualität besteht, wenn das erstellte Bild in seinen Bildpunkten exakt mit dem Original übereinsteimmt, also die jeweiligen Bildpunkte die gleiche Farbe haben, je größer die Abweichung ist desto schlechter ist die Qualität (gegnüber dem Original)
man könnte also alle Bildpunkte durchgehen und die Farbwerte (RGB-Wert) von Original und Komprimiertem vergleichen, d.h. man muss die Abweichung/Differenz bestimmen, dazu wird man die beiden RGB-Werte in die 3 Farbwerte zerlegen, dann die Differenzen (Betrag, ohne Vorzeichen) der jeweiligen Farben bestimmen und die 3 Differenzen addieren müssen
(würde man den RGB-Wert nicht zerlegen und ihn gleich direkt zur Differenzbildung verwenden würde z.B. eine Rotabweichung stärker eingehen als eine Blauabweichung oder so ähnlich, weiß jetzt nicht genau wie der RGB-Wert zusammengesetzt wird)
die Summe der Differenzen aller Bildpunkte ist dann ein Maß für die Abweichung bzw. Qualität, diese könnte dann noch auf irgend eine Art normiert werden (z.B. Bereich 0-100%)
man braucht also die Farbwerte der einzelnen Bildpunkte, dazu muss man wissen um welche Dateiformate es sich handelt (z.B. .bmp und .jpg) und wie sie aufgebaut sind bzw. wie man an die Werte kommt (fertige Funktionen/Klassen für die verwendete Programmiersprache)
vllt. hilfts dir irgendwie weiter
Gruß
Jamo
http://www.codeproject.com/editctrl/chexedit.asp
http://www.codeproject.com/editctrl/hexedit.asp
oder Du stellst die Membervariable zum Editfeld auf String um und wandelst den eingegebenen String mittels sscanf %x in einen Zahlenwert
#include "stdafx.h"
#include <stdio.h>
int main(int argc, char* argv[])
{
// Variablendeklaration
int wert[5];
double durchschnitt;
int i;
int min;
int max;
int start,ignoriere=4;
for(i=0;i<5;i++)wert[i]=0;
// Erstellung
printf("\t\t\t Mittelwertanalyse \n\n\n");
printf("\tZur Beendigung des Programmes x eingeben!!!\n\n\n\n");
do
{
printf("Bitte Wert eingeben (x zum beenden): "); // Eingabe
if(scanf("%d", & wert[4])==0)break;//wenn keine Zahl, dann raus
if(ignoriere>0)start=ignoriere;
else start=0;
printf("Werte:");
for(i=start; i<5; i++)
{
printf(" %d",wert[i]);
}
printf("\n");
durchschnitt = double(wert[0] + wert[1] + wert[2] + wert[3] + wert[4]) /5.0; // Berechnung des Durchschnittes
printf("Der Durchschnitt betraegt: %lf\n", durchschnitt); // Ausgabe des Durchschnittes
// Herraussuchen des min Wertes
min = wert[4];
for(i=start; i<5; i++)
{
if(wert[i] <= min)
{
min = wert[i];
}
}
printf("min Wert betraegt: %d\n", min); // Ausgabe des min Wertes
// Herraussuchen des max Wertes
max=wert[4];
for(i=start; i<5; i++)
{
if(wert[i] > max)
{
max = wert[i];
}
}
printf("max Wert betraegt: %d\n\n", max); // Ausgabe des max Wertes
for(i=0; i<4; i++) // Array Werte Verschiebung
{
wert[i] = wert[i+1];
}
if(ignoriere>0)ignoriere--;
}
while(1); // Beendigung über break
printf("\n");
return 0;
}
Alles anzeigen
Gruß
Jamo
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#define SEMESTER 8
#define PLAETZE 100
#define MAX_NAME 100
struct Person
{
char *name;
int alter;
};
struct Studiengang
{
Studiengang(); //weiß ich nicht genau ob das ein reiner
//C-Compiler auch als Konstruktor verwendet
char bezeichnung[4];
struct Person *student[SEMESTER][PLAETZE];
};
Studiengang::Studiengang()
{
//die Zeiger lieber sicher mit NULL initialisieren damit sicher gezaehlt werden kann
for(int i=0;i<SEMESTER;i++)
{
for(int n=0;n<PLAETZE;n++)
{
student[i][n]=NULL;
}
}
printf("Personen-Array initialisisert\n"); //zum ausgeben ob die Fkt. als
//Konstruktor aufgerufen wurde
}
int anzahl(struct Studiengang *pStudiengang); //besser waers die Fkt. als Memberfkt.
//in Studiengang zu imlementieren
//und es waere auch besser das Eintragen/Anlegen bzw. Loeschen eines Studenten
//als Memberfkt. zu implementieren
int main(void)
{
struct Studiengang eit;
struct Studiengang inf;
//int i;
//eit.Studiengang(); //falls die Fkt. nicht als Konstruktor aufgerufen wird
//inf.Studiengang();
strcpy(eit.bezeichnung,"EIT");
strcpy(inf.bezeichnung,"INF");
/*Jetzt das besetzen eines Studienplatzes mit Namen und Alter
Wie geht das??? */
//Bsp.:
//#####
//Speicher fuer den student[semester 0][platz 0] reservieren
//**********************************************************
eit.student[0][0]=(struct Person*)malloc(sizeof(struct Person)); //C oder C++
//eit.student[0][0]=new Person; //C++
//Alter eintragen
//***************
eit.student[0][0]->alter=21;
//Name eintragen
//**************
eit.student[0][0]->name=(char*)malloc((size_t)(sizeof(char)*MAX_NAME)); //C oder C++ mittels void *malloc( size_t size );
//eit.student[0][0]->name=(char*)calloc(MAX_NAME,sizeof(char)); //C oder C++ mittels void *calloc( size_t num, size_t size );
//eit.student[0][0]->name=new char [MAX_NAME]; //C++
sprintf(eit.student[0][0]->name,"Hans Wurst");
//Testausgabe
//***********
printf("Name: %s\nAlter: %d\n",eit.student[0][0]->name,eit.student[0][0]->alter);
printf("Gesamtzahl aller Studenten: %d\n",anzahl(&inf)+anzahl(&eit));
//irgendwann vor dem Beenden muessen die Speicherbereiche die mit malloc, calloc oder new reserviert wurden
//wieder frei gegeben werden
//**************************
//zuerst der innere Teil, also das char Array fuer den Namen:
free(eit.student[0][0]->name); //C oder C++
//delete [] eit.student[0][0]->name; //C++
//dann den student
free(eit.student[0][0]);
//delete eit.student[0][0];
return 0;
}
int anzahl(struct Studiengang *pStudiengang)
{
int nZaehler=0;
for(int i=0;i<SEMESTER;i++)
{
for(int n=0;n<PLAETZE;n++)
{
if(pStudiengang->student[i][n]!=NULL)nZaehler++;
}
}
return nZaehler;
}
Alles anzeigen
hab nochwas gefunden, vllt. findest Du dort noch was brauchbares http://www.c-worker.ch/
ich hab damit auch noch nicht gearbeitet
setze den Beispielcode von http://www.codeproject.com/internet/server_client_sockets.asp in ein leeres Win-32 Projekt ein (nicht Konsolenanwendung nehmen beim Erstellen des Projektes in Visual C++)
oder Du änderst die Linker-Einstellungen des Projektes wie bei Henke beschrieben: unter Projekt->Einstellungen->Linker->Projekt Optionen
"/subsystem:console" in "/subsystem:windows" ändern
oder versuche es mit den MFC, CSocket, da findet man sicher auch ne menge bei Codeproject
dann halt:
http://www.codeproject.com/system/AsefPortAccess.asp hier ist auch beschrieben wie man unter WinXP Zugriff auf den Parallelport bekommt, der normalerweise gesperrt ist
http://www.codeproject.com/csharp/csppleds.asp
oder auf http://www.codeproject.com oder bei google nach "parallel port" suchen
lies mal hier nach: http://www.codeproject.com/internet/server_client_sockets.asp
und hier ist noch ne Einführung zu Win-API: http://www.henkessoft3000.de/
also Du meinst eine Serielle Schnittstelle (RS232)
dann hilft Dir vllt. das hier: https://www.paules-pc-forum.de/phpBB2/topic,33351.html
das COM was Du des öfteren im Visual Studio findest steht für Component Object Model und hat was mit wiederverwendbaren Code-Bausteinen (Softwarekomponenten) zu tun, also nix mit der Seriellen Schnittstelle
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#define SEMESTER 8
#define PLAETZE 100
#define MAX_NAME 100
struct Person
{
char *name;
int alter;
};
struct Studiengang
{
char bezeichnung[4];
struct Person *student[SEMESTER][PLAETZE];
};
int main(void)
{
struct Studiengang eit;
struct Studiengang inf;
//int i;
strcpy(eit.bezeichnung,"EIT");
strcpy(inf.bezeichnung,"INF");
/*Jetzt das besetzen eines Studienplatzes mit Namen und Alter
Wie geht das??? */
//Bsp.:
//#####
//Speicher fuer den student[semester 0][platz 0] reservieren
//**********************************************************
eit.student[0][0]=(struct Person*)malloc(sizeof(struct Person)); //C oder C++
//eit.student[0][0]=new Person; //C++
//Alter eintragen
//***************
eit.student[0][0]->alter=21;
//Name eintragen
//**************
eit.student[0][0]->name=(char*)malloc((size_t)(sizeof(char)*MAX_NAME)); //C oder C++ mittels void *malloc( size_t size );
//eit.student[0][0]->name=(char*)calloc(MAX_NAME,sizeof(char)); //C oder C++ mittels void *calloc( size_t num, size_t size );
//eit.student[0][0]->name=new char [MAX_NAME]; //C++
sprintf(eit.student[0][0]->name,"Hans Wurst");
//Testausgabe
//***********
printf("Name: %s\nAlter: %d\n",eit.student[0][0]->name,eit.student[0][0]->alter);
//irgendwann vor dem Beenden muessen die Speicherbereiche die mit malloc, calloc oder new reserviert wurden
//wieder frei gegeben werden
//**************************
//zuerst der innere Teil, also das char Array fuer den Namen:
free(eit.student[0][0]->name); //C oder C++
//delete [] eit.student[0][0]->name; //C++
//dann den student
free(eit.student[0][0]);
//delete eit.student[0][0];
return 0;
}
Alles anzeigen
da gibts doch so einen Dos-Emulator "Dos-Box" oder so, mal mit google suchen, da findest du bestimmt was
ich würd ja auch C empfehlen um mit dem Programmieren anzufangen oder zumindest mal ein bischen damit rumzuspielen
mit dem devcpp Compiler kann ich dir nicht direkt helfen, aber da gibts ein Tutorial
http://de.geocities.com/throni3/ was sich bestimmt auch ganz gut für den Programmiereinstieg eignet und wo auch der devcpp verwendet und auch dessen installation beschrieben wird
zu dem Tutorial und dem Compiler wurde auch schon mal eine Problematik [url=http://www.paules-pc-forum.de/phpBB2/topic,41434.html]hier[/url] im Forum besprochen
Gruß
Jamo