Programowanie i metody numeryczne — laboratorium, część 3 3 3.1 Tablice Wstęp Zadanie 3.1.1. Napisz procedurę, która przyjmuje tablicę typu double i wyświetla ją na ekran. Zadanie 3.1.2. Używając szablonów, popraw procedurę z powyższego zadania tak aby mogła wypisywać tablicę dowolnego typu. Zadanie 3.1.3. Napisz program, który definiuje dwie tablice zmiennych typu int długości 20, a następnie wypełnia pierwszą z nich kolejnymi liczbami naturalnymi zaczynając od 1, a drugą zerami. Na koniec program powinien wypisać zawartość tablic na ekran. Zadanie 3.1.4. W powyższym zadaniu spróbuj wypełnić więcej elementów pierwszej tablicy, aniżeli wynosi jej zadeklarowana długość, np. 25, 40, 70, 1000, 10000, 100000. Co się wówczas stanie? Zadanie 3.1.5. Napisz procedurę pobierającą trzy zmienne a, b, c i zmieniającą wartości zmiennych a i b na a := ca, b := b/c. Napisz program demonstrujący działanie procedury. Zadanie 3.1.6. Napisz funkcję, której argumentami są dwie tablice typu double o tej samej długości. Funkcja ta, traktując te tablice jako wektory z Rn , ma zwrócić ich iloczyn skalarny. Zadanie 3.1.7. Napisz procedurę, której argumentami są dwie tablice typu double o tej samej długości, zapisującą do pierwszej z nich sumę kolejnych elementów obu tablic. Napisz program demonstrujący działanie procedury. Zadanie 3.1.8. Napisz procedurę, która jako argument przyjmuje napis i wyświetla kody odpowiadające znakom zawartym w tym napisie. 3.2 Dynamiczny przydział pamięci Zadanie 3.2.1. Napisz program, który wczytuje liczbę n, a następnie zajmuje n GB pamięci zmiennymi typu double. Na życzenie użytkownika, program powinien wypełniać zmienne jedynkami lub nie. Program powinien zakończyć się i zwolnić pamięć na polecenie użytkownika. Zadanie 3.2.2. Napisz funkcję, która zwraca kopię danej tablicy elementów typu double. Zadanie 3.2.3. Napisz funkcję, która przyjmuje dwie tablice zmiennych tego samego typu i łączy je w jedną tablicę, tzn. zwraca nową tablicę zawierającą kolejno elementy pierwszej i drugiej z podanych tablic. Zadanie 3.2.4. Napisz funkcję, która jako parametr przyjmuje nazwę pliku, wczyta liczby znajdujące się w tym pliku i zwróci tablicę typu double zawierającą te liczby. Funkcja powinna działać w następujący sposób. Na początku powinna założyć, że liczb będzie nie więcej niż 10, zadeklarować tablicę takiej długości i do niej wczytywać liczby. Gdyby się okazało, że liczb jest jednak więcej, należy zadeklarować nową tablicę, dwa razy większą, skopiować do niej zawartość starej tablicy i zwolnić pamięć zajętą przez nią, a następnie kolejne liczby umieszczać dalej w nowej tablicy. Gdyby ona także nie wystarczyła, to należy ponownie zadeklarować dwa razy większą od poprzedniej tablicę i powtarzać powyższe czynności aż wszystkie liczby zostaną wczytane. Na koniec należy zwrócić tablicę ze wczytanymi liczbami. 3.3 Parametry wiersza poleceń Zadanie 3.3.1. Napisz program, który wypisuje na ekran podane przez użytkownika parametry wiersza poleceń. Zadanie 3.3.2. Napisz program, który kopiuje wybrany plik. Nazwa pliku oraz nowa nazwa pliku powinny zostać wczytane z wiersza poleceń. Zadanie 3.3.3. Napisz program, który jako parametry wiersza poleceń przyjmuje dowolną ilość liczb całkowitych. Program powinien zsumować podane liczby i wypisać sumę na ekran. 1