Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Een...
Transcript of Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Een...
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
1vervolg C
Een programma opbouwen
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
2vervolg C
Maak een programma dat zijn invoer weer wegschrijft als uitvoer, maar met iedere letter vervangen door de letter N plaatsen verderop. N wordt bepaald door de letter die als command-line parameter, wordt meegegeven, waarbij a=0, b=1, etc. Let op: – gebruikt wrap-around, – kleine letters blijven kleine letters, etc– niet-letters niet veranderen
opdracht
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
3vervolg C
• Er moet (1) command-line parameter zijn
• Dat moet een letter zijn
• N wordt bepaald door de letter die als command-line parameter, wordt meegegeven, waarbij. a=0, b=1, etc
• zijn invoer weer wegschrijft als uitvoer
• iedere kleine letter vervangen door de letter N plaatsen verderop.
• wrap-around, dus kleine letters blijven kleine letters
• iedere hoofdletter vervangen door de letter N plaatsen verderop, wrap-around
De opdracht ontleed
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
4vervolg C
Er moet (1) command-line parameter zijn
int main(int argc, char *argv[]){
}
Cesar.exe hello world
argc == 3
argv[0] == ”cesar.exe”
argv[1] == ”hello”
argv[2] == ”world”
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
5vervolg C
Er moet (1) command-line parameter zijn
int main(int argc, char *argv[]){
if( argc ... ){
printf( ”please specify one argument\n” );
return 0;
}}
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
6vervolg C
Dat moet een letter zijn
int main(int argc, char *argv[]){
if( argc ... ){
printf( ”please specify one argument\n” );
return 0;
}
if( ... argc[ 1 ][ ... ] ... ){
printf( ”the argument must be a letter\n” );
return 0;
}}
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
7vervolg C
N wordt bepaald door de letter die als command-line parameter, wordt meegegeven,
waarbij. a=0, b=1, etcint main(int argc, char *argv[]){
Int N;if( argc ... ){
printf( ”please specify one argument\n” );
return 0;
}
if( ... argv[ 1 ][ ... ] ... ){
printf( ”the argument must be a letter\n” );
return 0;
}
N = argv[ 1 ][ 0 ] – ’a’;
Cesar( N );}
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
8vervolg C
zijn invoer weer wegschrijft als uitvoer
void Cesar( int N ){
int C;
...
while( ... ){
...
}
}
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
9vervolg C
iedere kleine letter vervangen door de letter N plaatsen verderop.
void Cesar( int N ){
int C;
...
while( ... ){
C = Verschuif( C, N )
}
}
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
10vervolg C
iedere kleine letter vervangen door de letter N plaatsen verderop.
char Verschuif( char C, int N ){
if( ... C ... ){
}
}
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
11vervolg C
iedere kleine letter vervangen door de letter N plaatsen verderop.
char Verschuif( char C, int N ){
if( ... C ... ){
C = C + N;
}
}
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
12vervolg C
wrap-around, dus kleine letters blijven kleine letters
char Verschuif( char C, int N ){
if( ... C ... ){
C = C + N;
if( C ... ){
C = C - ... ;
}}
}
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
13vervolg C
iedere hoofdletter vervangen door de letter N plaatsen verderop, wrap-around
char Verschuif( char C, int N ){
if( ... C ... ){
C = C + N;
if( C ... ){
C = C - ... ;
}
}
...}
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
14vervolg C
Het geheel#include <stdio.h>
char Verschuif( char C, int N ){
...
}
void Cesar( int N ){
...
}
int main(int argc, char *argv[]){
...
}