Język C zajęcia nr 7. Uwagi dotyczące stylu programowania

Podobne dokumenty
Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p.

Języki programowania zasady ich tworzenia

Programowanie komputerowe. Zajęcia 1

1 Podstawy c++ w pigułce.

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

Deklaracje. W większości języków programowania(nie we wszystkich) wymaga się, żeby użyte w programie zmienne były wcześniej zadeklarowane:

W większości języków programowania(nie we wszystkich) wymaga się, żeby użyte w programie zmienne były wcześniej zadeklarowane:

Język C zajęcia nr 5

1 Podstawy c++ w pigułce.

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

Język C zajęcia nr 11. Funkcje

WHILE (wyrażenie) instrukcja;

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

Warto też w tym miejscu powiedzieć, że w C zero jest rozpoznawane jako fałsz, a wszystkie pozostałe wartości jako prawda.

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

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

dr inż. Jarosław Forenc

do instrukcja while (wyrażenie);

WHILE (wyrażenie) instrukcja;

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

I. Podstawy języka C powtórka

Warunki logiczne instrukcja if

Programowanie w C/C++ Instrukcje - konstrukcje powtórka. LABORKA Piotr Ciskowski

EGZAMIN MATURALNY 2011 INFORMATYKA

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wstęp do Programowania, laboratorium 02

Metody numeryczne Laboratorium 2

for (i=0; i<10; i=i+1) instrukcja; instrukcja zostanie wykonana 10 razy for (inicjalizacja; test; aktualizacja) instrukcja;

PROGRAMOWANIE IMPERATYWNE JĘZYK C

Wymiar musi być wyrażeniem stałym typu całkowitego, tzn. takim, które może obliczyć kompilator. Przykłady:

Proste programy w C++ zadania

1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci:

Pzetestuj działanie pętli while i do...while na poniższym przykładzie:

tablica: dane_liczbowe

Warszawa dnia 2 stycznia 2011 r. Zbiór zadań z programowania w języku C do samodzielnego wykonania

Podstawy programowania. Wykład 3 Konstrukcje sterujące. Krzysztof Banaś Podstawy programowania 1

Język C++ zajęcia nr 2

PROGRAMOWANIE W C++ ZADANIA

Zapis algorytmów: schematy blokowe i pseudokod 1

Język C część 1. Sformułuj problem Zanalizuj go znajdź metodę rozwiązania (pomocny może byd algorytm) Napisz program Uruchom i przetestuj czy działa

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

Wstęp do programowania. Wykład 1

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1

1 Wielokrotne powtarzanie tych samych operacji

Programowanie strukturalne i obiektowe

Wstęp do wskaźników w języku ANSI C

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Struktura programu. Projekty złożone składają się zwykłe z różnych plików. Zawartość każdego pliku programista wyznacza zgodnie z jego przeznaczeniem.

Programowanie - instrukcje sterujące

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Programowanie - wykład 4

Metody Metody, parametry, zwracanie wartości

LISTA 5. C++ PETLE for, while, do while

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

Struktura pliku projektu Console Application

Wykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

Funkcje. Wprowadzenie. Mirosław Ochodek

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

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

2 Przygotował: mgr inż. Maciej Lasota

Programowanie w języku C++ Grażyna Koba

Język C, tablice i funkcje (laboratorium)

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10]

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Przetwarzanie sygnałów

Wstęp do programowania

Język C, tablice i funkcje (laboratorium, EE1-DI)

... (środowisko) minut

Programowanie obiektowe i C++ dla matematyków

Część 4 pętla FOR. Instrukcja pętli iteracyjnej FOR. Postać pętli for jest następująca: a)dla jednej instrukcji wykonywanej przez pętlę.

Macierze. Rozdział Działania na macierzach

Praca domowa nr 1. a a b a b ; b c. c a bc d ef gh. 2) Napisz kod sprawdzający poniższe warunki sformułowane w języku naturalnym:

1. Wypisywanie danych

Podstawy Programowania Algorytmy i programowanie

Podstawy programowania C. dr. Krystyna Łapin

Czas pracy: 60 minut

- - Ocena wykonaniu zad3. Brak zad3

W języku C/C++ pomiędzy wskaźnikami a tablicami istnieje bardzo ścisły związek. Do onumerowania elementów w tablicy służą tzw. INDEKSY.

Warsztaty dla nauczycieli

IX. Wskaźniki.(3 godz.)

Podstawy programowania skrót z wykładów:

INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

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

Matematyczne Podstawy Informatyki

do MATLABa programowanie WYKŁAD Piotr Ciskowski

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

Podstawy Programowania C 02

Opisy funkcji /html_node/libc_528.html

Rozwiązanie. #include <cstdlib> #include <iostream> using namespace std;

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Zapisywanie w wybranej notacji algorytmów z warunkami i iteracyjnych

Programowanie I C / C++ laboratorium 01 Organizacja zajęć

Transkrypt:

Język C zajęcia nr 7 Uwagi dotyczące stylu programowania Program można pisać w sposób mniej lub bardziej porządny i systematyczny. Przejrzyste programy pozwalają na znacznie łatwiejszą ich analizę i ewentualne modyfikacje w przyszłości. Programując warto stosować następujące zalecenia, które służą zwiększeniu czytelności programu: nazwy poszczególnych obiektów programu powinny oddawać ich znaczenie, nie należy używać wielu podobnych, niewiele różniących się pomiędzy sobą nazw, najlepiej jest umieszczać po jednej instrukcji w jednym wierszu tekstu programu, nie warto poświęcać czytelności programu dla niewielkiego zwiększenia jego efektywności, nie należy ulepszać programu bez wyraźnej potrzeby, należy umieszczać w programie konieczne komentarze, a unikać zbędnych, stosowanie literałów w wyrażeniach powinno być ograniczone do minimum. Równie istotne jest przyjęcie ustalonych konwencji edycyjnych tekstu źródłowego programu. Obok merytorycznej zawartości programu ważna jest również jego forma. Dla kompilatora istotna jest jedynie treść analizowanego tekstu programu z punktu widzenia składni języka. Dla programisty może być istotna także redakcja tekstu. Dobrze zredagowany

tekst może znacznie zwiększyć czytelność i ułatwić zrozumienie działania programu. Spory efekt w zakresie zwiększania czytelności programu uzyskać można stosunkowo niewielkim kosztem dobierając i stosując odpowiednie spacjowanie poziome. Spacjowanie poziome: Odstępy poziome (znaki spacji i tabulacji) są umieszczane w celu rozdzielenia występujących obok siebie identyfikatorów lub słów kluczowych. W pozostałych przypadkach odstępy w tekście służą zwiększeniu wyrazistości notacji algorytmu reprezentowanego przez program. Przykładowo następująca lista wyrażeń: (a+b*c,d/e-f,g*(h/i+j)-k,m-n) staje się znacznie bardziej czytelna po uzupełnieniu jej spacjami: (a+b*c, d/e-f, g*(h/i+j)-k, m-n) Spacjami można również otaczać niektóre operatory dla uzyskania bardziej przejrzystej struktury złożonych wyrażeń. Wyrażenie: a*b+c*d/e-f/g zyskuje na przejrzystości, gdy występujące w nim operatory sumy i różnicy zostaną odseparowane spacjami: a*b + c*d/e - f/g

Dalsze porządkowanie tekstu źródłowego programu uzyskać można stosując właściwe spacjowanie pionowe. Spacjowanie pionowe: Bardziej złożone instrukcje często zapisywane są w kilku kolejnych liniach tekstu. Bez odpowiedniego podziału na poszczególne linie tekst programu staje się zupełnie nieczytelny. Spróbujmy ustalić do czego służy następujący program: #include <stdio.h> main() int tab[10][10]; int i,k; for ( i=1; i<=9; i++) for (k=1; k<=9; k++) tab[i][k] = i*k; for(i=1;i<=9;i++) for(k=1;k<=9;k++) printf("%3d", tab[i][k]); printf("\n"); ;return 0; Nie jest łatwo stwierdzić, jakie obliczenia wykonuje ten program (jeżeli w ogóle jest to coś sensownego). Główną przyczyną jest niewłaściwe spacjowanie pionowe. Dokładnie ten sam tekst programu podzielony w sposób przemyślany na poszczególne linie pozwala rozpoznać program wyznaczający tabliczkę mnożenia:

#include <stdio.h> main() int tab[10][10]; int i,k; for(i=1;i<=9;i++) for(k=1;k<=9;k++) tab[i][k]=i*k; for(i=1;i<=9;i++) for(k=1;k<=9;k++) printf("%3d",tab[i][k]); printf("\n"); ; return 0; Obok właściwego spacjowania tekstu źródłowego programu dużą rolę w jego czytelności odgrywa przyjęcie i konsekwentne stosowanie odpowiednich wcięć tekstu. Wcięcia tekstu: Najczęściej problem wcinania tekstu dotyczy instrukcji złożonych. Istotne jest w takim przypadku rozmieszczenie logicznych nawiasów oraz.

Pierwszy sposób poleca umieszczać je w pozycji zgodnej z pozycją instrukcji sterującej wcinając jedynie zawartość nawiasów: k=0; while (k<n-1) k=k+1; if (tab[k-1]>tab[k]) x=tab[k-1]; tab[k-1]=tab[k]; tab[k]=x; ; Drugi ze sposobów umieszczania logicznych nawiasów polega na wyrównywaniu ich z instrukcjami składającymi się na blok utworzony przez te nawiasy: k=0; while (k<n-1) k=k+1; if (tab[k-1]>tab[k]) x=tab[k-1]; tab[k-1]=tab[k]; tab[k]=x; ;

Trzeci sposób jest bardziej zwięzły i zaleca umieszczanie nawiasu bezpośrednio po instrukcji sterującej, a odpowiadającego mu nawiasu w osobnej linii w pozycji początku instrukcji. Podobnie jak wyżej, zawartość bloku jest wcinana: k=0; while (k<n-1) k=k+1; if (tab[k-1]>tab[k]) x=tab[k-1]; tab[k-1]=tab[k]; tab[k]=x; ; Programista powinien wybrać jeden z zaprezentowanych sposobów wcinania tekstu lub też być może opracować inny, własny sposób wcinania poszczególnych linii programu i stosować go konsekwentnie we wszystkich pisanych przez siebie programach. Zadania napisz i uruchom programy: 1. Wczytywane liczby naturalne drukować w zapisie o dowolnej podawanej podstawie p, gdzie 16 p 2. 2. Wyszukiwać kolejne liczby naturalne (<=1000) równe sumie kwadratów swoich cyfr w zapisie dziesiętnym. 3. Napisać program realizujący następujące zadanie: wczytać macierz kwadratową liczb rzeczywistych, obliczyć i wydrukować iloczyn sumy elementów macierzy leżących nad główną przekątną i sumy elementów pod główną przekątną.

Wskazówki: Ad. 1 a) Po wczytaniu liczby naturalnej n i podstawy systemu p, obliczać w pętli ilorazy n/p i reszty z dzielenia n%p, zapisując te reszty w tablicy (reszty to cyfry w zapisie o podstawie p); b) Niezerowe elementy tablicy drukować od końca, stosując specyfikator X (zob. opis funkcji printf). Ad. 2 Aby zidentyfikować cyfry danej liczby n w zapisie dziesiętnym, należy postępować jak w Ad. 1 pkt a) przy p = 10; znalezione wartości podnosić do kwadratu i sumować. Ad. 3 Do obliczania sumy elementów stosować pętlę w pętli (instrukcje for).