<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
android:padding="16dp">
<TextView
android:id="@+id/timerText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="00:00"
android:textSize="40sp"
android:textStyle="bold"/>
<Button
android:id="@+id/startButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Έναρξη"
android:layout_marginTop="20dp"/>
<Button
android:id="@+id/pauseButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Παύση"
android:layout_marginTop="10dp"/>
<Button
android:id="@+id/resetButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Επαναφορά"
android:layout_marginTop="10dp"/>
</LinearLayout>
package com.example.stopwatch
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import androidx.appcompat.app.AppCompatActivity
import com.example.stopwatch.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
private var seconds = 0
private var isRunning = false
private val handler = Handler(Looper.getMainLooper())
private val runnable = object : Runnable {
override fun run() {
if (isRunning) {
seconds++
updateTimerText()
handler.postDelayed(this, 1000) // Εκτέλεση κάθε 1 δευτερόλεπτο
}
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
// Κουμπί Έναρξης
binding.startButton.setOnClickListener {
if (!isRunning) {
isRunning = true
handler.post(runnable)
}
}
// Κουμπί Παύσης
binding.pauseButton.setOnClickListener {
isRunning = false
handler.removeCallbacks(runnable)
}
// Κουμπί Επαναφοράς
binding.resetButton.setOnClickListener {
isRunning = false
handler.removeCallbacks(runnable)
seconds = 0
updateTimerText()
}
updateTimerText()
}
private fun updateTimerText() {
val minutes = seconds / 60
val secs = seconds % 60
val time = String.format("%02d:%02d", minutes, secs)
binding.timerText.text = time
}
}
abstract class CountUpTimer(private val interval: Long) {
private var handler = Handler(Looper.getMainLooper())
private var elapsedTime = 0L
private val runnable = object : Runnable {
override fun run() {
elapsedTime += interval
onTick(elapsedTime)
handler.postDelayed(this, interval)
}
}
fun start() {
handler.post(runnable)
}
fun stop() {
handler.removeCallbacks(runnable)
}
fun reset() {
stop()
elapsedTime = 0L
onTick(elapsedTime)
}
abstract fun onTick(millisElapsed: Long)
}
// Χρήση στην MainActivity
val timer = object : CountUpTimer(1000) {
override fun onTick(millisElapsed: Long) {
val secs = millisElapsed / 1000
val minutes = secs / 60
val seconds = secs % 60
binding.timerText.text = String.format("%02d:%02d", minutes, seconds)
}
}
binding.startButton.setOnClickListener { timer.start() }
binding.pauseButton.setOnClickListener { timer.stop() }
binding.resetButton.setOnClickListener { timer.reset() }
pip install numpy
import numpy as np
# Δημιουργία μονοδιάστατου πίνακα
lista = [1, 2, 3, 4]
pinakas = np.array(lista)
print(pinakas) # Έξοδος: [1 2 3 4]
print(type(pinakas)) # Έξοδος: <class 'numpy.ndarray'>
import numpy as np
# Δημιουργία 2D πίνακα
pinakas_2d = np.array([[1, 2, 3], [4, 5, 6]])
print(pinakas_2d)
# Έξοδος:
# [[1 2 3]
# [4 5 6]]
print("Διαστάσεις:", pinakas_2d.shape) # Έξοδος: (2, 3)
import numpy as np
pinakas1 = np.array([1, 2, 3])
pinakas2 = np.array([4, 5, 6])
# Πρόσθεση
athroisma = pinakas1 + pinakas2
print("Πρόσθεση:", athroisma) # Έξοδος: [5 7 9]
# Πολλαπλασιασμός
pollaplasiasmos = pinakas1 * 2
print("Πολλαπλασιασμός:", pollaplasiasmos) # Έξοδος: [2 4 6]
import numpy as np
# Πίνακας με μηδενικά
midena = np.zeros((2, 3))
print("Μηδενικά:\n", midena)
# Έξοδος:
# [[0. 0. 0.]
# [0. 0. 0.]]
# Πίνακας με μονάδες
monades = np.ones((2, 2))
print("Μονάδες:\n", monades)
# Έξοδος:
# [[1. 1.]
# [1. 1.]]
# Τυχαίος πίνακας
tyxaios = np.random.rand(3)
print("Τυχαίος:", tyxaios) # Έξοδος: π.χ. [0.23 0.67 0.89]
import numpy as np
pinakas = np.array([10, 20, 30, 40, 50])
# Επιλογή πρώτων 3 στοιχείων
temaxia = pinakas[:3]
print("Τεμάχια:", temaxia) # Έξοδος: [10 20 30]
# Επιλογή στοιχείων από το 2ο έως το τέλος
temaxia2 = pinakas[1:]
print("Από 2ο και μετά:", temaxia2) # Έξοδος: [20 30 40 50]
import numpy as np
pinakas = np.array([[1, 2], [3, 4]])
print("Διαστάσεις:", pinakas.shape) # Έξοδος: (2, 2)
print("Τύπος δεδομένων:", pinakas.dtype) # Έξοδος: int64
print("Μέγεθος:", pinakas.size) # Έξοδος: 4