Put the work for this lab into a new folder
public_html\cs1109\lab11
.
In your solutions to Parts 1-4, do not use any built-in functions other than those explicitly mentioned below.
Take a copy of numbers.html
; do not edit it.
The user enters integers separated by spaces, e.g. 3 243 0 -4 1. You can assume
that s/he only enters digits, minus signs and spaces, and no other characters.
You must write numbers.php
, which outputs 'Empty' if the array is empty, or 'All even' if all the user's numbers are
even numbers (i.e. divisible by 2), or 'All odd' if all the user's numbers are odd numbers
(i.e. not divisible by 2), or 'Mixed' otherwise.
You will need trim
and explode
but should use no other built-in functions.
It's time to do something with associative arrays — something simple first.
Take a copy of fruit.html
; do not edit it.
The user chooses a fruit using the radio buttons and enters a quantity into the textfield,
e.g. 10kg of Apples.
You must write fruit.php
, which:
$fruit_prices = array('Apples' => 1.59, 'Pears' => 2.34, 'Kumquats' => 4.05, 'Jujubes' => 2.34);
Note: This does not require a foreach
-loop.
In Part 2 of lab 10, you had to write a program that converted number words to an integer, e.g. from two four one to the integer 241. Today you're going to rewrite this program, making it shorter by using an associative array
Copy your own solution to Part 2 of the lab 10 exercise from your lab10 folder into your lab11 folder. Remove bugs if you have any.
You should now have a form called words_to_int.html
and a PHP
script called words_to_int.php
in your lab11 folder.
Now edit words_to_int.php
: by using an associative array,
make it shorter. Note again: a second foreach
-loop is not needed.
A DNA molecule is a long sequence of nucleotides: A = adenine, G = guanine, C = cytosine and T = thymine. Codons (triplets of nucleotides) encode amino acids; for example, a sequence of three thymine nucelotides (TTT) specifies the amino acid known as phenylalanine (abbreviated Phe).
Here's an associative array. The keys are codons (triplets of nucleotides); the values are the corresponding amino acids.
$genetic_code = array( 'TTT' => 'Phe', 'TCT' => 'Ser', 'TAT' => 'Tyr', 'TGT' => 'Cys', 'TTC' => 'Phe', 'TCC' => 'Ser', 'TAC' => 'Tyr', 'TGC' => 'Cys', 'TTA' => 'Leu', 'TCA' => 'Ser', 'TAA' => 'Stop', 'TGA' => 'Stop', 'TTG' => 'Leu', 'TCG' => 'Ser', 'TAG' => 'Stop', 'TGG' => 'Trp', 'CTT' => 'Leu', 'CCT' => 'Pro', 'CAT' => 'His', 'CGT' => 'Arg', 'CTC' => 'Leu', 'CCC' => 'Pro', 'CAC' => 'His', 'CGC' => 'Arg', 'CTA' => 'Leu', 'CCA' => 'Pro', 'CAA' => 'Gln', 'CGA' => 'Arg', 'CTG' => 'Leu', 'CCG' => 'Pro', 'CAG' => 'Gln', 'CGG' => 'Arg', 'ATT' => 'Ile', 'ACT' => 'Thr', 'AAT' => 'Asn', 'AGT' => 'Ser', 'ATC' => 'Ile', 'ACC' => 'Thr', 'AAC' => 'Asn', 'AGC' => 'Ser', 'ATA' => 'Ile', 'ACA' => 'Thr', 'AAA' => 'Lys', 'AGA' => 'Arg', 'ATG' => 'Met', 'ACG' => 'Thr', 'AAG' => 'Lys', 'AGG' => 'Arg', 'GTT' => 'Val', 'GCT' => 'Ala', 'GAT' => 'Asp', 'GGT' => 'Gly', 'GTC' => 'Val', 'GCC' => 'Ala', 'GAC' => 'Asp', 'GGC' => 'Gly', 'GTA' => 'Val', 'GCA' => 'Ala', 'GAA' => 'Glu', 'GGA' => 'Gly', 'GTG' => 'Val', 'GCG' => 'Ala', 'GAG' => 'Glu', 'GGG' => 'Gly' );
Take a copy of dna_to_acids.html
; do not edit it.
The user enters a string of nucleotides, e.g. "TTTTCTGAT".
Write dna_to_acids.php
, which takes the string that the user enters into the
text field and outputs the corresponding sequence of acids. For example, for
"TTTTCTGAT", the output is "PheSerAsp".
If the user enters a character other than uppercase A, G, C or T, or if the length of the user's input is not a multiple of three (e.g. "TTTG"), then do not output any amino acids — instead, simply output a message of complaint to the user (just one message, not one per mistake).
Apart from trim
and array_key_exists
, the only other built-in
function you can use is str_split
.
It's your job to work out how to use it from its entry in the PHP manual
(although you can, of course, ask for help).
Note to biologically sophisticated students: In this exercise, we do not take any special account of start and stop codons.
Deadline for Lab 11: 1pm, Tuesday 22nd January.
If you have named your files and folders correctly, your work will be collected automatically at that time by my software.
Remember that challenge exercises are always optional. They do not form part of your year's work and they are not worth any marks. They are designed for those students who finish the main exercise quickly and easily, and wish to explore further.
Take a copy of from_roman.html
; do not edit it.
The user enters a number written in Roman numerals.
Write from_roman.php
, which outputs the decimal integer that
corresponds to the user's input, e.g. if the user enters MXIV, your
program outputs 1014.
Try to avoid looking for algorithms on the Web!
Leave both files in your lab11
folder, and I will take a look at them.