Files
PythonProgramozas_GKNB_MSTM…/SajatMegoldasok/vizsga_02_minta.ipynb
2024-12-09 19:41:42 +01:00

261 lines
7.5 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Vizsgaminta 2."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1. feladat [4p]\n",
"\n",
"A `planets` lista a Naprendszer bolygóinak tömegét és (átlagos) sugarát tartalmazza. Készítsünk programot, amely kiszámítja, hogy a bolygók felszínén érvényes nehézségi gyorsulás hányszorosa a földinek! A nehézségi gyorsulás képlete\n",
"$$g = G \\frac{M}{R^2},$$\n",
"ahol $G = 6,67408 \\cdot 10^{-11} \\frac{Nm^2}{kg^2}$ az univerzális gravitációs állandó, $M$ a bolygó tömege, $R$ pedig a bolygó tömegközéppontjától mért távolság. A program ne csak a `planets` listára működjön, hanem bármely ugyanilyen formátumú, bemenetre is! Elvárt futási eredmény:\n",
"```\n",
"\n",
"Merkúr: 0.38\n",
"Vénusz: 0.90\n",
"Föld: 1.00\n",
"...\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Merkúr: 0.38\n",
"Vénusz: 0.9\n",
"Föld: 1.0\n",
"Mars: 0.38\n",
"Jupiter: 2.64\n",
"Szaturnusz: 1.14\n",
"Uránusz: 0.92\n",
"Neptunusz: 1.15\n"
]
}
],
"source": [
"planets = [\n",
" # bolygó neve, tömeg(10^21kg), sugár(km)\n",
" ('Merkúr', 330.2, 2439.7),\n",
" ('Vénusz', 4868.5, 6051.8),\n",
" ('Föld', 5973.6, 6371.0),\n",
" ('Mars', 641.85, 3389.5),\n",
" ('Jupiter', 1898600, 69911),\n",
" ('Szaturnusz', 568460, 58232),\n",
" ('Uránusz', 86832, 25362),\n",
" ('Neptunusz', 102430, 24622)\n",
"]\n",
"\n",
"\n",
"G = 6.67408 * 10**-11\n",
"\n",
"#föld gravitacioja:\n",
"M = planets[2][1] * 10 ** 21\n",
"R = planets[2][2] * 1000\n",
"fold_g = G * M / R ** 2\n",
"\n",
"\n",
"for i in planets:\n",
" M = i[1]*10**21\n",
" R2 = (i[2] * 1000) ** 2\n",
" g = G* (M/R2)\n",
" print(f\"{i[0]}: {round(g/fold_g,2)}\")\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2. feladat [4p]\n",
"\n",
"Készítsünk programot, amely bekéri a felhasználótól $n$ értékét, szimulál $n$ darab kockadobást, majd kiírja, hogy mi volt a leghosszabb 6-os sorozat hossza! Példa futási eredmény:\n",
"```\n",
"n: 50\n",
"31554643644341364414422455514666664664563666113524\n",
"A leghosszabb 6-os sorozat hossza: 5\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"463346463611214344644434512435364132263214511246655114424621542564625432253266512135666321524465236523511155213621633461152112634424142224413243313621\n",
"A leghosszabb 6-os sorozat hossza: 3\n"
]
}
],
"source": [
"import random\n",
"\n",
"n = int(input(\"n: \"))\n",
"max6 = 0; counter = 0; out = \"\"\n",
"\n",
"for i in range(n):\n",
" ranum = random.randint(1,6)\n",
" if ranum == 6:\n",
" counter += 1\n",
" else:\n",
" counter = 0\n",
" if counter > max6:\n",
" max6 = counter\n",
" \n",
" out += str(ranum)\n",
"print(out)\n",
"print(\"A leghosszabb 6-os sorozat hossza:\", max6)\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 3. feladat [12p]\n",
"\n",
"A [hotels.txt](hotels.txt) szövegfájl Las Vegas-i szállodák értékeléséről tartalmaz adatokat. Minden sor egy szállóvendég által kiosztott értékeléshez tartozik. Készítsünk programot, amely kiszámítja és kiírja az alábbi statisztikákat:\n",
"- A szobák száma (`Nr. rooms`) alapján melyik az öt legnagyobb szálloda?\n",
"- Melyik szállodá(ka)t értékelték (`Score`) átlagosan a legmagasabbra és mekkora ez az átlagpont?\n",
"- Hány ponttal magasabb a medencével (`Pool`) rendelkező szállodák átlagos értékelése (`Score`) a többi szálloda átlagos értékelésénél?"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" Hotel name Nr. rooms Pool Gym Tennis court \\\n",
"0 Circus Circus Hotel & Casino Las Vegas 3773 NO YES NO \n",
"1 Circus Circus Hotel & Casino Las Vegas 3773 NO YES NO \n",
"2 Circus Circus Hotel & Casino Las Vegas 3773 NO YES NO \n",
"3 Circus Circus Hotel & Casino Las Vegas 3773 NO YES NO \n",
"4 Circus Circus Hotel & Casino Las Vegas 3773 NO YES NO \n",
"\n",
" Spa Casino Traveler type Period of stay Score \n",
"0 NO YES Friends Dec-Feb 5 \n",
"1 NO YES Business Dec-Feb 3 \n",
"2 NO YES Families Mar-May 5 \n",
"3 NO YES Friends Mar-May 4 \n",
"4 NO YES Solo Mar-May 4 \n"
]
}
],
"source": [
"import pandas as pd\n",
"\n",
"frame = pd.read_csv(\"hotels.txt\", sep=';')\n",
"print(frame[:5])"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Hotel name\n",
"The Venetian Las Vegas Hotel 96648\n",
"Excalibur Hotel & Casino 95544\n",
"Bellagio Las Vegas 94392\n",
"Circus Circus Hotel & Casino Las Vegas 90552\n",
"Caesars Palace 80352\n",
"Name: Nr. rooms, dtype: int64\n"
]
}
],
"source": [
"legtobb = frame.groupby(\"Hotel name\")[\"Nr. rooms\"].sum().sort_values(ascending=False)[:5]\n",
"\n",
"print(legtobb)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Hotel name\n",
"Wynn Las Vegas 4.625\n",
"Name: Score, dtype: float64\n"
]
}
],
"source": [
"scored = frame.groupby(\"Hotel name\")[\"Score\"].mean().sort_values(ascending=False)[:1]\n",
"\n",
"print(scored)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.9604166666666667\n"
]
}
],
"source": [
"withspas = frame[frame[\"Pool\"] == \"YES\"][\"Score\"].mean()\n",
"withoutspas = frame[frame[\"Pool\"] == \"NO\"][\"Score\"].mean()\n",
"\n",
"print(withspas - withoutspas)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.13.0"
}
},
"nbformat": 4,
"nbformat_minor": 1
}