3. Opracować program kodowania/dekodowania pliku tekstowego. Algorytm kodowania:

Podobne dokumenty
n, m : int; S, a, b : double. Gdy wartości sumy składowej nie można obliczyć, to przyjąć Sij = 1.03 Dla obliczenia Sij zdefiniować funkcję.

1.1. Pozycyjne systemy liczbowe

I. Podstawy języka C powtórka

Lab 9 Podstawy Programowania

1. Wprowadzanie danych z klawiatury funkcja scanf

Pliki. Informacje ogólne. Obsługa plików w języku C

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

Programowanie 3 - Funkcje, pliki i klasy

Projekty zaliczeniowe Podstawy Programowania 2012/2013

2 Przygotował: mgr inż. Maciej Lasota

Warsztaty dla nauczycieli

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

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

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

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

Wymagania edukacyjne z informatyki dla uczniów klas VI SP nr 53 w Krakowie w roku szkolnym 2019/2020

INFORMATYKA Studia Niestacjonarne Elektrotechnika

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

Wstęp do informatyki- wykład 2

Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.

Programowanie w języku C++ Agnieszka Nowak Brzezińska Laboratorium nr 2

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

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

Tablicę 2-wymiarową można przedstawić jako pewien zestaw tablic 1-wymiarowych np.:

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

Laboratorium nr 1. i 2.

Strumienie, pliki. Sortowanie. Wyjątki.

Wymagania na poszczególne oceny szkolne dla klasy VI. (na podstawie Grażyny Koba, Teraz bajty. Informatyka dla szkoły podstawowej.

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

Argumenty wywołania programu, operacje na plikach

1 Powtórzenie wiadomości

Zadanie 4.3. (0 5) Błąd bezwzględny przybliżonej wartości liczby pi, wyznaczonej z n punktów, definiujemy następująco:

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013

Struktury Struktura polami struct struct struct struct

Programowanie w języku Java

Aplikacje w środowisku Java

MS Excel 2007 Kurs zaawansowany Obsługa baz danych. prowadzi: Dr inż. Tomasz Bartuś. Kraków:

lekcja 8a Gry komputerowe MasterMind

3.4. Opis konfiguracji layoutów.

Zadanie 1. Suma silni (11 pkt)

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki

Autor: dr inż. Katarzyna Rudnik

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

1 Podstawy c++ w pigułce.

Podstawy Programowania C++

Kier. MTR Programowanie w MATLABie Laboratorium

Pytania sprawdzające wiedzę z programowania C++

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

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

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

Ćwiczenie 1. Wprowadzenie do programu Octave

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

Podstawy obiektowości

Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Zestaw 1-1 Organizacja plików: Oddajemy tylko źródła programów (pliki o rozszerzeniach.cpp)!!!

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

Temat: Algorytm kompresji plików metodą Huffmana

Metody numeryczne Laboratorium 2

Zadanie 1. Potęgi (14 pkt)

Strumienie, pliki. Sortowanie. Wyjątki.

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

P R Z E T W A R Z A N I E S Y G N A Ł Ó W B I O M E T R Y C Z N Y C H

Przetwarzanie sygnałów

Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

Złożoność obliczeniowa zadania, zestaw 2

Python: JPEG. Zadanie. 1. Wczytanie obrazka

Tabele przestawne tabelą przestawną. Sprzedawcy, Kwartały, Wartości. Dane/Raport tabeli przestawnej i wykresu przestawnego.

Obliczenie pola wieloboku na podstawie współrzędnych wierzchołków

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. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci:

EGZAMIN MATURALNY Z INFORMATYKI

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

1 Podstawy c++ w pigułce.

Tablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119

MATLAB Z3. Rafał Woźniak. Warsaw, Faculty of Economic Sciences, University of Warsaw

Program wykonujący operację na plikach powinien zachować schemat działania zapewniający poprawną pracę:

C++ wprowadzanie zmiennych

Ćwiczenie 1. Wprowadzenie do programu Octave

Instrukcja użytkownika

Języki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński

Zadanie projektowe nr 1

Wykład PASCAL - Pliki tekstowe

Zastosowanie filtrów w Linuksie

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

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

Diary przydatne polecenie. Korzystanie z funkcji wbudowanych i systemu pomocy on-line. Najczęstsze typy plików. diary nazwa_pliku

2017/2018 WGGiOS AGH. LibreOffice Base

Zakład Usług Informatycznych OTAGO

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

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

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

Podstawy programowania w języku C++

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

Zasady programowania Dokumentacja

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Inicjacja tablicy jednowymiarowej

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI STYCZEŃ POZIOM ROZSZERZONY Część II

Transkrypt:

Zadania-7 1. Opracować program prowadzący spis pracowników firmy (max.. 50 pracowników). Każdy pracownik opisany jest za pomocą struktury zawierającej nazwisko i pensję. Program realizuje następujące polecenia: R : wczytanie liczby pracowników i tablicy struktur opisujących pracowników z pliku dyskowego (zapytać o nazwę pliku), N : nowy pracownik - wczytać dane opisujące pracownika i wprowadzić do kolejnej pozycji tabeli struktur, W : wyświetlanie informacji o wszystkich pracownikach, Z : zapis liczby pracowników i tabeli pracowników do pliku dyskowego (zapytać o nazwę pliku), K : koniec programu. Dla realizacji poszczególnych opcji zdefiniować funkcje. 2. Plik wejściowy zawiera ciąg liczb całkowitych oddzielonych spacjami. Opracować program, który z takiego pliku wejściowego (zapytać o nazwę) przepisuje do pliku wyjściowego (też zapytać o nazwę) tylko te liczby całkowite, które są większe od 137. 3. Opracować program kodowania/dekodowania pliku tekstowego. Algorytm kodowania: litery a z : zamienić na z a, litery A Z: do kodu litery dodać 1 (Z A) pozostałe znaki o kodach mniejszych od 128 : bez zmian, znaki o kodach większych od 127 : zastąpić znakiem SP (zostają usunięte). Dekodowanie odwrotnie. 4. Każdy z plików P1.txt i P2.txt zawiera ciąg liczb typu double oddzielonych spacjami i posortowanych od najmniejszej do największej. Opracować program tworzący plik P3.txt, który zawiera wszystkie liczby z plików P1.txt i P2.txt również posortowane od najmniejszej do największej.

5. Automat do rozpoznawania monet generuje plik tekstowy, który zawiera ciąg znaków opisujących poszczególne monety (bez żadnych znaków rozdzielających): moneta znak 1 gr c 2 gr t 5 gr f 10 gr d 20 gr q 50 gr h 1 zł K 2 zł D 5 zł F Opracować program, który wczytuje wszystkie znaki z takiego pliku i oblicza łączną kwotę złotych i groszy rozpoznanych przez automat oraz ustala ile było monet każdego z 9 rodzajów. 6. Opracować program, który oblicza wartość sumy iloczynów gdzie R n m 2 f ( i, j) * g( i) 1 i 1 j 1 f ( j, i) 3g( j) a 2 + 1 gdy a > b f(a,b) = b + 2 gdy a b g(k) = sin(k+1.5)-cos(k-1.5) Wartości n,m (int) wczytać z klawiatury. Dla obliczenia f(a,b) oraz g(k) zdefiniować funkcje. 7. Opracować program, który definiuje strukturę Pomiar zawierającą 3 pola: typ : char, numer: int, wartosc : double, oraz 4-elementową tablicę tych struktur TP. Z pliku binarnego PP.bin wczytać zawartość tablicy TP za pomocą instrukcji fread i następnie wyprowadzić na monitor 4 linie opisujące poszczególne pomiary. Spodziewany wynik: A 127 13.27 B 223 15.76 C 934 17.12 D 118 14.92

8. W pliku Pomiary.txt zapisane są wyniki kolejnych serii pomiarów oraz kod sposobu przetwarzania tych wyników. Pojedyncza seria opisana jest za pomocą następującej struktury: numer serii pomiar_1 pomiar_2 pomiar_3 pomiar_4 kod sposobu przetwarzania Numer serii to dowolna liczba typu int, pomiary to liczby double, kod sposobu przetwarzania to liczba typu int o wartości 0 2. Opracować program, który wczytuje kolejne struktury i w zależności od wartości podanego kodu przetwarza pomiary: 0 obliczenie średniej arytmetycznej pomiarów 1 wybranie pomiaru o wartości największej 2 wybranie pomiaru o wartości najmniejszej Wynik przetwarzania należy wpisać do pliku Wyniki.txt jako ciąg następujących struktur: numer serii wyliczona wartość kod sposobu przetwarzania Dla każdego z trzech sposobów przetwarzania danych pomiarowych zdefiniować funkcję i zastosować tablicę wskaźników funkcji.

9. W pliku tekstowym zapisana jest liczba serii danych N i kolejno N serii danych. Pojedyncza seria opisana jest za pomocą następującej struktury wejściowej : numer_serii pomiar_1 pomiar_2 pomiar_3 pomiar_4 pomiar_5 Numer serii to dowolna liczba typu int, pomiary to liczby double. Opracować program, który realizuje następujące opcje: L wczytuje liczbę N, a następnie wszystkie N struktur wejściowych do tablicy struktur (N < 100, zapytać o nazwę pliku), F przetwarza tablicę struktur wejściowych generując tablicę struktur wyjściowych: wartość A jest obliczana przez zastosowanie funkcji P1 do elementów pomiar_1, pomiar_2 i pomiar_3, wartość B jest obliczana przez zastosowanie funkcji P2 do elementów pomiar_3, pomiar_4 i pomiar_5, G przetwarza tablicę struktur wejściowych generując tablicę struktur wyjściowych: wartość A jest obliczana przez zastosowanie funkcji P2 do elementów pomiar_2, pomiar _4 i pomiar_5, wartość B jest obliczana przez zastosowanie funkcji P1 do elementów pomiar_1, pomiar_2 i pomiar_4, Z zapisuje liczbę struktur N, wszystkie struktury wyjściowe i potem wszystkie struktury wejściowe do pliku dyskowego (zapytać o nazwę pliku), Q koniec programu. Dla wykonania opcji L, F, G, Z zdefiniować funkcje, opcje F, G, Z nie powinny być realizowane przed wykonaniem opcji L. Struktura wyjściowa ma następującą postać. numer_serii A B x 2y z 1 P 1( x, y, z) 2 2 2 2x y z 1 a c P 2( a, b, c) 1 b 2 1

10. Pliki tekstowe A.txt i B.txt zawierają ciągi liczb całkowitych oddzielonych spacjami, w każdym z tych plików znajduje się przynajmniej 10 liczb. Opracować program, który otwiera do odczytu te dwa pliki i następnie przepisuje do pliku C.txt 10 liczb pobierając je naprzemiennie z pliku A.txt i B.txt. 11. Opracować program, który wyznacza histogram występowania liter a z w pliku dyskowym Eden.txt. Wyniki wyświetlić w postaci tabeli liczbowej i wykresu wstęgowego. Przykładowe wyniki a : 34768 => 23.7%... z : 235 => 1.2% a *****************... z ** 12. Opracować program zawierający definicję struktury Adres: Miasto Ulica NrDomu NrMieszkania Następnie zdefiniować 3 funkcje o identyfikatorze Nowy, których wynikiem jest nowy egzemplarz struktury Adres: Nowy(char miasto[ ]) : wpisuje jako ulicę X, a jako nr domu i mieszkania 0, Nowy(char miasto[ ], char ulica[ ], int nrd, int nrm) : wypełnia wszystkie pola egzemplarza struktury Nowy(Adres adres) : przepisuje wszystkie pola z argumentu do tworzonego egzemplarza, dodając do nr mieszkania 1000. W programie głównym utworzyć 3 egzemplarze struktury Adres (A1, A2, A3) korzystając z funkcji Nowy o argumentach: a. ("Gniezno") b. ("Koszalin", Dobra", 15, 3) c. zastosować jako argument egzemplarz A2, utworzony w punkcie b. Następnie wyprowadzić na monitor wartości wszystkich składowych egzemplarzy struktur A1, A2, A3 korzystając ze zdefiniowanej w tym celu funkcji Opis.

13. W pliku tekstowym Studenci.txt zapisana jest liczba opisów studentów N i kolejno N opisów. Pojedynczy opis zadany jest za pomocą następującej struktury : Nazwisko Imie NrAlbumu Natomiast w pliku tekstowym Programowanie.txt zapisana jest liczba studentów M i kolejno M ocen z programowania reprezentowanych przez strukturę: NrAlbumu Ocena Taka sama struktura opisuje oceny z fizyki, zapisane w pliku Fizyka.txt, którego pierwszym elementem jest również liczba ocen K. Opracować program, który po uruchomieniu wczytuje dane z wymienionych trzech plików do tabel struktur (N, M, K < 50), a następnie umożliwia realizację następujących opcji N na podstawie wprowadzonego z klawiatury Nazwiska studenta wyprowadza jego (ich) Imię i Nazwisko oraz oceny z Programowania i z Fizyki (o ile istnieją), A na podstawie wprowadzonego z klawiatury Numeru Albumu wyprowadza Imię i Nazwisko studenta oraz jego oceny z Programowania i z Fizyki (o ile istnieją), Q koniec programu. Dla wykonania opcji N i A zdefiniować funkcje.

14. Opracować program SKOKI wspomagający przeprowadzanie zawodów w skokach narciarskich. W pliku ListaStartowa.txt znajdują się dane zawodników i ich numery startowe zapisane w postaci: Imię Nazwisko NrStartowy Zakłada się, że dane opisujące poszczególnych zawodników są uszeregowane według narastających numerów startowych (numery te są niepowtarzalne). Program SKOKI, w ramach obsługi pierwszej serii skoków odczytuje dane kolejnych zawodników i zapisuje je do utworzonego dynamicznie (new) egzemplarza struktury o następującej budowie. Imie Nazwisko Numer_startowy Skok_1 Skok_2 Suma_skokow Następnie dane zawodnika są wyświetlane na monitorze i program oczekuje na wprowadzenie długości skoku pierwszego, aktualizuje pole Skok_1, po czym wskaźnik tego egzemplarza struktury wpisywany jest do tablicy wskaźników T1 w taki sposób, aby po zakończeniu pierwszej serii tablica ta była uszeregowana w kolejności od najkrótszego skoku do najdłuższego (w przypadku skoków o takiej samej długości decyduje numer startowy). Obsługa drugiej serii skoków polega na wyświetlaniu danych kolejnych zawodników z tablicy T1 i odczytywaniu długości drugiego skoku, aktualizacji pól Skok_2 oraz Suma_skoków, po czym wskaźnik egzemplarza struktury wpisywany jest do tablicy wskaźników T2 w taki sposób, aby po zakończeniu drugiej serii tablica ta była uszeregowana w kolejności od największej sumy skoków do najmniejszej (w przypadku sum o takiej samej długości decyduje numer startowy). Na zakończenie program SKOKI wyświetla dane zawodników w kolejności występowania w tabeli T2 i zapisuje tę tabelę do pliku Wyniki.txt. Dla aktualizacji tabel T1 i T2 zdefiniować funkcję.

15. Opracować program, który koduje / dekoduje pliki zawierające zapis sekwencji nukleotydowej kwasu DNA. W pliku tekstowym.txt nukleotydy są reprezentowane przez dowolną kombinację z powtórzeniami liter A, C, G, T zapisaną po 4 litery w jednym wierszu np: ACGT TGGA CGTA... Kodowanie polega na przypisaniu każdej literze 2 bitów i umieszczeniu ich w jednym bajcie w takiej kolejności, w takiej występowały w pliku tekstowym. A - 00 C - 01 G - 10 T - 11 Kolejne bajty zapisywane są w pliku binarnym.bin. Czyli podana jako przykład sekwencja powinna zostać zapisana w pliku binarnym jako (heksadecymalnie) : 1B E8 6C Program powinien umożliwiać wybór kodowania / dekodowania, pytać o nazwy plików wejściowego i wyjściowego oraz zawierać funkcje T2B kodującą sekwencję 4 liter i B2T dekodującą jeden bajt. 15. Opracować program, który wczytuje rozmiary W i K tablicy dwuwymiarowe, tworzy dynamicznie taką tablicę dla liczb unsigned int i wczytuje jej elementy wierszami. Następnie program wyprowadza na monitor element z wierszy 1 do W-1 tych kolumn, których element z wiersza o indeksie 0 zawiera: - na najstarszych pozycja bitowych ciąg 1011 oraz - na najmłodszych pozycja bitowych ciąg 0010. Dla sprawdzenia, czy ciąg binarny spełnia podane warunki zdefiniować funkcję wykorzystującą operatory bitowe.