Datacommunicatie

Examenvoorbereiding kandidaat boekje

Refresh de site op nieuwe reacties te zien. Deze updaten niet live namelijk.

Reactie plaatsen

Reacties

AD
5 uur geleden

Dis mijn script die toen leek te werken

# OPDRACHT
#Hier maak ik een pad aan naar de map "KentekenCheck"
appPath = "C:\\Users\\administrator\\KentekenCheck\\"
# Maak de variabele appPath aan en gebruik die om op één plek om het pad te definieren voor alle bestanden.
# Gebruik vervolgens appPath overal bij het verwijzen naar het pad van de bestanden.
# Doe dit voor eventuele nieuwe verwijzingen én vervang de bestaande verwijzingen in deze code.

print("= = = programma kentekensignalering gestart = = = ")

# OPDRACHT
#Hier laat ik aan de gebruiker de huidige tijd en datum zien.
print(datetime.now())
# Druk de huidige datum en tijd af

rdwInput = open("C:\\Users\\administrator\\KentekenCheck\\RDW.csv")
scanInput = open("C:\\Users\\administrator\\KentekenCheck\\GescandeData.csv")
aantalVerwerkt = aantalFout = 0
legenVals = ""

# OPDRACHT
#Hier wordt er gevraagd of de gebruiket het .txt bestand leeg willen maken. Hierop kunnen ze met "j" of "n" antwoorden
legenVals = input("Wilt u het bestand vals.txt leegmaken? (j/n):")
# Vraag hier of het bestand vals.txt leeg gemaakt moet worden (j of n)
# Sla de keuze op in de variabele legenVals


if legenVals == "n": #open nieuw, of toevoegen aan vals.txt
signaleringen = open("C:\\Users\\administrator\\KentekenCheck\\vals.txt" , "a")
else:
signaleringen = open("C:\\Users\\administrator\\KentekenCheck\\vals.txt" , "w")


for auto in scanInput: #lezen rij voor rij vanuit ScanDevice - GescandeData.csv
if len(auto) < 10: #Records korter dan 10 overslaan
continue

autoDelen = auto.split(",") #Record opsplitsen in losse velden van tabel autoDelen
scanKenteken = autoDelen[0]
scanMerk = autoDelen[1]
scanType = autoDelen[2]
scanType = scanType.replace("\n", "") #vervang de eventuele \n achter type
aantalVerwerkt = aantalVerwerkt + 1

match = 0 #er is nog geen match gevonden
rdwInput.seek(0) #starten aan het begin van het bestand
for rdwAuto in rdwInput: #lezen rij voor rij uit RDW.csv
rdwAutoDelen=rdwAuto.split(",")
rdwKenteken = rdwAutoDelen[0]
rdwMerk = rdwAutoDelen[2]
rdwType = rdwAutoDelen[3]

# OPDRACHT
#Als hier het kenteken precies overeenkomt wordt match 1 en wordt er gestopt met zoeken in RDW.txt
if scanKenteken == rdwKenteken:
match = 1
break

# Als kentekens overeenkomen, dan wordt match op 1 gezet
# en moet gestopt worden met zoeken in RDW.txt

if match == 0: #einde bestand bereikt en kenteken onbekend
aantalFout = aantalFout + 1
print ("Onbekend kenteken: ", scanKenteken, scanMerk, scanType, "\n\n")
signaleringen.write("Onbekend," + scanKenteken + "," + scanMerk + "," + scanType + "\n")
else: #kenteken gevonden
if scanMerk != rdwMerk or scanType != rdwType: #merk of type onjuist
aantalFout=aantalFout + 1
print ("Onjuist kenteken:", scanKenteken, scanMerk, scanType)
print ("Geregistreerd op:", rdwKenteken, rdwMerk, rdwType, "\n\n")
signaleringen.write("Onjuist," + scanKenteken + "," + scanMerk + "," + scanType + "\n")
#afsluitend de aantallen weergeven
print("Eindtotalen KentekenCheck" )

# OPDRACHT
#Hier print ik de aantal correte kentekens.
print("Aantal correcte kentekens:", aantalVerwerkt - aantalFout)
#Hieronder print ik de onjuiste kentekens
print("Aantal onjuiste kentekens:", aantalFout)
# print het aantal correcte kentekens
# print het aantal onjuiste kentekens
# sluit de drie bestanden

print("= = = programma kentekensignalering afgesloten = = =")

# OPDRACHT
#Hier laat ik de huidige tijd en datum zien
print(datetime.now())
# Druk de huidige datum en tijd af

lt
4 uur geleden

werkte hij toen ook??

lt
5 uur geleden

# programma KentekenCheck
# Versie: 1.2
# Stichting Praktijkleren.nl
# Datum: 14/7/2022

import os
from datetime import datetime

# OPDRACHT
# Maak de variabele appPath aan en gebruik die om op één plek om het pad te definieren voor alle bestanden.
# Gebruik vervolgens appPath overal bij het verwijzen naar het pad van de bestanden.
# Doe dit voor eventuele nieuwe verwijzingen én vervang de bestaande verwijzingen in deze code.

# Eén centrale plek voor het pad (indien nodig voor andere bestandspaden)
appPath = os.path.dirname(os.path.abspath(__file__))

# OPDRACHT
# Druk de huidige datum en tijd af
nu = datetime.now()
print(nu)

rdwInput = open("C:\\Users\\administrator\\KentekenCheck\\RDW.csv")
scanInput = open("C:\\Users\\administrator\\KentekenCheck\\GescandeData.csv")
aantalVerwerkt = aantalFout = 0
legenVals = ""

# OPDRACHT
# Vraag hier of het bestand vals.txt leeg gemaakt moet worden (j of n)
# Sla de keuze op in de variabele legenVals
legenVals = input("Moet het bestand vals.txt leeg gemaakt worden? (j/n): ")

if legenVals == "n": # open nieuw, of toevoegen aan vals.txt
signaleringen = open("C:\\Users\\administrator\\KentekenCheck\\vals.txt", "a")
else:
signaleringen = open("C:\\Users\\administrator\\KentekenCheck\\vals.txt", "w")

# Lees alle kentekens van RDW.csv in één keer in
rdw_data = rdwInput.readlines()

for auto in scanInput: # lezen rij voor rij vanuit ScanDevice - GescandeData.csv
if len(auto) < 10: # Records korter dan 10 overslaan
continue

autoDelen = auto.split(",") # Record opsplitsen in losse velden van tabel autoDelen
scanKenteken = autoDelen[0]
scanMerk = autoDelen[1]
scanType = autoDelen[2].strip() # Verwijder de eventuele \n achter type
aantalVerwerkt += 1

match = 0 # Er is nog geen match gevonden

for rdwAuto in rdw_data: # Lezen van de RDW data die we al ingelezen hebben
rdwAutoDelen = rdwAuto.split(",")
rdwKenteken = rdwAutoDelen[0]
rdwMerk = rdwAutoDelen[2]
rdwType = rdwAutoDelen[3]

# Als kentekens overeenkomen, dan wordt match op 1 gezet en moet gestopt worden met zoeken in RDW.txt
if scanKenteken == rdwKenteken:
match = 1
if scanMerk != rdwMerk or scanType != rdwType: # Merk of type onjuist
aantalFout += 1
print(f"Onjuist kenteken: {scanKenteken}, {scanMerk}, {scanType}")
print(f"Geregistreerd op: {rdwKenteken}, {rdwMerk}, {rdwType}\n")
signaleringen.write(f"Onjuist,{scanKenteken},{scanMerk},{scanType}\n")
else:
aantalCorrect += 1 # Correct kenteken gevonden
break

if match == 0: # Einde bestand bereikt en kenteken onbekend
aantalFout += 1
print(f"Onbekend kenteken: {scanKenteken}, {scanMerk}, {scanType}\n")
signaleringen.write(f"Onbekend,{scanKenteken},{scanMerk},{scanType}\n")

# Eindtotalen weergeven
print("Eindtotalen KentekenCheck")

# Aantal correcte en onjuiste kentekens afdrukken
print(f"Aantal correcte kentekens: {aantalCorrect}")
print(f"Aantal onjuiste kentekens: {aantalFout}")

# Bestanden sluiten worden automatisch afgehandeld door 'with' contextmanager
print("= = = programma kentekensignalering afgesloten = = = ")

lt
5 uur geleden

SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?
PS C:\Users\administrator> & C:/Users/administrator/AppData/Local/Programs/Python/Python310/python.exe "c:/Users/administrator/Desktop/# programma KentekenCheck.py"
File "c:\Users\administrator\Desktop\# programma KentekenCheck.py", line 33
signaleringen = open("C:\\Users\\administrator\\KentekenCheck\\vals.txt", "a")
^
IndentationError: expected an indented block after 'if' statement on line 32
PS C:\Users\administrator>



ik krijg deze foutmelding bij het script hierboven

Ad
5 uur geleden

Ik had volgensmij precies hetzelfde script alleen bij mij lukte het runne ervan ook niet hoor bij niemand vlgms

Ad
5 uur geleden

Is die weer hetzelfde?

lt
5 uur geleden

i het script hieronder het goede pyton script???

Ad
8 uur geleden

Aahh betah

lt
8 uur geleden

het is als het goed is zelfde

.
17 uur geleden

# programma KentekenCheck
# Versie: 1.2
# Stichting Praktijkleren.nl
# Datum: 14/7/2022

import os
from datetime import datetime

# OPDRACHT
# Maak de variabele appPath aan en gebruik die om op één plek om het pad te definieren voor alle bestanden.
# Gebruik vervolgens appPath overal bij het verwijzen naar het pad van de bestanden.
# Doe dit voor eventuele nieuwe verwijzingen én vervang de bestaande verwijzingen in deze code.

# Eén centrale plek voor het pad (indien nodig voor andere bestandspaden)
appPath = os.path.dirname(os.path.abspath(__file__))

# OPDRACHT
# Druk de huidige datum en tijd af
nu = datetime.now()
print(nu)

rdwInput = open("C:\\Users\\administrator\\KentekenCheck\\RDW.csv")
scanInput = open("C:\\Users\\administrator\\KentekenCheck\\GescandeData.csv")
aantalVerwerkt = aantalFout = 0
legenVals = ""

# OPDRACHT
# Vraag hier of het bestand vals.txt leeg gemaakt moet worden (j of n)
# Sla de keuze op in de variabele legenVals
legenVals = input("Moet het bestand vals.txt leeg gemaakt worden? (j/n): ")

if legenVals == "n": # open nieuw, of toevoegen aan vals.txt
signaleringen = open("C:\\Users\\administrator\\KentekenCheck\\vals.txt", "a")
else:
signaleringen = open("C:\\Users\\administrator\\KentekenCheck\\vals.txt", "w")

# Lees alle kentekens van RDW.csv in één keer in
rdw_data = rdwInput.readlines()

for auto in scanInput: # lezen rij voor rij vanuit ScanDevice - GescandeData.csv
if len(auto) < 10: # Records korter dan 10 overslaan
continue

autoDelen = auto.split(",") # Record opsplitsen in losse velden van tabel autoDelen
scanKenteken = autoDelen[0]
scanMerk = autoDelen[1]
scanType = autoDelen[2].strip() # Verwijder de eventuele \n achter type
aantalVerwerkt += 1

match = 0 # Er is nog geen match gevonden

for rdwAuto in rdw_data: # Lezen van de RDW data die we al ingelezen hebben
rdwAutoDelen = rdwAuto.split(",")
rdwKenteken = rdwAutoDelen[0]
rdwMerk = rdwAutoDelen[2]
rdwType = rdwAutoDelen[3]

# Als kentekens overeenkomen, dan wordt match op 1 gezet en moet gestopt worden met zoeken in RDW.txt
if scanKenteken == rdwKenteken:
match = 1
if scanMerk != rdwMerk or scanType != rdwType: # Merk of type onjuist
aantalFout += 1
print(f"Onjuist kenteken: {scanKenteken}, {scanMerk}, {scanType}")
print(f"Geregistreerd op: {rdwKenteken}, {rdwMerk}, {rdwType}\n")
signaleringen.write(f"Onjuist,{scanKenteken},{scanMerk},{scanType}\n")
else:
aantalCorrect += 1 # Correct kenteken gevonden
break

if match == 0: # Einde bestand bereikt en kenteken onbekend
aantalFout += 1
print(f"Onbekend kenteken: {scanKenteken}, {scanMerk}, {scanType}\n")
signaleringen.write(f"Onbekend,{scanKenteken},{scanMerk},{scanType}\n")

# Eindtotalen weergeven
print("Eindtotalen KentekenCheck")

# Aantal correcte en onjuiste kentekens afdrukken
print(f"Aantal correcte kentekens: {aantalCorrect}")
print(f"Aantal onjuiste kentekens: {aantalFout}")

# Bestanden sluiten worden automatisch afgehandeld door 'with' contextmanager
print("= = = programma kentekensignalering afgesloten = = = ")

.
17 uur geleden

Procescode Doel Wel/niet automatiseren Toelichting

A.NightWatch Nachtelijke ronde met registratie van activiteiten
(Niet) Vereist menselijke beoordeling en toezicht tijdens de ronde.

A.WoonKenteken Kentekens koppelen aan leeflocaties tijdens rondgang
(Wel) Automatiseren kan via kentekendatabase en automatische toewijzing van locaties.

A.Temperatuur Centraal bijhouden van temperatuur in leeflocaties
(Wel) Temperatuurmetingen kunnen automatisch worden verzameld via sensoren.

A.Wegen Aantal passerende voertuigen per wegdeel
(Wel) Automatisch tellen van voertuigen via sensoren of camera's langs de weg.

A.Energie Maandelijkse opname stand water-/gas-/elektrameter
(Wel) Geautomatiseerde meters kunnen maandstandrapportages genereren.

A.Snelheid Snelheidsmeting voertuigen op variabele plekken
(Wel) Snelheidsmetingen kunnen via sensoren of camera's automatisch worden geregistreerd.

A.Schoon Check schoonmaakkwaliteit leefruimtes
(Niet) Vereist visuele inspectie en menselijke beoordeling van de schoonmaakkwaliteit.

A.KentekenCheck Signaleren valse kentekens
(Wel) Software kan kentekens automatisch controleren en vergelijken.

A.AfvalBakken Registreer vullingsgraad afvalemmers en containers
(Wel) Sensoren kunnen de vullingsgraad automatisch bijhouden en rapporteren.

A.Afval Registreer zwerfafval en afvaldumping
(Niet) Vereist visuele inspectie en meldingen van medewerkers of bewoners.

.
17 uur geleden

USE poortwachter;
SELECT * FROM ………


Query 1:
SELECT *
FROM GescandeData;

Query 2:
SELECT kenteken, merk
FROM GescandeData;

Query 3:
SELECT kenteken, merk, cilinderinhoud
FROM RDW
WHERE cilinderinhoud > 2000;

Query4:
SELECT kenteken, merk, cilinderinhoud
FROM RDW
WHERE cilinderinhoud > 2000;

Query 5:
SELECT g.kenteken, g.merk
FROM GescandeData g
WHERE NOT EXISTS (
SELECT 1
FROM RDW r
WHERE r.kenteken = g.kenteken
);

Query 6:
INSERT INTO GescandeData (kenteken, merk, handelbenaming)
VALUES ('1SZN01', 'Suzuki', 'Alto Scantest');


Query 7:
SELECT kenteken, merk
FROM RDW
WHERE cilinderinhoud > (
SELECT AVG(cilinderinhoud)
FROM RDW
);

joooo
een dag geleden

dddd

Sukkel
een dag geleden

Dikke schijt aan jou