Niech wynik od 0 do 200F wyświetla w trzech kolumnach: F = (wartość) C = (wyliczona wartość) K = (wyliczona wartość)

Podobne dokumenty
Zadania: 1. Funkcja przeliczająca F na C: float FtoC(float f){ return (f 32.0) * 5.0 / 9.0; }

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p.

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 7. Karol Tarnowski A-1 p.

Programowanie proceduralne w języku C++ Podstawy

C++ - [1-3] Debugowanie w Qt Creator

Wprowadzenie do środowiska Qt Creator

Programowanie Systemów Czasu Rzeczywistego

I - Microsoft Visual Studio C++

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Programowanie - wykład 4

Spis treści JĘZYK C - ŚLEDZENIE WYKONANIA PROGRAMU, DEBUGGER. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu

Programowanie komputerowe. Zajęcia 1

Utworzenie pliku. Dowiesz się:

Programowanie w Javie

Informatyka I : Tworzenie projektu

I. WSTĘP. Przykład 1. Przykład 2. Programowanie czyli tworzenie programów komputerowych (aplikacji komputerowych)

1 Podstawy c++ w pigułce.

Aplikacje w środowisku Java

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

CODE::BLOCKS & VALGRIND OPRACOWAŁ MICHAŁ BETHKE

Wstęp do programowania. Wykład 1

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI: 2 CELE LEKCJI: 2.1 Wiadomości: 2.2 Umiejętności: 3 METODY NAUCZANIA: 4 ŚRODKI DYDAKTYCZNE:

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Laboratorium 1. Programowanie II - Kierunek Informatyka. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

C++ wprowadzanie zmiennych

1.Wstęp. 2.Generowanie systemu w EDK

Platforma.NET. Laboratorium nr 1 Podstawy języka C#

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

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

Programowanie w środowisku graficznym GUI

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Podstawy Programowania

Rys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom:

Wyjątki (exceptions)

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

1. Wypisywanie danych

Programowanie proceduralne w języku C++ Pojęcia podstawowe - kod źródłowy

Zaawansowane aplikacje internetowe - laboratorium

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw

Laboratorium 1 - Programowanie proceduralne i obiektowe

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Wstęp do Programowania, laboratorium 02

Krótki kurs obsługi środowiska programistycznego Turbo Pascal z 12 Opracował Jan T. Biernat. Wstęp

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Laboratorium 1. I. Zainstaluj program Eclipse (wersja C/C++ w odpowiednim systemie operacyjnym

Wprowadzenie do laboratorium. Zasady obowiązujące na zajęciach. Wprowadzenie do narzędzi wykorzystywanych podczas laboratorium.

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

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

1 Podstawy c++ w pigułce.

Rozdział 2. Debugowanie kodu

Podstawy Programowania. Wykład 1

NETBEANS PROFILER TOMASZ ŁUKASZUK

Programowanie Komputerów 2FD. Materiały pomocnicze do laboratorium

Visual Basic Debugging and Error Handling

2. W oknie dialogowym Choose Toolbox Items w zakładce.net Framework Components naciskamy przycisk Browse...

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Instrukcja pomocnicza

Programowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35

I. Podstawy języka C powtórka

Programowanie C++ Wykład 1 - Aplikacje konsowlowe w środowisku QT. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Archiwum DG 2016 PL-SOFT

DYNAMICZNE PRZYDZIELANIE PAMIECI

do instrukcja while (wyrażenie);

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

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

KONFIGURACJA NOWEGO PROJEKTU W CODE COMPOSER STUDIO

Podstawy języka skryptowego Lua

Tworzenie oprogramowania

Pobieranie edytora CodeLite

Platformy Programowania

Projektowanie z użyciem procesora programowego Nios II

Programowanie Systemów Wbudowanych

Programowanie. Ćwiczenie Język C. Środowisko programowania Visual Studio

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

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

Wstęp. Opis programu :

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady

Microsoft Visual Studio: zintegrowane środowisko programistyczne (IDE), umożliwia tworzenie samodzielnych aplikacji, aplikacji sieciowych, usług

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

Wprowadzenie do biblioteki klas C++

Informatyka, Ćwiczenie Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

Praca w środowisku Visual Studio 2008, Visual C

Notatka Aplikacyjna NA 03006PL Maj 2016

Programowanie niskopoziomowe

#include <iostream> using namespace std; void ela(int); int main( ); { Funkcja 3. return 0; }

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

Tworzenie okna dialogowego w edytorze raportu SigmaNEST. część 1

Programowanie strukturalne i obiektowe. Funkcje

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Nagrywamy podcasty program Audacity

Transkrypt:

Lab 3 - Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Zadanie 1 - Wykorzystaj program z poprzednich zajęć (program z funkcją przeliczającą Fahrenheity na Celsjusze). Niech program operuje na zmiennych typu float: float FtoC(float f) return (f-32.0) * 5.0/9.0; Zadanie 2 - Utworzyć dodatkową funkcję FtoK, która przelicza F na K, na bazie poprzedniej F to C (z poprzednich zajęć), wg wzoru: Kelvin = (Fahrenheit + 459.67) * 5.0 / 9.0 Niech wynik od 0 do 200F wyświetla w trzech kolumnach: F = (wartość) C = (wyliczona wartość) K = (wyliczona wartość) Zadanie 3 Utwórz dodatkowe funkcje: CtoF F = C * 9.0/5.0 + 32.0 CtoK K = C + 273.15 KtoC C = K 273.15 KtoF F = K * 9.0/5.0 459.67 (Zadanie 1, 2 i 3 tworzą jeden spójny kod, który należy wysłać na maila Kaja.Gutowska@cs.put.poznan.pl, tytul maila: Imie_Nazwisko_PP_lab3) 4 - Debuggowanie: 4.1. Debuggowanie jest procesem wyszukiwania oraz usuwania błędów znajdujących się w pisanym przez nas kodzie programu. Program wykorzystywany do tego celu nazywany jest debuggerem (ang. debugger w wolnym tłumaczeniu odpluskiwacz). Istnieje szereg debuggerów w postaci komercyjnych rozwiązań zintegrowanych z pakietami Visual Studio, Visual C++ itd. Nie jesteśmy oczywiście zmuszeni do korzystania z powyższych środowisk. Uwagę swoją można bowiem skierować na narzędzia oparte na licencji publicznej GNU. Przykładem debuggera GNU jest program gdb. Zwykle nie musimy korzystać bezpośrednio z gdb gdyż narzędzia te są częścią zintegrowanego środowiska programistyczne (IDE), jak CodeBlocks czy Visual Studio.

4.2. Aby skorzystać z przedstawionych metod wyszukiwania błędów konieczne jest, aby każdy testowany przez nas program uruchamiać w trybie Debug (nie wybierać opcji Release ). W środowisku CodeBlocks ustawienie tej opcji można kontrolować w polu Build target na pasku Compiler. Podobna sytuacja ma miejsce w przypadku środowiska Visual Studio. 4.3. Uwaga, żeby skorzystać z opcji debuggowania trzeba utworzyć projekt w Code::Blocks! -Utworzyć nowy projekt: File New Project -W dalszej kolejności wybrać typ tworzonego projektu: Console application -W wyświetlonym oknie dialogowym wybrać język w jakim będziemy programowali: C++ -Wpisać nazwę projektu oraz jego lokalizację -Naciśnięcie przycisku Finish kończy procedurę tworzenia projektu. W okienku Menadzera w zakładce Projects można przejrzeć drzewo przedstawiające strukturę plików w naszym projekcie. W chwili obecnej posiadamy jeden plik *.cpp o nazwie main.cpp zawierający wygenerowany przez środowisko prosty kod programu, przedstawiony poniżej (należy go nadpisać własnym!): #include <iostream> // dodanie pliku nagłówkowego using namespace std; // korzystamy z przestrzeni nazw std int main() // główna funkcja programu cout << "Hello world!" << endl; // wyświetlenie na standardowym wyjściu Hello World! return 0; 4.4 Napisz programy i skompiluj w trybie Debug (uruchom w celu sprawdzenia poprawności): Zadanie 4.4a Napisz program obliczający zadaną potęgę n liczby 2 (tzn. 2 n ), można wykorzystać program: int n=4; int wynik=1; for(int i=0;i<n;i++) wynik=wynik*2; printf("wynik=%d\n", wynik);

Zadanie 4.4b - Napisz program obliczający pierwiastki wybranego równania kwadratowego. Wykorzystaj funkcję sqrt(), która wymaga dołączenia biblioteki <math.h>. 4.5. Kiedy dysponujemy już gotowym i działającym kodem rozwiązującym postawione zadanie, możemy przejść do ustawienia pierwszych punktów wstrzymania. Punktem wstrzymania (ang. breakpoint) jest pewne miejsce w programie w którym debugger automatycznie zatrzyma jego działanie. Nie jesteśmy oczywiście ograniczeni do pojedynczego punktu wstrzymania a ich położenie zależy wyłącznie od nas samych i wiedzy na temat możliwych błędów jakie mogą się pojawić w danym miejscu kodu źródłowego CodeBlocks: -Ustaw kursor w linijce, w której ma znaleźć się punkt wstrzymania -Z menu wybierz: Debug Toggle breakpoint (F5) -Uruchom program: Debug Start (F8) Zadanie 4.6 Debuggowanie: -Ustaw kilka punktów wstrzymania w różnych linijkach kodu. -Sprawdź działanie poleceń dostępnych w menu Debug: -Next Line (F7), przejście do następnej linii kodu źródłowego. -Next instruction (ALT+F7), przejście do następnej linii kodu maszynowego. -Step into (SHIFT+F7), wykonanie następnej instrukcji z wejściem do funkcji. -Step out (SHIFT+CTRL+F7), wyjście z funkcji. -Run to cursor (F4), przejście do pozycji wskazywanej przez kursor. 4.7. Opcje debuggowania można znaleźć na pasku Debugger pod ikonką Debugging windows : Okno: -Call stack: okno stosu wywołań (ang. Call stack) zawiera listę wywołań funkcji. Lista ta przedstawiana jest w postaci hierarchicznej od funkcji wywołanej najwcześniej aż do wywołanej w bieżącej chwili. Kliknięcie prawym przyciskiem na nazwę funkcji oraz wybranie z pop-up menu polecenia switch to this Frame powoduje przeskoczenie do wskazanej funkcji. -Okno: CPU Registers: okno to przedstawia aktualną zawartość rejestrów procesora. Możliwa jest bieżąca obserwacja zmian wartości zapisanych w rejestrach. Bezpośrednia manipulacja wartościami rejestrów procesora możliwa jest z poziomu języka maszynowego tj. assemblera. -Okno: Disassembly: okno to (zwane oknem disassemblera) zawiera widok kodu maszynowego zapisanego w języku assemblera i wygenerowanego przez kompilator.

-Okno: Memory dump: polskim odpowiednikiem dla tej nazwy jest okno zrzutu pamięci. Okno to pozwala na bezpośrednie podglądanie zawartości pamięci. Możliwość podglądania zawartości pamięci ograniczona jest do obszaru należącego do przestrzeni adresowej naszego procesu. Nie możemy zatem podejrzeć obszaru pamięci wykraczającego poza ten przydzielony (przez system operacyjny) dla aplikacji którą właśnie debuggujemy. -Okno: Running threads: w oknie tym znajdują się informacja o wątkach pracujących w bieżącej chwili. Wszystkie programy pisane na tych zajęciach będą programami jednowątkowymi. -Okno: Watches (zdecydowanie nas interesuje): okno to umożliwia podejrzenie bieżącej wartości zmiennych jak również śledzenie zmian ich wartości. Zadanie 4.8 Korzystając z przedstawionych możliwości debuggowania prześledź napisany dotychczas program przeliczania temperatur. -- Zapoznaj się z funkcjami dostępnymi w menu: Debug Information. Zadania do wykonania w domu: Zadanie 5 Napisz prosty kalkulator implementujący funkcje dodawania, odejmowania, dzielenia (z zabezpieczeniem dla dzielenia przez 0), potęgowania i pierwiastkowania dla liczb zmiennoprzecinkowych (sugerowany typ double). Zadanie 6 - Napisz program znajdujący wszystkie dzielniki zadanej liczby. Zadanie 7- Stwórz program znajdujący wszystkie wspólne podzielniki dwóch podanych liczb. Zadanie 8 - Napisz program wyznaczający liczbę i sumę liczb podzielnych przez 3 w zbiorze n liczb naturalnych. Na wejściu użytkownik podaje wartość n będącą liczbą całkowitą z przedziału <0, 255>. Program powinien obliczać w/w wartości dla zbioru liczb 1..n. Zadanie 9 - Napisz program znajdujący pierwszych k liczb dodatnich, których kwadraty składają się wyłącznie z cyfr 1,4 lub 9. Takimi liczbami są np.: 1, 2, 3, 7, 12, 21, 38, 107,..., ponieważ 1 2 =1, 2 2 =4, 3 2 =9, 7 2 =49, 12 2 =144, 21 2 =441, 38 2 =1444, 107 2 =11449, Zadanie 10 - Napisz program znajdujący wszystkie liczby pierwsze, które można stworzyć z podzbiorów cyfr podanej liczby całkowitej typu int (taką liczbę nazywa się w jęz. ang. primeval number).

Przykład: pytamy ile liczb pierwszych można stworzyć z cyfr liczby 1379. Potraktujmy liczbę 1379 jako zbiór cyfr 1,3,7,9 i znajdźmy wszystkie podzbiory, które tworzą liczby pierwsze. Okazuje się, że możemy znaleźć aż 31 liczb pierwszych zanurzonych w liczbie 1379. Są to: 3, 7, 13, 17, 19, 31, 37, 71, 73, 79, 97, 137, 139, 173, 179, 193, 197, 317, 379, 397, 719, 739, 937, 971, 1973, 3719, 3917, 7193, 9137, 9173, 9371. Uwaga: budując liczbę pierwszą możemy każdą cyfrę ze zbioru wejściowego wziąć tylko raz.