MKdI L2, Informatyka - Języki programowania


MKdI - Metody komputerowe dla inżynierów Laboratorium nr 2

Przykładowe zadania:

Zadanie 1:

Napisać program, w którym wczytuje się wyrazy (liczby) dowolnego ciągu liczb całkowitych (koniec ciągu oznaczony jest zerem). Elementy wczytanego ciągu zapisać w tablicy i wyświetlić w pierwszej linii. W drugiej linii wyświetlić liczby dodatnie podzielne przez 3 (zapisać do drugiej tablicy) oraz ich sumę, np. dla ciągu 5, 6, -3, 3, 9, 5, 0 należy otrzymać wynik: 6, 3, 9 suma = 18. Ciąg testowy: 1, 4, -7, 9, 3, -2, 7, 6, 9, -1, 3, 6, 9, 8, 0. Podać ciąg podzielny i jego sumę.

Sub Zadanie01()

Dim Ciag(1 To 20) As Integer

Dim Podzielne(1 To 20) As Integer

Dim Suma As Integer

Dim Liczba As Integer

Dim i As Integer

Dim n As Integer

Dim m As Integer

Dim strCiag As String

Dim strPodzielne As String

n = 1 'ilość liczb w ciągu

m = 1 'ilość liczb podzielnych przez 3 w ciągu

Suma = 0

Do

Liczba = Val(InputBox("Podaj kolejny wyraz ciągu (0 kończy wprowadzanie danych)", "Wyrazy ciągu"))

If Liczba <> 0 Then 'jeżeli pobrana liczba jest inna niż 0 to:

Ciag(n) = Liczba 'dopisz liczbę do tablicy Ciągu

n = n + 1

If (Liczba > 0 And Liczba / 3 = Liczba \ 3) Then

'jeżeli liczba podzielona przez 3 daje taki sam wynik jak ta liczba dzielona przez 3 w sposób całkowity to jest to liczba podzielna przez 3

Podzielne(m) = Liczba

m = m + 1

Suma = Suma + Liczba

End If 'koniec warunku sprawdzającego czy liczba podzielna przez trzy

End If 'koniec warunku sprawdzającego czy liczba różna od 0

Loop Until Liczba = 0 'pętla Do powtarzana, aż do pobrania liczby 0 kończącej

'Wyświetlenie wyników

strCiag = ""

For i = 1 To n

strCiag = strCiag + Str(Ciag(i))

Next i

MsgBox ("Elementy ciągu:" + strCiag + ", wprowadzono " + Str(n) + " elementów")

strPodzielne = ""

For i = 1 To m

strPodzielne = strPodzielne + Str(Podzielne(i))

Next i

MsgBox ("Elementy podzielne przez 3 ciągu:" + strPodzielne + ", wprowadzono " + Str(m) + " elementów" + Chr(13) + "Suma ciągu:" + Str(Suma))

End Sub

Zadanie 2:

Wpłacamy do banku kwotę X. Oprocentowanie wynosi P procent w skali rocznej. Napisać program, który dla danych X, P obliczy po ilu latach wartość wkładu zostanie podwojona. Wyświetlić również wyniki pośrednie, tzn. wartość wkładów po każdym następnym roku, aż do momentu podwojenia.

Sub Zadanie02()

Dim X As Single 'zmienna przechowująca wpłacaną kwotę

Dim NowaKwota As Single 'zmienna przechowująca kwotę z oprocentowaniem po każdym roku

Dim P As Single 'zmienna przechowująca oprocentowanie

Dim Rok As Integer 'zmienna przechowująca liczbę lat

Do

X = Val(InputBox("Podaj kwotę X wpłaty:", "Bank"))

Loop Until X > 0 'pętla Do uniemożliwia wprowadznie liczby mniejszej lub równej 0

Do

P = Val(InputBox("Podaj oprocentowanie P roczne w %:", "Bank"))

Loop Until P > 0

'pobrane oprocentowanie jest w %, trzeba je podzielić przez 100

P = P / 100

Rok = 0 'zerowanie, wpłata odbywa się w "zerowym" roku oszczędzania

NowaKwota = X 'kwota przechowywana w banku znajduje się w zmiennej NowaKwota

Do

Rok = Rok + 1 'zwiększamy rok oszczędzania

NowaKwota = NowaKwota + NowaKwota * P

'do kwoty oszczędności dodajemy procent z tej kwoty, jaki narósł w ciągu roku

MsgBox ("Rok : " + Str(Rok) + " Oszczędności : " + Str(NowaKwota))

Loop Until NowaKwota >= 2 * X

'pętla Do wykonuje się, aż oprocentowany wkład będzie co najmniej dwukrotnie wyższy

MsgBox ("Wpłata : " + Str(X) + " Oprocentowanie : " + Str(P * 100) + "%")

MsgBox ("Wkład zostanie podwojony po " + Str(Rok) + " latach")

End Sub

Zadanie 3:

Napisać program, który dla grupy studenckiej liczącej p osób wczytuje następujące dane (do tablicy określonego, zdefiniowanego typu): Nazwisko i imię, płeć (K/M), wysokość stypendium. Dla wprowadzonych danych wykonać następujące czynności:

a. Wyświetlić informacje o osobie (osobach) pobierających najwyższe stypendium,

b. Wyświetlić informacje o średnich stypendiach pobieranych przez kobiety i mężczyzn,

Sub Zadanie03()

Dim Studenci() As typStudent 'tablica dynamiczna przechowująca dane o studentach

Dim LiczStud As Integer 'zmienna przechowująca liczbę studentów

Dim i As Integer 'zmienna wykorzystywana w pętlach

Dim iMax As Integer

Dim vMax As Single

Dim SredniaK As Single

Dim SredniaM As Single

Dim IleK As Integer

Dim IleM As Integer

Do 'Podajemy dla ilu studentów wprowadzamy dane

LiczStud = Val(InputBox("Podaj liczbę studentów: ", "Pobieranie danych"))

Loop Until LiczStud > 0 'pętla Do zabezpieczająca

ReDim Studenci(LiczStud) 'znamy liczbę studentów, więc zmieniamy rozmiar tablicy

'Wczytywanie danych o studentach do tablicy Studenci

For i = 1 To LiczStud

Studenci(i).Imie = InputBox("Podaj Imię studenta: ", "Dane studenta " + Str(i) + " z " + Str(LiczStud))

Studenci(i).Nazwisko = InputBox("Podaj Nazwisko studenta: ", "Dane studenta " + Str(i) + " z " + Str(LiczStud))

Studenci(i).Plec = InputBox("Podaj płeć studenta (K lub M): ", "Dane studenta " + Str(i) + " z " + Str(LiczStud))

Studenci(i).Stypendium = Val(InputBox("Podaj wyskość stypendium studenta: ", "Dane studenta " + Str(i) + " z " + Str(LiczStud)))

Next i

'Szukanie najwyższego stypendium

iMax = 0 'indeks

vMax = 0 'wartość stypendium

For i = 1 To LiczStud

If Studenci(i).Stypendium > vMax Then

iMax = i 'nowy indeks wskazujący na osobę mającą największe stypendium

End If

Next i

MsgBox ("Najwyższe stypendium ma " + Studenci(iMax).Nazwisko + " " + Studenci(iMax).Imie + ", które wynosi: " + Str(Studenci(iMax).Stypendium))

'Obliczanie średniego stypendium dla mężczyzn i kobiet

SredniaK = 0

SredniaM = 0

IleK = 0

IleM = 0

For i = 1 To LiczStud

If Studenci(i).Plec = "K" Then 'student jest kobietą

IleK = IleK + 1

SredniaK = SredniaK + Studenci(i).Stypendium

Else 'student jest mężczyzną

IleM = IleM + 1

SredniaM = SredniaM + Studenci(i).Stypendium

End If

Next i

SredniaK = SredniaK / IleK

SredniaM = SredniaM / IleM

MsgBox ("Średnie stypednium z" + Str(IleK) + " kobiet wynosi: " + Str(SredniaK))

MsgBox ("Średnie stypednium z" + Str(IleM) + " mężczyzn wynosi: " + Str(SredniaM))

End Sub

Zadania do samodzielnego rozwiązania:

Zadanie 4:

Napisać program, w którym wczytywany jest ciąg liczb rzeczywistych (koniec ciągu oznaczony jest zerem, które do ciągu nie należy). Wczytane liczby zapisać w trzech tablicach i wyświetlić w trzech kolejnych liniach. W pierwszej wszystkie liczby, w drugiej liczby dodatnie, w trzeciej ujemne. Po każdym ciągu (w danej linii) wyświetlić ich sumę i liczbę elementów znajdujących się w odpowiedniej tablicy.

Zadanie 5:

Wczytać liczbę n oraz wyrazy dowolnego n elementowego ciągu liczb rzeczywistych do tablicy. Obliczyć średnią arytmetyczną sr wyrazów ciągu, a następnie utworzyć jeszcze dwie tablice i wyświetlić ich zawartość. Pierwsza powinna zawierać liczby większe i równe średniej, druga mniejsze od średniej.

2



Wyszukiwarka

Podobne podstrony:
MKdI L1, Informatyka - Języki programowania
Informatyka jezyki programowania Wyklad
języki i metody programowania C2 - podstawowe pojęcia, informatyka, języki i metody programowania C2
Podstawy Informatyki Wykład X Object Pascal Jezyki programowania, Proste typy danych
SYLABUS Technologie informacyjne Ogrodnictwo SGGW dr Marek Wierzbicki, Ogrodnictwo 2011, INFORMATYKA
Informacje o C++ Builder, Programowanie, C++ Builder
31 Jezyki programowania
wyklad5.cpp, JAVA jest językiem programowania obiektowego
Języki programowania zaliczenie wykłady Języki programowania3
Języki programowania zaliczenie wykłady Wykład 5
Języki programowania wykłady
Informatyka, Podstawy Programowania w jezyku C++, Podstawy Programowania w jezyku C++'
Informatyka, Komputerowe programy wspomagania operacyjnego generał, Komputerowe programy wspomagania
Informatyka, Komputerowe programy wspomagania operacyjnego generał, Komputerowe programy wspomagania
Algorytmy i jezyki programowania(4)
4 jezyki programowania 3

więcej podobnych podstron