Wstęp do programowania 1

Podobne dokumenty
Programowanie Proceduralne

Wstęp do programowania 1

Programowanie Proceduralne

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

Argumenty wywołania programu, operacje na plikach

Podstawy Programowania. Tablice i wskaźniki cd., argumenty wywołania programu, reguły stylu programowania, asercje

Pobieranie argumentów wiersza polecenia

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

2017 r. STOPA BEZROBOCIA r. STOPA BEZROBOCIA

Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

ODCZYT STANU WODY NA RZECE DRWĘCY mierzone dla posterunku Nowe Miasto Lubawskie

Wykład X. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2016 Janusz Słupik

// Liczy srednie w wierszach i kolumnach tablicy "dwuwymiarowej" // Elementy tablicy są generowane losowo #include <stdio.h> #include <stdlib.

Wykład 1

Języki i paradygmaty programowania 1 studia stacjonarne 2018/19

Materiał uzupełniający do ćwiczen z przedmiotu: Programowanie w C ++ - ćwiczenia na wskaźnikach

Wykład VI. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

dr inż. Jarosław Forenc

Wstęp do Informatyki

Październik Data Dzień tygodnia Szczęśliwy numerek [Wybierz inny miesiąc]

ORGANIZATOR SPORTU DZIECI I MŁODZIEŻY W ŚRODOWISKU WIEJSKIM

Wolumen - część II Budynki Urzędu Gminy Kulesze Kościelne i Ochotniczej Straży Pożarnej Grodzkie Nowe w grupie taryfowej G

Ćwiczenie 5 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

۰ Elementem jednostkowym takiego pliku jest bajt. ۰ Format pliku binarnego: [bajty pliku][eof]

dynamiczny przydział pamięci calloc() memset() memcpy( ) (wskaźniki!! )

Podstawy programowania obiektowego

Procesy. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 9 października 2011

ROK 2007 Sprawozdanie o rynku pracy Styczeń

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

Krótkie wprowadzenie do korzystania z OpenSSL

Część 4 życie programu

IV SEKTOR - HARMONOGRAM WYWOZU ODPADÓW WIELKOGABARYTOWYCH Z BUDYNKÓW WIELORODZINNYCH NA 2015 ROK

Podstawy Programowania

Podstawy Programowania

Podstawy Programowania. Tablice i wskaźniki cd., argumenty wywołania programu, reguły stylu programowania, asercje

Programowanie Proceduralne

Etap 2 - Budowa interfejsu. typedef struct ELEMENT* stos; struct ELEMENT { dane Dane; stos Nastepny; }; struct kolejka { stos Poczatek, Koniec; };

Programowanie Procedurale

Wstęp do Programowania, laboratorium 02

Poprzedni wykład [ ] :

Ćwiczenie 4 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

Dariusz Chaberski. UMK Toruń

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory

Kontrola przebiegu programu

Języki i metody programowania

Alokacja pamięci dla tablicy dwuwymiarowej

Microsoft IT Academy kurs programowania

np. dla p=1 mamy T1(N) N/2 średni czas chybionego wyszukiwania z prawdopodobieństwem q:

Projektowanie klas c.d. Projektowanie klas przykład

Functionalization. Jeszcze o funkcjach i strukturze projektu. Marcin Makowski. 3 grudnia Zak lad Chemii Teoretycznej UJ

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

5 Przygotował: mgr inż. Maciej Lasota

Gniazda BSD. komunikacja bezpołączeniowa

Uzupełnienie dot. przekazywania argumentów

Wykład 6_1 Abstrakcyjne typy danych stos Realizacja tablicowa i za pomocą rekurencyjnych typów danych

tablica: dane_liczbowe

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Wykład 7 Abstrakcyjne typy danych słownik (lista symboli)

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ;

Co nie powinno być umieszczane w plikach nagłówkowych:

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Funkcja (podprogram) void

Wskaźniki. Informatyka

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 9 - sem.iii. Dr inż. M. Czyżak

WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński

Podstawowe algorytmy i ich implementacje w C. Wykład 9

PROGRAMOWANIE w C prolog

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Programowanie Procedurale. Pliki w języku C++

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

Tablice deklaracja, reprezentacja wewnętrzna

Instrukcje sterujące. Programowanie Proceduralne 1

I - Microsoft Visual Studio C++

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle

EGZAMIN MATURALNY 2011 INFORMATYKA

Wymiar czasu pracy w kwartałach 2018r. pełny etat

Wykład I. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

main( ) main( void ) main( int argc, char argv[ ] ) int MAX ( int liczba_1, liczba_2, liczba_3 ) źle!

4. Tablica dwuwymiarowa to jednowymiarowa tablica wskaźników do jednowymiarowych tablic danego typu.

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

HARMONOGRAM ZAJĘĆ J. ANGIELSKI I SEMESTR rok akademicki 2015/2016 zimowy

Obsługa plików. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 25 września 2011

Opisy funkcji /html_node/libc_528.html

Podstawy Programowania Podstawowa składnia języka C++

Języki i paradygmaty programowania 1 studia stacjonarne 2018/19. Lab 9. Tablice liczbowe cd,. Operacje na tablicach o dwóch indeksach.

Wykład 5_2 Algorytm ograniczania liczby serii za pomocą kopcowego rozdzielania serii początkowych

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 24

DANE TEKSTOWE W JĘZYKU C/C++ - TABLICE ZNAKOWE

Funkcje i tablice. Elwira Wachowicz. 23 maja 2013

W języku C dostępne są trzy instrukcje, umożliwiające tworzenie pętli: for, while oraz do. for (w1;w2;w3) instrukcja

Podstawy Informatyki sem. I 2014/2015 studia zaoczne Elektronika i Telekomunikacja!

Transkrypt:

Wstęp do programowania 1 Argumenty funkcji main Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 11

Argumenty funkcji main dwa równoważne sposoby int main(int argc, char* argv[]) int main(int argc, char** argv) Zawartość tablicy argv argv[0] wskaźnik do nazwy programu argv[1],..., argv[argc - 1] wskaźniki do kolejnych argumentów wywołania programu argv[argc] wskaźnik NULL

Zawartość tablicy argv - przykładowy program #include <stdio.h> int main(int argc, char* argv[]) { printf("ilosć argumentów programu = %d\n", argc); for (int k = 0; k < argc; ++k) { printf("%s\n", argv[k]); printf("%p\n", argv[argc]); return 0;

Przykładowy program - wykonanie./mojecho Ilość argumentów programu = 1./mojecho (nil)./mojecho Ala ma kota Ilość argumentów programu = 4./mojecho Ala ma kota (nil)

Przykładowy program - wykonanie./mojecho $PWD Ilość argumentów programu = 2./mojecho /home/bw/roboczy/wyklady/2008-2009/programowanie2/wp2w09 (nil)./mojecho $HOME ls Ilość argumentów programu = 3./mojecho /home/bw ls (nil)

Uproszczona implementacja polecenia systemowego echo #include <stdio.h> int main(int argc, char* argv[]) { for (int k = 1; k < argc; ++k) { printf("%s%s", argv[k], (k < argc - 1)? " " : ""); printf("\n"); return 0;

Przykładowy program - wykonanie./mojecho2./mojecho2 Ala ma kota Ala ma kota

Przykładowy program - wykonanie./mojecho2 $PWD /home/bw/roboczy/wyklady/2008-2009/programowanie2/wp2w09./mojecho2 $HOME ls /home/bw ls

Uproszczona implementacja polecenia systemowego echo - wersja nr 2 #include <stdio.h> int main(int argc, char** argv) { while (--argc) { printf("%s%s", *++argv, (argc > 1)? " " : ""); printf("\n"); return 0;

Sumowanie liczb całkowitych podanych jako argumenty wywołania programu #include <stdio.h> #include <stdlib.h> int main(int argc, char* argv[]) { if (argc < 2) { printf("uzycie: suma liczba1 liczba2...\n"); return 1; long s = 0; for (int k = 1; k < argc; ++k) { s += atoi(argv[k]); printf("suma podanych liczb = %ld\n", s); return 0;

Przykładowy program - wykonanie./suma Uzycie: suma liczba1 liczba2..../suma 1 2 3 Suma podanych liczb = 6./suma 1 2 30 Suma podanych liczb = 33

Wypisywanie nazw miesięcy, których odpowiednie reprezentacje całkowite podawane sa jako argumenty wywołania programu. #include <stdio.h> #include <stdlib.h> #include <string.h> char const* months(int nr); int main(int argc, char* argv[]) { for (int k = 1; k < argc; ++k) { printf("%s\n", months(atoi(argv[k]))); return 0; char const* months(int nr) { static char const* name[] = { "błędny miesiąc", "styczeń", "luty", "marzec", "kwiecień", "maj", "czerwiec", "lipiec", "sierpień", "wrzesień", "październik", "listopad", "grudzień" ; return (nr < 1 nr > 12)? name[0] : name[nr];

Przykładowy program - wykonanie./miesiace 1 styczeń./miesiace 2 3 luty marzec./miesiace 4 8 13 kwiecień sierpień błędny miesiąc

int getline(char* line, int maxlen); int getline(char* line, int maxlen) { if (fgets(line, maxlen, stdin)) return strlen(line); else return 0;

Symulacja programu grep #include <stdio.h> #include <string.h> #include <stdlib.h> int getline(char*, int); int main(int argc, char* argv[]) { const int MAX_LEN = 1024; char line[max_len]; int found = 0; if (argc!= 2) printf("format wywołania: smplgrep wzorzec\n"); else { while (getline(line, MAX_LEN) > 0) { if (strstr(line, argv[1])!= NULL) { printf("%s", line); ++found; return found;

Symulacja programu grep #include <stdio.h> #include <string.h> #include <stdlib.h> #include <stdbool.h> int getline(char*, int); int main(int argc, char* argv[]) { const int MAX_LEN=1024; char line[max_len]; int lineno = 0, c, found = 0; bool except = false, number = false; while (--argc > 0 && (*++argv)[0] == - ) { while ((c = *++argv[0])!= \0 ) { switch(c) { case x : except = true; break; case n : number = true; break; default : printf("grep: nieznana opcja %c\n", c); argc = 0; found = -1; break; //nastepny slajd

Symulacja programu grep - cd. if (argc!= 1) { printf("format wywołania: grep -x -n wzorzec\n"); else { while (getline(line, MAX_LEN) > 0) { ++lineno; if ((strstr(line, *argv)!= NULL)!= except) { if (number) printf("%7d:", lineno); printf("%s", line); ++found; return found;