Sprawdź się
Zadanie
Czesław Bitek od dziesięciu lat jest rolnikiem. Jest właścicielem pięciu pól w malowniczej Bitkolandii, na których uprawia pszenicę. Rokrocznie po żniwach dopisuje do pliku zbiory.txt nowy wiersz z informacją, ile ton ziarna udało mu się zebrać z każdego z pól (). Plik opisujący zbiory składa się z dziesięciu wierszy, z kolei każdy wiersz z pięciu liczb rzeczywistych rozdzielonych przy pomocy znaku spacji. Pierwszy wiersz opisuje pierwszy rok działalności Czesława, a ostatni – dziesiąty.
Plik tekstowy zawierający liczby zmiennoprzecinkowe. Pobierz załącznik
Czesław w dziewiątym roku swojej rolniczej działalności uzyskał z jednego hektara dokładnie cztery tony pszenicy. Napisz program obliczający, ile hektarów ma każde z pól.
Zrealizuj zadanie w jednym z wybranych języków programowania.
Specyfikacja:
Dane:
zbiory[rok][pole] – tablica liczb rzeczywistych przechowująca informacje o zbiorach pszenicy
Wynik:
Na standardowym wyjściu, w oddzielnych liniach, program wypisuje ciąg liczb rzeczywistych – powierzchnię każdego z pól.
JĘZYK JAVA
Przykładowe rozwiązanie:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Rozwiazanie {
public static void main(String[] args) throws FileNotFoundException {
double[][] zbiory = new double[10][5];
Scanner sc = new Scanner(new File("zbiory.txt"));
for (int i = 0; i < 10; i++) {
String[] zbioryWRoku = sc.nextLine().split(" ");
for (int j = 0; j < 5; j++) {
zbiory[i][j] = Double.parseDouble(zbioryWRoku[j]);
}
}
int badanyRok = 9;
for (int i = 0; i < 5; i++) {
System.out.println(zbiory[badanyRok-1][i] / 4.0);
}
}
}JĘZYK C++
Przykładowe rozwiązanie zadania:
#include <iostream>
#include <fstream>
using namespace std;
int main ()
{
double zbiory[10][5];
ifstream plikZbiory;
plikZbiory.open("zbiory.txt");
for(int i = 0; i < 10; i++){
plikZbiory >> zbiory[i][0] >> zbiory[i][1] >> zbiory[i][2]
>> zbiory[i][3] >> zbiory[i][4];
}
int badanyRok = 9;
for (int i = 0; i < 5; i++) {
cout << (zbiory[badanyRok-1][i] / 4.0) << endl;
}
}JĘZYK PYTHON
Przykładowe rozwiązanie zadania:
zbiory = [[0.0 for x in range(5)] for y in range(10)]
plik_zbiory = open("zbiory.txt")
for i in range(0, 10):
zbiory_w_roku = plik_zbiory.readline().split(" ")
for j in range(0, 5):
zbiory[i][j] = float(zbiory_w_roku[j])
badany_rok = 9
for i in range(0, 5):
print(zbiory[badany_rok-1][i] / 4.0)Król Bitkolandii gwarantuje dopłaty dla średnich i dużych rolników. Pomoc jest przydzielana tym rolnikom, którzy wykazali w trzech ostatnich latach średnie roczne zbiory przekraczające 2100 ton. Napisz program sprawdzający, czy Czesław otrzyma dopłatę.
Zrealizuj zadanie w jednym z wybranych języków programowania.
Specyfikacja:
Dane:
zbiory[rok][pole] – tablica liczb rzeczywistych przechowująca informacje o zbiorach pszenicy.
Wynik:
Program wypisuje na standardowym wyjściu słowo TAK, jeżeli Czesław otrzyma dopłatę lub NIE w przeciwnym wypadku.
JĘZYK JAVA
Przykładowe rozwiązanie:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Rozwiazanie {
public static void main(String[] args) throws FileNotFoundException {
double[][] zbiory = new double[10][5];
Scanner sc = new Scanner(new File("zbiory.txt"));
for (int i = 0; i < 10; i++) {
String[] zbioryWRoku = sc.nextLine().split(" ");
for (int j = 0; j < 5; j++) {
zbiory[i][j] = Double.parseDouble(zbioryWRoku[j]);
}
}
int poczatekBadanyRok = 10 - 3;
double sumaZbiorow = 0;
for (int i = poczatekBadanyRok; i < 10; i++) {
for (int j = 0; j < 5; j++) {
sumaZbiorow += zbiory[i][j];
}
}
if(sumaZbiorow / 3 > 2100){
System.out.println("TAK");
}
else{
System.out.println("NIE");
}
}
}JĘZYK C++
Przykładowe rozwiązanie zadania:
#include <iostream>
#include <fstream>
using namespace std;
int main ()
{
double zbiory[10][5];
ifstream plikZbiory;
plikZbiory.open("zbiory.txt");
for(int i = 0; i < 10; i++){
plikZbiory >> zbiory[i][0] >> zbiory[i][1] >> zbiory[i][2]
>> zbiory[i][3] >> zbiory[i][4];
}
int poczatekBadanyRok = 10 - 3;
double sumaZbiorow = 0;
for (int i = poczatekBadanyRok; i < 10; i++) {
for (int j = 0; j < 5; j++) {
sumaZbiorow += zbiory[i][j];
}
}
if(sumaZbiorow / 3 > 2100){
cout << "TAK" << endl;
}
else{
cout << "NIE" << endl;
}
}JĘZYK PYTHON
Przykładowe rozwiązanie zadania:
zbiory = [[0.0 for x in range(5)] for y in range(10)]
plik_zbiory = open("zbiory.txt")
for i in range(0, 10):
zbiory_w_roku = plik_zbiory.readline().split(" ")
for j in range(0, 5):
zbiory[i][j] = float(zbiory_w_roku[j])
poczatek_badany_rok = 10 - 3
suma_zbiorow = 0
for i in range(poczatek_badany_rok, 10):
for j in range(0, 5):
suma_zbiorow += zbiory[i][j]
if suma_zbiorow / 3 > 2100:
print('TAK')
else:
print('NIE')Czesław zastanawia się nad kupnem nawozu na przyszły rok. W poprzednich latach używał na wszystkich polach tego samego nawozu, zmieniając markę co dwa lata (zgodnie z tabelą przedstawioną poniżej). W tym roku postanowił zakupić nawóz na każde z pól oddzielnie. Zakładając, że nawóz jest najważniejszym czynnikiem gwarantującym wysokie plony, napisz program wskazujący, który z nawozów jest najlepszy dla każdego z pól i ile powinien go kupić.
Rok | Nazwa nawozu | Zużycie na hektar [kg] |
|---|---|---|
I, II | Rośnij wysoko | 320 |
III, IV | Pszenno nawóz | 340 |
V, VI | Super pszenica | 330 |
VII, VIII | Pszenica wzwyż | 350 |
IX, X | Mega pszenica | 350 |
Zrealizuj zadanie w jednym z wybranych języków programowania.
Specyfikacja:
Dane:
zbiory[rok][pole]– tablica liczb rzeczywistych przechowująca informacje o zbiorach pszenicy.tabela przedstawiająca użyte nawozy
Wynik:
Program wypisuje na standardowym wyjściu numer pola wraz z nazwą nawozu oraz wagą wyrażoną w kilogramach.
JĘZYK JAVA
Przykładowe rozwiązanie zadania:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Rozwiazanie {
public static void main(String[] args) throws FileNotFoundException {
double[][] zbiory = new double[10][5];
Scanner sc = new Scanner(new File("zbiory.txt"));
for (int i = 0; i < 10; i++) {
String[] zbioryWRoku = sc.nextLine().split(" ");
for (int j = 0; j < 5; j++) {
zbiory[i][j] = Double.parseDouble(zbioryWRoku[j]);
}
}
double[] wielkoscPola = new double[5];
int badanyRok = 9;
for (int i = 0; i < 5; i++) {
wielkoscPola[i] = zbiory[badanyRok-1][i] / 4.0;
}
String[] nazwyNawozow = {"Rośnij wysoko", "Pszenno nawóz", "Super pszenica", "Pszenica wzwyż", "Mega pszenica"};
int[] zuzycieNawozow = {320, 340, 330, 350, 350};
int[] najlepszyNawoz = new int[5];
for (int i = 0; i < 5; i++) {
double sumaZbiorowPoleNajlepszyNawoz = 0;
for (int j = 0; j < 10; j+=2) {
double sumaZbiorowPole = zbiory[j][i] + zbiory[j+1][i];
if(sumaZbiorowPole > sumaZbiorowPoleNajlepszyNawoz){
sumaZbiorowPoleNajlepszyNawoz = sumaZbiorowPole;
najlepszyNawoz[i] = j / 2;
}
}
}
for (int i = 0; i < 5; i++) {
double zuzycieNawozu = zuzycieNawozow[najlepszyNawoz[i]] * wielkoscPola[i];
System.out.println(i + ": " + nazwyNawozow[najlepszyNawoz[i]] + " " + zuzycieNawozu);
}
}
}JĘZYK C++
Przykładowe rozwiązanie zadania:
#include <iostream>
#include <fstream>
using namespace std;
int main ()
{
double zbiory[10][5];
ifstream plikZbiory;
plikZbiory.open("zbiory.txt");
for(int i = 0; i < 10; i++){
plikZbiory >> zbiory[i][0] >> zbiory[i][1] >> zbiory[i][2]
>> zbiory[i][3] >> zbiory[i][4];
}
double wielkoscPola[5];
int badanyRok = 9;
for (int i = 0; i < 5; i++) {
wielkoscPola[i] = zbiory[badanyRok-1][i] / 4.0;
}
string nazwyNawozow[] = {"Rośnij wysoko", "Pszenno nawóz", "Super pszenica", "Pszenica wzwyż", "Mega pszenica"};
int zuzycieNawozow[] = {320, 340, 330, 350, 350};
int najlepszyNawoz[5];
for (int i = 0; i < 5; i++) {
double sumaZbiorowPoleNajlepszyNawoz = 0;
for (int j = 0; j < 10; j+=2) {
double sumaZbiorowPole = zbiory[j][i] + zbiory[j+1][i];
if(sumaZbiorowPole > sumaZbiorowPoleNajlepszyNawoz){
sumaZbiorowPoleNajlepszyNawoz = sumaZbiorowPole;
najlepszyNawoz[i] = j / 2;
}
}
}
for (int i = 0; i < 5; i++) {
double zuzycieNawozu = zuzycieNawozow[najlepszyNawoz[i]] * wielkoscPola[i];
cout << i << ": " << nazwyNawozow[najlepszyNawoz[i]] << " " << zuzycieNawozu << endl;
}
}JĘZYK PYTHON
Przykładowe rozwiązanie zadania:
zbiory = [[0.0 for x in range(5)] for y in range(10)]
plik_zbiory = open("zbiory.txt")
for i in range(0, 10):
zbiory_w_roku = plik_zbiory.readline().split(" ")
for j in range(0, 5):
zbiory[i][j] = float(zbiory_w_roku[j])
wielkosc_pola = []
badany_rok = 9
for i in range(0, 5):
wielkosc_pola.append(zbiory[badany_rok-1][i] / 4.0)
nazwy_nawozow = ["Rośnij wysoko", "Pszenno nawóz", "Super pszenica", "Pszenica wzwyż", "Mega pszenica"]
zuzycie_nawozow = [320, 340, 330, 350, 350]
najlepszy_nawoz = [0] * 5
for i in range(0, 5):
suma_zbiorow_pole_najlepszy_nawoz = 0
for j in range(0, 10, 2):
suma_zbiorow_pole = zbiory[j][i] + zbiory[j+1][i]
if suma_zbiorow_pole > suma_zbiorow_pole_najlepszy_nawoz:
suma_zbiorow_pole_najlepszy_nawoz = suma_zbiorow_pole
najlepszy_nawoz[i] = int(j / 2)
for i in range(0, 5):
zuzycie_nawozu = zuzycie_nawozow[najlepszy_nawoz[i]] * wielkosc_pola[i]
print(str(i) + ": " + nazwy_nawozow[najlepszy_nawoz[i]] + " " + str(zuzycie_nawozu))