Laboratorium 6
1. Cel ćwiczenia
Celem ćwiczenia jest zapoznanie się z obsługą C.
2. Przykłady
Zad1
Napisz program liczący silnie iteracyjnie i rekurencyjnie. Na wejście programu podawana będzie liczba, która jest parametrem funkcji.
#include <stdio.h>
#include <conio.h>
int silniaiteracyjnie(int x)
{
int i,silnia = 1;
for(i=1; i<=x; i++)
{
silnia *= i;
}
return silnia;
}
int silniarekurencyjnie(int x)
{
if(x==0)
{
return 1;
}
else
{
return x*silniarekurencyjnie(x-1);
}
}
int main(void)
{
int a,b;
printf("Z jakiej liczby mam obliczyc silnie iteracyjnie i rekurencyjnie? Podac liczba >0\n");
scanf("%d",&a);
if(a>0){
b = silniaiteracyjnie(a);
printf("Silnia iteracyjnie = %d\n",b);
b = silniarekurencyjnie(a);
printf("Silnia rekurencyjnie = %d\n",b);
}
if(a<=0){
printf("Podaj liczbe poprawnie\n");
}
getch();
}
Zad2
Napisać program wczytujący napis, a następnie szyfrujący go przez kolejne pobieranie elementów z obu końców napisu (element z początku przed elementem z końca) aż do osiągnięcia środka napisu. Na przykład napis „Pozdrowienia” po zaszyfrowaniu „Paoiznderiow” (użyć pętli while).
#include <stdio.h>
#include <string.h>
int main(void){
char nap[80];
int i,j;
printf("Wprowadz komunikat:\n");
gets(nap);
/*szyfrowanie*/
i=0;j=strlen(nap)-1;
while(i<=j){
if(i<j)printf("%c%c",nap[i],nap[j]);
else printf("%c",nap[i]);
i++;j--;
}
return 0;
}
Zad3
Napisać program, który porównuje dwa napisy. Napisy są podawana jako parametry, int main(int argc, char *argv[ ]). Zastosować funkcję strcmp. Funkcja strcmp() zwraca liczbę mniejszą od zera, gdy s1 < s2, 0 gdy s1 jest taki sam jak s2 oraz liczbę większą od zera gdy s1 > s2.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char *argv[ ]){
int i;
if(argc!=3){
printf("Nalezy podac dwa argumenty.\n");
exit(1);
}
i=strcmp(argv[1], argv[2]);
if(i<0)printf("\n %s jest rozny od %s",argv[2],argv[1]);
else if(i>0)printf("\n jest rozny od < %s",argv[2],argv[1]);
else printf("\n Sa takie same");
return 0;
}
3. Program ćwiczenia
Zad4
Napisać program zliczający liczbę znaków spacji, przecinków oraz kropek w ciągu znaków. Do określenia kategorii znaku należy skorzystać z instrukcji switch.
Zad5
Napisać program, który pobiera 10 liczb z klawiatury, następnie wyświetla sumę liczb parzystych i liczb nieparzystych (użyć tablicy).
Zad6
Napisać program, który pyta o podanie hasła 3 razy. W przypadku gdy hasło zostaje źle wpisane wyświetla się napis „Dostęp zabroniony”. Jeśli hasło zostało dobrze wpisane wyświetla się napis „Logowanie powiodło się”.
Zad7
Napisać program „komputerowa książka telefoniczna”. Program będzie używać następujących danych
Char telefon [ ][2][40]={
”Jozef”,”622-1010”,
”Maciej”, ”622-1234”,
”Bernadetta”,”629-0125”,
”Luis”, ”628-7193”
}
Pobierać ma imię osoby, kolejno ma wyświetlać telefon danej osoby (użyć tablic).
3
Podstawy Informatyki