Raport testów maszynowych

Informacje o teście
Ostatnia modyfikacjaSat Oct 6 18:36:48 2018
AutorPiotr Duch
Emailpduch@iis.p.lodz.pl
W przypadku problemów z rozwiązaniem zadania i/lub zrozumieniem oglądanego właśnie raportu z testów maszynowych, proszę kontaktować się z jego autorem, pod podanym wyżej adresem email.
 
Informacje o odpowiedzi
PrzedmiotPP2: Podstawy Programowania 2
Temat1. Wskaźniki i tablice
Zadanie12. Histogram
Metainformacjesubject=16; topic=2001; task=2112; test=2112; reply=360583; user=462; hub=50408
Data przesłania odpowiedzi2019-08-23T16:28:13+02:00
Rozpoczęcie analizy2019-08-23 16:28:21.971367
Czas analizy7.319 sekund
Status
Błąd: Program PRZERWANY; miał zwrócić wartość 0 a zakończył się sygnałem SIGSEGV
Przesłana odpowiedź wymaga poprawy!
 
Historia odpowiedzi
Podejście17
Poprzednie raporty
2019-08-22 17:43:07+02:00RAPORT
2019-08-22 17:26:49+02:00RAPORT
2019-08-22 17:22:21+02:00RAPORT
2019-08-22 17:13:20+02:00RAPORT
2019-08-22 17:07:12+02:00RAPORT
2019-08-22 16:58:28+02:00RAPORT
2019-08-22 16:58:01+02:00RAPORT
2019-08-22 14:54:04+02:00RAPORT
2019-08-22 14:46:22+02:00RAPORT
2019-08-22 14:39:52+02:00RAPORT
2019-08-22 14:37:48+02:00RAPORT
2019-08-22 14:14:52+02:00RAPORT
2019-08-21 22:21:39+02:00RAPORT
2019-08-21 14:24:52+02:00RAPORT
2019-08-21 14:24:01+02:00RAPORT
2019-08-21 14:22:39+02:00RAPORT
Pokaż starsze odpowiedzi

Dane wejściowe [Pokaż]

Napisz program, który pobierze tablicę liczb rzeczywistych z przedziału <0 - 11) od użytkownika (maksymalnie 100, w przypadku mniejszej liczby danych wartość -1 będzie oznaczała koniec wprowadzania danych) i zapisze je do tablicy. Dla pobranej tablicy wyznacz histogram liczb, zakładając 11 przedziałów: <0;1), <1;2), ... <10; 11).

Histogram wyświetl w postaci ciągu wartości znajdujących się w każdym z 11 przedziałów. Wyniki mają być wyświetlone w jednej linii, oddzielone spacjami.

W przypadku podania błędnych danych program powinien wyświetlić komunikat Incorrect input i zakończyć działanie z kodem błędu 1, w przypadku niepodania żadnej wartości program ma wyświetlić komunikat Not enough data available i zakończyć działanie z kodem błędu 3.


Przygotuj funkcje do pobierania danych od użytkownika, wyświetlania danych na konsoli oraz wyznaczania histogramu.

Prototyp funkcji wyznaczającej histogram ma wyglądać następująco:

int create_histogram(const float *vec, int size, int *out, int out_size);

Parametry:

Wartość zwrócona:

Przykładowa interakcja z programem -- sukces:

Podaj liczby: 4.812335 4.005256 2.990941 10.987188 10.223234 5.657190 8.759232 7.377624 4.812679 -1
0 0 1 0 3 1 0 1 1 0 2
Podaj liczby: -4.3 -15.85 -18.22 -15.36 -3.65 -6.94 -5.42 -11.21 -17.25 -1.00⏎
0 0 0 0 0 0 0 0 0 0 0 ⏎

Uwaga

Zawartość przesłanej odpowiedzi
1. main.c 708 bajtów Pobierz Pokaż Przesłany kod, zmodyfikowany pod testy
2. vector_utils.c 1,186 bajtów Pobierz Pokaż Przesłany kod, zmodyfikowany pod testy
3. vector_utils.h 249 bajtów Pobierz Pokaż Przesłany kod
4. unit_helper_v2.c 11,786 bajtów Pobierz Pokaż Wstrzyknięty kod testujący
5. unit_helper_v2.h 3,974 bajtów Pobierz Pokaż Wstrzyknięty kod testujący
6. unit_test_v2.c 53,753 bajtów Pobierz Pokaż Wstrzyknięty kod testujący
7. tested_declarations.h 549 bajtów Pobierz Pokaż Wstrzyknięty kod testujący, prototypy wymaganych funkcji
8. rdebug.c 45,693 bajtów Pobierz Pokaż Wstrzyknięty kod testujący
9. rdebug.h 6,417 bajtów Pobierz Pokaż Wstrzyknięty kod testujący, prototypy wymaganych funkcji
Pobierz plik ZIP ze wszystkimi powyższymi plikami: source.zip (28,677 bajtów).

Raport z przebiegu kompilacji [Pokaż]

Raport z przebiegu konsolidacji [Pokaż]

Raport analizy statycznej [Pokaż]

Test 1: Testy jednostkowe [Pokaż]

Opis: Analiza wyników funkcji w programie studenta

Wywołanie:

./main 1

Widok konsoli programu -- przebieg interakcji z użytkownikiem:


### Testy jednostkowe ###

TEST 1: Sprawdzanie poprawności działania funkcji create_histogram #####START##########END#####Powinno być: [2, 1, 1, 2, 0, 0, 0, 2, 1, 1, 0] Tablica po wywołaniu funkcji create_histogram: 10 0 0 0 0 0 0 0 0 0 0 Wynik: PORAŻKA: Funkcja create_histogram() niepoprawnie wypełniła tablicę Sprawdź funkcję testującą TEST1(void) z pliku unit_test_v2.c, w linii 76
-8 10 10 -7 9 8 -5 0 -2 8 -10 -1 6 -3 0 -4 0 1 7 4 5 1 7 5 0 5 -4 2 -2 8 9 -2 4 3 -4 4 -5

Program przerwany; kod błędu=139 (Sygnał SIGSEGV)

Raport postmortem - reakcja na błąd SIGSEGV [Pokaż]

Źródło błędu SIGSEGV wykryto w funkcji ??, plik None:None

Widok kodu źródłowego:


#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include \"vector_utils.h\"
#include \"tested_declarations.h\"
#include \"rdebug.h\"

int main()
{

Kolejność wywoływania funkcji (stack trace):

Błąd zarejestrowano w funkcji ?? w linii None:-1 , którą wywołano
w funkcji ?? wywołanej przez system operacyjny.

Test został przerwany; Program PRZERWANY; miał zwrócić wartość 0 a zakończył się sygnałem SIGSEGV

Dodatek: Informacje o środowisku uruchomieniowym [Pokaż]

 

Objaśnienia oraz informacje dodatkowe:

tekst Dane wpisywane przez człowieka, z klawiatury (stdin, standard input, standardowy strumień wejścia)
tekst Dane wyświetlane przez program, np. funkcją fprintf (stdout, standard output, standardowy strumień wyjścia)
tekst Dane wyświetlane przez program, np. funkcją printf (stderr, standard error, standardowy strumień błędów)
Wciśnięcie klawisza SPACE
Wciśnięcie klawisza ENTER; znak nowej linii
? Znak spoza przestrzeni ASCII; niedopuszczalny
System testów maszynowych (c) Tomasz Jaworski, 2017; IIS PŁ
Icons made by Dave Gandy from www.flaticon.com is licensed by CC 3.0 BY
Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY