php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.01.2011, 00:40  
Neuer Benutzer
 
Registriert seit: 08.01.2011
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
finke befindet sich auf einem aufstrebenden Ast
Standard Variation ermitteln

Hi, Ich hab folgendes Problem. Ich wollte mal nen Skript schreiben, welches logische Schaltungen Überprüfen soll.
Dabei wird zuerst nach der Anzahl (k) der Eingänge gefragt und anschließend eine Tabelle Ausgegeben, welche k+1 Spalten (Eingänge + 1 Ausgang) und 2^k Zeilen enthält.
Dabei sollen die ersten k Spalten mit einer Variation 2^k befüllt werden.
Beispiel: für k = 1:
AY
0-
1-
k=2:
ABY
00-
10-
01-
11-
k=3
ABCY
000-
100-
010-
001-
110-
101-
011-
111-

Die Letzte Zeile Soll jeweils nach den Bedingungen einer Schaltwehrtabelle eingegeben werden. Dazu eine logischer Ausdruck und zum Schluss wird jede Zeile durchgearbeitet, ob sie für den Ausdruck Wahr ist. Wenn alle Zeilen Wahr sind, ist die Schaltung für diese Schaltbelegungstabelle korrekt.

Kann mir wer Helfen wie ich die Tabelle befüllen muss? Steh um Kurz nach halb 1 etwas auf dem Schlauch.

Schonmal danke falls jemanden was dazu einfällt.
finke ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 08.01.2011, 01:03  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.268
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Hi,

ich schreib dir mal ein Skript, dass zumindest deine Tabelle raushaut, was du mit "-" bzw. deinem letzten Abschnitt meinst verstehe ich nicht. Habs nicht mehr so mit Technischer Informatik. Du meinst die Verschaltung der Eingangswerte?

Edit:
PHP-Code:
<?php
$k 
max(1, @$_GET['k'] * 1);
?>

<html>
<body>

<form action="" method="get">

    K: <input name="k" value="<?php echo $k ?>" />
    <input type="submit" />

</form>
    
<?php if ($k 0): ?>
<hr />

<table>
    <thead>
        <tr>
            <?php for ($i 0$k $k; ++$i): ?>
            <th><?php echo chr(65 $i?></th>
            <?php endfor ?>
            <th>Y</th>
        </tr>
    </thead>
    <tbody>
        <?php for ($i 0$x pow(2,$k); $i $x; ++$i): ?>
        <?php $bin str_pad(decbin($i), $k"0"STR_PAD_LEFT); ?>
        <tr>
            <?php foreach (str_split($bin) as $bit): ?>
            <td><?php echo $bit ?></td>
            <?php endforeach ?>
            <td>-</td>
        </tr>
        <?php endfor ?>
    </tbody>
</table>

<?php endif ?>

</body>
</html>
Sowas? (am Besten nicht wie ich 78 eingeben )
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 08.01.2011, 01:08  
Neuer Benutzer
 
Registriert seit: 08.01.2011
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
finke befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
<!DOCTYPE HTML>
<html>
<head>
<title>Test</title>
<script src="jquery-min.js" type="text/Javascript">
</script>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" methode="GET">
<table>
<tr><td>Anzahl an Eing&auml;ngen:</td><td><input type="text" name="anz_E" value="<?php echo (isset($_GET['anz_E'])?intval($_GET['anz_E']):0);?>"></td></tr>
<tr><td colspan="2"><input type="submit"></td></tr>
</table>
</form>
<?php
if(isset($_GET['anz_E']) && $_GET['anz_E'] >0){
$_GET['anz_E'] = intval($_GET['anz_E']);
if(
$_GET['anz_E']>20){ echo 'eingabe zu gro&szlig;'; die();}
?>
<form>
<table>
<tr><td colspan="<?php echo $_GET['anz_E'];?>">Eing&auml;nge</td><td>Ausgang</td></tr>
<tr>
<?php
for($i 0$i <$_GET['anz_E'];$i++){
echo 
'<td>'.chr($i+65).'</td>';
}
echo 
'<td>Y</td></tr>';
$anz intval(pow(2$_GET['anz_E']));
for(
$i 0$i<$anz$i++){
echo 
'<tr>';
for(
$j 0$j $_GET['anz_E'];$j++){
// Bedingungen für value
$value 0;
// ende bedingungen
echo '<td><input type="text" name="'.chr($j+65).$i.'" value="'.$value.'"></td>';
}
echo 
'<td><input type="text" name="Y'.$i.'"></td></tr>';
}
?>
</table>
</form>
<?php
}
?>
</body>
</html>
Die Y Spalte ist jeweils der Ausgang. Da der einzugeben ist wird der einfach erst mal leer gelassen.
Danke, Auf den Ansatz bin ich jetzt vor Schreck gar nicht gekommen.

Geändert von finke (08.01.2011 um 01:26 Uhr).
finke ist offline   Mit Zitat antworten
Alt 08.01.2011, 01:28  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.268
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Achso. Ich hatte es grade etwas umgebaut. Ist dein Problem damit erledigt oder fängts damit erst an?

PHP-Code:
<?php
$k         
max(1, @$_GET['k'] * 1);
$functions = array('bitwise_or''bitwise_and');
$f         = isset($_GET['f']) ? $_GET['f'] : 0;
$f         = (int)max(0min(count($functions) - 1$f 1));
$function  $functions[$f];

function 
bitwise_or()
{
    
$args func_get_args();
    
$res  array_shift($args);
    if (empty(
$args)) {
        return 
'-';
    }
    foreach (
$args as $arg) {
        
$res |= $arg;
    }
    return 
$res;
}

function 
bitwise_and()
{
    
$args func_get_args();
    
$res  array_shift($args);
    if (empty(
$args)) {
        return 
'-';
    }
    foreach (
$args as $arg) {
        
$res &= $arg;
    }
    return 
$res;
}
?>

<html>
<head>
    <style>
        th, td {
            padding: 0.2em 0.5em;
            font-family: Courier;
        }
        
        th {
            border-bottom: 0.1em solid black;
        }
        
        td.on {
            background-color: silver;
        }
        
        td.off {
            background-color: red;
        }
    
        .output {
            border-left: 0.1em solid black;
        }
    </style>
</head>
<body>

<form action="" method="get">

    K:
    <input name="k" value="<?php echo $k ?>" />
    <select name="f">
        <?php foreach ($functions as $i => $func): ?>
        <option<?php if ($i == $f) echo ' selected'?> value="<?php echo $i ?>"><?php echo $func ?></option>
        <?php endforeach ?>
    </select>
    <input type="submit" />

</form>
    
<?php if ($k 0): ?>
<hr />

<table cellspacing="0">
    <thead>
        <tr>
            <?php for ($i 0$i $k; ++$i): ?>
            <th><?php echo chr(65 $i?></th>
            <?php endfor ?>
            <th class="output">Y</th>
        </tr>
    </thead>
    <tbody>
        <?php for ($i 0$x pow(2,$k); $i $x; ++$i): ?>
        <?php $bin    str_pad(decbin($i), $k"0"STR_PAD_LEFT); ?>
        <?php $bits   str_split($bin); ?>
        <?php $output call_user_func_array($function$bits?>
        <tr>
            <?php foreach ($bits as $bit): ?>
            <td><?php echo $bit ?></td>
            <?php endforeach ?>
            <td class="output <?php echo $output 'on' 'off' ?>"><?php echo $output ?></td>
        </tr>
        <?php endfor ?>
    </tbody>
</table>

<?php endif ?>

</body>
</html>
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 08.01.2011, 01:44  
Neuer Benutzer
 
Registriert seit: 08.01.2011
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
finke befindet sich auf einem aufstrebenden Ast
Standard

Ich brauch halt die Input Felder, um damit anschließend die Spalten mit der Formel zu vergleichen.
PHP-Code:
<!DOCTYPE HTML>
<html>
<head>
<title>Test</title>
<script src="jquery-min.js" type="text/Javascript">
</script>
<script type="text/Javascript">
function ceck(){
}
</script>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" methode="GET">
<table>
<tr><td>Anzahl an Eing&auml;ngen:</td><td><input type="text" name="anz_E" value="<?php echo (isset($_GET['anz_E'])?intval($_GET['anz_E']):0);?>"></td></tr>
<tr><td colspan="2"><input type="submit"></td></tr>
</table>
</form>
<?php
if(isset($_GET['anz_E']) && $_GET['anz_E'] >0){
$_GET['anz_E'] = intval($_GET['anz_E']);
if(
$_GET['anz_E']>10){ echo 'eingabe zu groß'; die();}
?>
<form>
<table>
<thead>
<tr><td colspan="<?php echo $_GET['anz_E'];?>">Eing&auml;nge</td><td>Ausgang</td></tr>
<tr>
<?php
for($i 0$i <$_GET['anz_E'];$i++){
echo 
'<td>'.chr($i+65).'</td>';
}
echo 
'<td>Y</td></tr>
</thead><tbody>'
;
for(
$i 0$anz pow(2$_GET['anz_E']); $i<$anz$i++){
$value str_split(str_pad(decbin($i), $_GET['anz_E'], "0"STR_PAD_LEFT));
echo 
'<tr>';
for(
$j 0$j $_GET['anz_E'];$j++){
echo 
'<td><input type="text" name="'.chr($j+65).$i.'" value="'.$value[$j].'"></td>';
}
echo 
'<td><input type="text" name="Y'.$i.'"></td></tr>';
}

?>
<tr><td colspan="<?php echo $_GET['anz_E']; ?>">Formel:</td></tr>
<tr><td colspan="<?php echo $_GET['anz_E']; ?>"><input type="text" name="formel"><input type="button" onclick="check();" value="Kontrolle"></td></tr>
</tbody>
</table>
</form>
<?php
}
?>
</body>
</html>
Jetzt fehlt nur noch die Funktion Check, die den Ausdruck aus Formel mit den einzelnen Spalten vergleicht.

Hat wer erfahrung? Lieber die werte via Ajax/PHP auswerten oder gleich alles in JS umsetzen?
finke ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
File modification time einer .js Datei mit js ermitteln papalangi_44 JavaScript, Ajax und mehr 4 04.01.2011 21:09
[Erledigt] Upload: Dateigröße VOR Start des Uploads ermitteln tobobant JavaScript, Ajax und mehr 9 18.12.2010 20:00
Einzeltreffer von MATCH ... AGAINST ... ermitteln proud Datenbanken 3 09.05.2008 08:31
Google Adwords - echten Referer ermitteln NetLook PHP Tipps 2006 2 12.05.2006 08:40
Die Position ein. Datensätzes aus einer Datenliste ermitteln Locutus007 Datenbanken 8 07.03.2006 16:59
Dateiname, Dateigröße ermitteln HTML, Usability und Barrierefreiheit 5 29.01.2006 22:16
Zeitlichen Fortschritt ermitteln Datenbanken 5 22.10.2005 15:50
build nummer des bs ermitteln ... nur bei microsoft's bs!!! PHP Tipps 2005-2 2 24.07.2005 15:59
Besucher mit den meisten GB Einträgen ermitteln! Datenbanken 7 21.04.2005 12:09
Bildschirmauflösung ermitteln? Pimbolie1979 HTML, Usability und Barrierefreiheit 13 16.01.2005 01:28
pixelbreite eines Wort ermitteln... 18inch PHP Tipps 2005 5 07.01.2005 22:55
CRC Summe einer Datei ermitteln?? PHP Tipps 2004 1 14.10.2004 09:23
[Erledigt] Tabellenname eines Feldes ermitteln PHP-Fortgeschrittene 3 22.09.2004 15:49
Referrer ermitteln? PHP Tipps 2004 8 13.09.2004 13:43
Anzahl von DS ermitteln Datenbanken 7 19.07.2004 19:53

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php foreach input name ermitteln, value=\'<?php echo $_get[\'k\']; ?>\' />, php if variationen, <table><tr><td> zellen vergleichen php javascript, html formeln tr, jquery td zellen vergleichen, php summe aus zwei input felder ohne submit auswerten, variation php von zahlen

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:20 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum