Informatyka 1
Informatyka 1 (EZ1D200 008) (EZ1D200 008)
Politechnika Białostocka
Politechnika Białostocka -- Wydział Elektryczny Wydział Elektryczny
Elektrotechnika, semestr III, studia niestacjonarne II stopnia Elektrotechnika, semestr III, studia niestacjonarne II stopnia
(grupa dodatkowa, uzupełnienie efektów kształcenia) (grupa dodatkowa, uzupełnienie efektów kształcenia)
Rok akademicki 2019/2020 Rok akademicki 2019/2020
Pracownia nr Pracownia nr 6 6
dr inż. Jarosław Forenc
Informatyka 1 (EZ1D200 008), studia niestacjonarne II stopnia dr inż. Jarosław Forenc
Rok akademicki 2019/2020, Pracownia nr 6 2/13
Pętla Pętla while while
while (test)
instrukcja test
prawda fałsz
„dopóki test prawdziwy wykonuj instrukcję”
test - dowolne wyrażenie
(najczęściej wyrażenie logiczne)
instrukcja prawda
Informatyka 1 (EZ1D200 008), studia niestacjonarne II stopnia dr inż. Jarosław Forenc
Rok akademicki 2019/2020, Pracownia nr 6 3/13
Pętla Pętla while while
while (test)
instrukcja instrukcja złożona
int i=0;
int i=0;
while (i<10) i++;
instrukcja prosta
int i=0;
while (i<10) {
printf("%d ",i);
i++;
}
Informatyka 1 (EZ1D200 008), studia niestacjonarne II stopnia dr inż. Jarosław Forenc
Rok akademicki 2019/2020, Pracownia nr 6 4/13
Przykład: suma liczb > 0 Przykład: suma liczb > 0
#include <stdio.h>
int main(void) {
int x, suma = 0;
printf("Podaj liczbe: "); scanf("%d",&x);
Podaj liczbe: 4 Podaj liczbe: 8 Podaj liczbe: 2 Podaj liczbe: 3 Podaj liczbe: 5 printf("Podaj liczbe: "); scanf("%d",&x);
while (x>0) {
suma = suma + x;
printf("Podaj liczbe: "); scanf("%d",&x);
}
printf("Suma liczb: %d\n",suma);
return 0;
}
Podaj liczbe: 5
Podaj liczbe: -2
Suma liczb: 22
Informatyka 1 (EZ1D200 008), studia niestacjonarne II stopnia dr inż. Jarosław Forenc
Rok akademicki 2019/2020, Pracownia nr 6 5/13
Pętla Pętla while while
typowy schemat przetwarzania danych z wykorzystaniem pętli while
printf("Podaj liczbe: ");
printf("Podaj liczbe: ");
wczytanie danych printf("Podaj liczbe: ");
scanf("%d",&x);
while (x>0) {
suma = suma + x;
printf("Podaj liczbe: ");
scanf("%d",&x);
}
printf("Podaj liczbe: ");
scanf("%d",&x);
printf("Podaj liczbe: ");
scanf("%d",&x);
suma = suma + x;
wczytanie danych
operacje na danych wczytanie danych
Informatyka 1 (EZ1D200 008), studia niestacjonarne II stopnia dr inż. Jarosław Forenc
Rok akademicki 2019/2020, Pracownia nr 6 6/13
Przykład: 1 + 2 + … + ? < 100 Przykład: 1 + 2 + … + ? < 100
#include <stdio.h>
int main(void) {
int suma = 0, n = 0;
Ilosc liczb: 13 Suma liczb: 91
while (suma < 100) {
n++;
suma = suma + n;
}
suma = suma - n;
n--;
printf("Ilosc liczb: %d\nSuma liczb: %d\n",n,suma);
return 0;
}
Informatyka 1 (EZ1D200 008), studia niestacjonarne II stopnia dr inż. Jarosław Forenc
Rok akademicki 2019/2020, Pracownia nr 6 7/13
Przykład: skrócenie zapisu Przykład: skrócenie zapisu
while (suma < 100) {
n++;
suma = suma + n;
}
while (suma < 100) suma = suma + ++n;
lub
}
while ((suma = suma + ++n) < 100) ;
while ((suma += ++n) < 100) ;
lub
lub
Informatyka 1 (EZ1D200 008), studia niestacjonarne II stopnia dr inż. Jarosław Forenc
Rok akademicki 2019/2020, Pracownia nr 6 8/13
Pętla
Pętla while while -- błędy błędy
średnik na końcu while - pętla nieskończona:
i = 0;
while (i < 10) ;
brak aktualizacji „i” – pętla nieskończona:
while (i < 10) ; printf("%d ",i++);
i = 0;
while (i < 10) printf("%d ",i);
0 0 0 0 0 0 0 0 0 …
Informatyka 1 (EZ1D200 008), studia niestacjonarne II stopnia dr inż. Jarosław Forenc
Rok akademicki 2019/2020, Pracownia nr 6 9/13
Pętla
Pętla while while -- pętla nieskończona pętla nieskończona
w pewnych sytuacjach celowo stosuje się pętlę nieskończoną:
while (1) {
instrukcja1;
instrukcja2;
… }
Informatyka 1 (EZ1D200 008), studia niestacjonarne II stopnia dr inż. Jarosław Forenc
Rok akademicki 2019/2020, Pracownia nr 6 10/13
Pętla
Pętla while while -- break i break i continue continue
int i=0;
while (i<10)
- continue przerywa while (i<10)
{ i++;
if (i%2==0) continue;
if (i%5==0) break;
printf("%d\n",i);
}
- break przerywa wykonywanie pętli - continue przerywa
bieżącą iterację
Informatyka 1 (EZ1D200 008), studia niestacjonarne II stopnia dr inż. Jarosław Forenc
Rok akademicki 2019/2020, Pracownia nr 6 11/13
Pętla
Pętla do…while do…while
do
instrukcja while (test);
instrukcja
prawda
while (test);
„wykonuj instrukcję dopóki test prawdziwy”
test prawda
fałsz
Informatyka 1 (EZ1D200 008), studia niestacjonarne II stopnia dr inż. Jarosław Forenc
Rok akademicki 2019/2020, Pracownia nr 6 12/13
Pętla
Pętla do…while do…while
int i=0;
do {
- instrukcja:
prosta lub złożona {
i++;
if (i%5==0) break;
if (i%2==0) continue;
printf("%d\n",i);
}
while (i<10);
- break przerywa wykonywanie pętli - continue przerywa
bieżącą iterację
prosta lub złożona
Informatyka 1 (EZ1D200 008), studia niestacjonarne II stopnia dr inż. Jarosław Forenc
Rok akademicki 2019/2020, Pracownia nr 6 13/13