Formatowaniem nazywamy proces przekształcenia danych z postaci binarnej do postaci tekstowej lub proces przekształcenia danych w odwrotnym

Podobne dokumenty
Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

INFORMATYKA Studia Niestacjonarne Elektrotechnika

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

Struktury, unie, formatowanie, wskaźniki

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

MATERIAŁY DO ZAJĘĆ II

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Autor: dr inż. Katarzyna Rudnik

LibreOffice Calc VBA

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

Klasa bazowa i klasy potomne - doskonalenie umiejtnoci projektowania i wykorzystania klas (45 min)

Programowanie obiektowe. Obiekt Klasa Składnia klasy: Interfejsy Składnia interfejsu: Metody Składnia instrukcji Sub: Składnia instrukcji function:

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

2 Przygotował: mgr inż. Maciej Lasota

Zmienne, stałe i operatory

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Podstawy i języki programowania

Microsoft IT Academy kurs programowania

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

Pracownia Komputerowa wykład VI

Programowanie Komputerów

Powtórka algorytmów. Wprowadzenie do języka Java.

1. Wprowadzanie danych z klawiatury funkcja scanf

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

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

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

Class1.vb. _Dlugosc_stopnia = value End Set End Property Public Property Faza As Single Get Return _Faza End Get

Powtórka algorytmów. Wprowadzenie do języka Java.

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Operatory cd. Relacyjne: ==!= < > <= >= bool b; int i =10, j =20; dzielenie całkowitych wynik jest całkowity! Łączenie tekstu: + string s = "Ala ma ";

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Ćwiczenie laboratoryjne. Oprogramowanie i badanie stosu lub kolejki w środowisku Visual Basic 2005

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

Języki skryptowe w programie Plans

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Funkcje przeciążone, konstruktory kopiujące, argumenty domyślne

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Kier. MTR Programowanie w MATLABie Laboratorium

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

1 Podstawy c++ w pigułce.

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

1 Podstawy c++ w pigułce.

1. Wprowadzenie do języka PHP

Dodatkowo klasa powinna mieć destruktor zwalniający pamięć.

Systemy zapisu liczb.

1 Powtórzenie wiadomości

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Wstęp do informatyki- wykład 4 Deklaracja zmiennych Typy

Wykład 2 Składnia języka C# (cz. 1)

Metody numeryczne Laboratorium 2

Ćwiczenie VB3.4 Struktura Try...Catch, obiekt Err, metoda Err.Raise (Strukturalna obsługa wyjątków)

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

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 2 WSTĘP DO INFORMATYKI

#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

Kiedy i czy konieczne?

Pracownia Komputerowa wyk ad VI

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Procedury i funkcje. Programowanie komputerowe

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)

Systemy liczbowe używane w technice komputerowej

Podstawy i języki programowania

Algorytmika i Programowanie VBA 1 - podstawy

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

01 grid tablica grid. Copyright 2017, mgr inż. Janusz Bonarowski 1

Pracownia Komputerowa wykład V

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

SYSTEMY LICZBOWE 275,538 =

Programowanie obiektowe

Ten odcinek Akademii PC Kuriera poświęcony zostanie tworzeniu i wykorzystaniu funkcji i procedur w języku Visual Basic.NET.

Język ludzki kod maszynowy

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

Podstawy programowania w Pythonie

Podstawy i języki programowania

Programowanie obiektowe w VB cz 2

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wprowadzenie do języka Java

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Materiały do laboratorium MS ACCESS BASIC

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

Lab 9 Podstawy Programowania

Podstawy informatyki

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 2. Programowanie komputerowe

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

Architektura komputerów

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

Tablice w argumentach funkcji. Tablicy nie są przekazywane po wartości Tablicy są przekazywane przez referencje lub po wskaźniku

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

Metoda znak-moduł (ZM)

Języki i metodyka programowania. Wprowadzenie do języka C

Java Podstawy. Michał Bereta

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

Transkrypt:

Formatowanie Podstawy programowania Formatowaniem nazywamy proces przekształcenia danych z postaci binarnej do postaci tekstowej lub proces przekształcenia danych w odwrotnym kierunku. W przypadku wprowadzenia danych przekształcamy dane mające postać fragmentów tekstu do danych komputerowych. Tekst, do którego stosuje się formatowanie, można pobierać z pliku lub z tablicy tekstowej. W przypadku wyprowadzenia danych przekształcamy dane z postaci binarnej (komputerowej) do postaci tekstowej. Tekst jako wynik formatowania można zapisywać do pliku lub do tablicy tekstowej. Jednej z metod formatowania jest zastosowanie tzw. specyfikatorów formatu (ang. format specifications). Specyfikatory formatu są wpisywane do tzw. tekstu formatującego (ang. format string). Specyfikator formatu (ang. format specification) jest mocno skróconym opisem reguł przekształcenia fragmentu z postaci tekstowej do postaci binarnej (komputerowej) lub odwrotnie. Charakter korzystania ze specyfikatora formatu zależy od kierunku przekształcenia. W przypadku wprowadzenia danych specyfikator formatu zawiera reguły przekształcenia fragmentu tekstu z danymi w wartość obiektu programowego. W przypadku wyprowadzenia danych specyfikator formatu zawiera reguły przekształcenia wartości obiektu programowego we fragment tekstu. Druga metoda formatowania polega na przekształceniu wyodrębnionych fragmentów tekstu. 4. Formatowanie w języku Visual Basic.NET Wprowadzeniu danych W środowisku Visual Basic.NET przy wprowadzeniu danych jest stosowana metoda wyodrębnienia fragmentów tekstu, do których stosuje się przekształcenie. Po wydzieleniu fragmentu tekstu stosuje się funkcja, która konwertuje fragment do postaci binarnej. Przykłady takich funkcji: CInt do konwersji liczb całkowitych, CDbl do konwersji liczb zmiennoprzecinkowych. Lista funkcji konwercji w środowisku Visual Basic 2005:

CBool(expression) CByte(expression) CChar(expression) CDate(expression) CDbl(expression) CDec(expression) CInt(expression) CLng(expression) CObj(expression) CSByte(expression) CShort(expression) CSng(expression) CStr(expression) CUInt(expression) CULng(expression) CUShort(expression) W każdej klasie liczbowej i znakowej istnieje też metoda konwersji Parse, która konwertuje tekst do postaci binarnej (komputerowej). Na przykład dla liczb rzeczywistych metoda Parse ma następującą deklaracje: Overloads Public Shared Function Parse(ByVal s As String) As Double Metodę Parse można przepisywać na nowo przesłaniając metodę bazową. Przykład z metoda Parse: Public Class Temperature ' Analiza wiersza z temperaturą w formacie ' [znak biały][znak liczby]cyfry['f 'C][znak biały] Public Shared Function Parse(ByVal s As String) As Temperature Dim tt As New Temperature() If s.trimend(nothing).endswith("'f") Then tt.value = Double.Parse(s.Remove(s.LastIndexOf("'"c), 2)) Else If s.trimend(nothing).endswith("'c") Then tt.celsius = Double.Parse(s.Remove(s.LastIndexOf("'"c), 2)) Else tt.value = Double.Parse(s) End If End If Return tt End Function 'Parse ' Pole danych dla temperatury: Protected m_value As Double Public Property Value() As Double Get Return m_value

End Get Set(ByVal Value As Double) m_value = Value End Set End Property Public Property Celsius() As Double Get Return (m_value - 32) / 1.8 End Get Set(ByVal Value As Double) m_value = Value * 1.8 + 32 End Set End Property End Class W przykładzie jest wykorzystana grupa metod klasy String: TrimEnd do wyeliminowania białych znaków ( w przypadku argumentu Nothing) na końcu wiersza, EndsWith sprawdzająca, czy jest na końcu wiersza zadany fragment, LastIndexOf zwracająca indeks ostatniej pozycji w wierszu z szukanym symbolem, Remove kasująca zadaną liczbę znaków od zadanej pozycji.

Często stosowane właściwości i metody klasy String: właściwość Chars(ByVal indeks As Integer) - zwraca znak Unicode typu Char na pozycji indeks. Na przykład: Dim str As String = "Test" Dim symb As Char = str.chars(1) 'symb jest równy "e" właściwość Length - zwraca liczbe znaków w wierszu. Na przykład: Dim str As String = "Test" Dim leng As Integer = str.length 'leng jest równa "4" metoda IndexOf(różne argumenty) - zwraca pozycje znaku lub podwiersza w wierszu. Na przykład: Dim str As String = "Test" Dim r As Integer = str.indexof("s"c) 'r jest równa "2" metoda Split(różne argumenty) - zwraca listę podwierszy, na które jest podzielony wiersz przez separatory wskazane w argumencie. Na przykład: Dim str As String = "Test: a=1 b=2" Dim separators As Char() = New Char() {":"c, " "c} Dim temp As String() = str.split(separators) 'lista temp zawiera "Test", "", "a=1", "b=2" metoda Substring(ByVal pozycja As Integer, ByVal ilość As Integer) - zwraca wskazanego rozmiaru podwiersz od wskazanej pozycji. Na przykład: Dim str As String = "Test: a=1 b=2" Dim s As String = str.substring(0,4) 's jest równa "Test" metoda Trim() - eliminuje białe spacje (tj. spacja, tabulacja, "powrót", "nowy wiersz") na początku i końcu wierszu. Na przykład: Dim str As String = " Test: a=1 b=2 " str = str.trim() Dim s As String = str.substring(0,4) 's jest równa "Test"

Wyprowadzenie danych W środowisku Visual Basic.NET wyprowadzenie danych jest realizowane metoda łączenia fragmentów tekstu. Każda klasa zawiera metodę ToString. Metodę ToString można wywołać bez argumentów lub z argumentem - wierszem, który opisuje formatowanie. Wiersz formatujący może być standardowym lub niestandardowym. Standardowy wiersz formatujący dla danych liczbowych zawiera specyfikator formatu, który ma strukturę: Axx, gdzie A - litera opisująca typ konwersji (patrz tabelę), xx - liczba od 0 do 99, która opisuje ilość znaczących cyfr po przecinku lub zer z prawej strony dla liczb całkowitych. Typy konwersji dla danych liczbowych są przedstawione w następującej tabeli. Znak typu Pole w tekście wyjściowym konwersji c, C Liczba dziesiętna w formacie walutowym zdefiniowanym w obiekcie (walutowy) typu NumberFormatInfo 1) d, D Liczba całkowita dziesiętna w formacie zdefiniowanym w obiekcie (dziesiętny) typu NumberFormatInfo 1) e, E Liczba zmiennopozycyjna w formacie potęgowym "-d.ddd...e+ddd" lub "-d.ddd...e+ddd" (specyfikator precyzji zadaje liczbę cyfr po przecinku) f, F Liczba zmiennopozycyjna w formacie stałoprzecinkowym "- ddd.ddd..." (specyfikator precyzji zadaje liczbę cyfr po przecinku) g, G Liczba zmiennopozycyjna w formacie uniwersalnym, tj. potęgowym lub stałoprzecinkowym. Minimalna precyzja: 3 cyfry dla Byte lub SByte 5 cyfr dla Int16 lub UInt16 10 cyfr dla Int32 lub UInt32 19 cyfr dla Int64 lub UInt64 7 cyfr dla Single 15 cyfr dla Double 29 cyfr dla Decimal n, N Liczba zmiennopozycyjna w formacie stałoprzecinkowym z separatorami tysiąc (konwersja jest sterowana globalnymi zmiennymi) p, P Liczba zmiennopozycyjna w formacie procentowym r, R Liczba zmiennopozycyjna w formacie uniwersalnym i rewersyjnym, tj. jeżeli liczbę przekształcić w odwrotnym kierunku, to otrzymamy taką samą wartość x, X Liczba całkowita szesnastkowa 1) Obiekt typu NumberFormatInfo zawiera informację o warunkach konwersji. Obiekt typu NumberFormatInfo alokuje i rejestruje w systemie Windows obiekt klasy CultureInfo. Referencję do tego obiektu należy przekazać do klasy Thread.

Przykład: Imports System Imports System.Globalization Imports System.Threading Imports System.IO Imports System.IO.TextWriter Imports System.IO.StreamWriter Class Test Public Shared Sub Main() Thread.CurrentThread.CurrentCulture = New CultureInfo("enus") Dim doub As Double = 123456789 ' alokacja obiektu typu StreamWriter Dim sw As StreamWriter = New StreamWriter("Test.txt") sw.writeline("przykład w en-us środowisku:") sw.writeline(doub.tostring("c")) sw.writeline(doub.tostring("e")) sw.writeline(doub.tostring("p")) sw.writeline(doub.tostring("n")) sw.writeline(doub.tostring("f")) Thread.CurrentThread.CurrentCulture = New CultureInfo("de- -DE") sw.writeline("przykład w de-de środowisku:") sw.writeline(doub.tostring("c")) sw.writeline(doub.tostring("e")) sw.writeline(doub.tostring("p")) sw.writeline(doub.tostring("n")) sw.writeline(doub.tostring("f")) sw.close() End Sub End Class

Niestandardowy wiersz formatujący dla danych liczbowych zawiera znaki, które są przedstawione w niżej położonej tabeli. Znak Nazwa Przeznaczenie formatujący 0 Zero placeholder Do pozycji z tym znakiem jest wpisywana cyfra liczby # Digit placeholder Do pozycji z tym znakiem jest wpisywana cyfra liczby. Decimal point Pozycja przecinka, Thousand separator and number scaling Separator dla tysiąc (w języku angielskim) lub znak powodujący mnożenie o 1000 % Percentage placeholder Powoduje mnożenie liczby o 100 E0, E+0, E-0, e0, e+0, e-0 Scientific notation Powoduje zapisywanie liczby w formie potęgowej ; Section separator Separator do rozdzielenia wariantów przekształcenia dodatniej, ujemnej i zerowej wartości 'aaa', "aaa" Literal string Fragment, który przechodzi w wiersz wynikowy Inne znaki All other character Znaki, które przechodzą w wiersz wynikowy Przykład. Dim mydouble As Double = 1234567890 Dim mystring As String = mydouble.tostring( "(###) ### - ####" ) ' The value of mystring is "(123) 456 7890". Dim MyInt As Integer = 42 MyString = MyInt.ToString( "My Number " + Control- Chars.Lf + "= #" ) ' In the U.S. English culture, MyString has the value: ' "My Number ' = 42".