Uppgift 1 ( Betyg 3 uppgift )

Relevanta dokument
Uppgift 1 ( Betyg 3 uppgift )

kl Tentaupplägg

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift )

Uttryck, satser och strömhantering

Uppgift 1 (vadå sortering?)

kl Tentaupplägg

Uppgift 1 (Sorterade heltal som är OK)

kl Tentaupplägg

TENTA: TDDD11 & TDDC68. Tillåtna hjälpmedel. Starta Emacs, terminal och tentakommunikationsfönster. Skicka in frågor och uppgifter

Uppgift 1 ( Betyg 3 uppgift )

kl Tentaupplägg

kl Tentaupplägg

Uppgift 1a (Aktiekurser utan poster)

kl Examination - Ada

kl Tentaupplägg

Uppgift 1 ( Betyg 3 uppgift )

kl Tentaupplägg

5 Grundläggande in- och utmatning

kl Tentaupplägg. TIPS 4: Du kan kompilera din kod med följande kommandon g++11, w++11 (för mer varningar)

Föreläsning 4: Poster

Tentaupplägg denna gång

kl Tentaupplägg

Uppgift 1 ( Betyg 3 uppgift )

Föreläsning 6: Introduktion av listor

kl Tentaupplägg

TDIU Regler

Uppgift 1 (grundläggande konstruktioner)

TDIU01 / 725G

Övningsuppgifter till föreläsning 2 Variabler och uttryck

Kursmaterial för laborationer i

Tentamen i. för D1 m fl, även distanskursen. lördag 28 maj 2011

Tekniska Högskolan i Linköping Institutionen för Datavetenskap (IDA) Torbjörn Jonsson Plot och rekursion

Linköpings Tekniska Högskola Instutitionen för Datavetenskap (IDA) Torbjörn Jonsson, Erik Nilsson Lab 2: Underprogram

Uppgift 1 ( Betyg 3 uppgift )

kl Tentaupplägg

Uppgifter till praktiska tentan, del A. (7 / 27)

kl Tentaupplägg

TDP Regler

Tentaupplägg. Betygsgränser: 1 uppg 19:00 Betyg 3 2 uppg 18:00 Betyg 4 2 uppg 16:30 Betyg 5 3 uppg 18:00 Betyg 5

Tentaupplägg denna gång

kl Tentaupplägg

Användarhandledning Version 1.2

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

kl Tentaupplägg

Tentaupplägg denna gång

HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: Fredagen den 21 oktober 2011,

Tentaupplägg denna gång

Övningsuppgifter kapitel 8

DUGGA Tentaupplägg

TDDC74 Programmering: Abstraktion och modellering Tenta, kl 14 18, 11 juni 2014

Föreläsning 3.1: Datastrukturer, en översikt

Uppgift 1 ( Betyg 3 uppgift )

DUGGA Tentaupplägg

Tentaupplägg denna gång

Tentamen TEN1 HI

TDDC74 Programmering: Abstraktion och modellering Datordugga 2 - exempel

International Olympiad in Informatics July 2011, Pattaya City, Thailand Tävlingsuppgifter Dag 2 Svenska 1.3. Papegojor

TENTAMEN MOM1 GRUNDLÄGGANDE PROGRAMMERINGSTEKNIK OCH

Tentaupplägg denna gång

TDDC30/725G63. Objektorienterad programmering i Java, datastrukturer och algoritmer

kl Tentaupplägg

Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011,

TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

Objektorienterad programmering, Java, 5p TDBA63

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

TDIU Regler

Värmedistribution i plåt

Grundläggande in- och utmatning

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2

TDIU Regler

C++ Funktioner 1. int summa( int a, int b) //funktionshuvud { return a+b; //funktionskropp } Värmdö Gymnasium Programmering B ++ Datainstitutionen

STRÄNGAR DATATYPEN. Om du vill baka in variabler eller escape-tecken måste du använda dubbla citattecken. strängar

TDP Regler

JavaScript del 5 Funktioner

a = a a a a a a ± ± ± ±500

kl Tentaupplägg

TDDC74 Lab 02 Listor, sammansatta strukturer

Tentaupplägg denna gång

HI1024 Programmering, grundkurs TEN

Instruktioner - Datortentamen TDDE24 och TDDD73 Funktionell och imperativ programmering (i Python)

i LabVIEW. Några programmeringstekniska grundbegrepp

KPP053, HT2016 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

kl Tentaupplägg

TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18

Uppgifter till tenta i 729G04 Programmering och diskret matematik. 7 augusti 2015, kl 08:00-12:00

kl Tentaupplägg

kl Tentaupplägg

Uppgift 1 (Oläsliga krypterade meddelanden)

Digital- och datorteknik

if (n==null) { return null; } else { return new Node(n.data, copy(n.next));

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Föreläsning 0: Introduktion av Ada

2-5 Decimaltal Namn: Inledning. Vad är ett decimaltal, och varför skall jag arbeta med dem?

Statistik över heltal

Övningsuppgift 2 Datalogi I 2I1027/2I1035/2I1046

Transkript:

2008-03-12.kl.14-19 Uppgift 1 ( Betyg 3 uppgift ) Du skall skriva ett program som läser igenom en textfil som heter FIL.TXT och skriver ut alla rader där det står ett decimaltal först på raden. Decimaltal följer de format som finns uppräknade här (inga andra varianter är tillåtna): Enkelt decimaltal: Siffra/Siffror följt av en punkt följt av siffra/siffror. Teckenbaserat decimaltal: +/- följt av ett enkelt decimaltal. Ett exempel på indatafil skulle kunna vara: 123.456 Kalle springer fort. 123,456 Nisse springer långsamt. 123 456 Berit är bäst av alla. +12.234 Nisse Hult har otur. -123 Guran är namnet på en gitarr. Varför är denna rad med? -0.0 123456789012345678901234567890.1234567890123456789012345678 X Resultatet på skärmen skulle i detta fall bli: 123.456 Kalle springer fort. +12.234 Nisse Hult har otur. -0.0 123456789012345678901234567890.1234567890123456789012345678 X Det finns en given textfil som heter just FIL.TXT att kopiera. OBS! Det är givet att raderna i filen är maximalt 70 tecken långa. OBS! Det är tyvärr så att man inte kan räkna med att talen går att hantera med datatypen Float.

2008-03-12.kl.14-19 Uppgift 2 Du skall skriva ett program som läser in en sträng från tangentbordet och därefter skriver ut den på skärmen. OBS! du får inte läsa delar och skriva ut utan hela strängen skall skrivas ut efter det att den är inläst. KRAV: Det skall i princip kunna vara en hur lång sträng som helst. Detta innebär att du inte kan dimensionera en sträng i förväg. Minnesbegränsningar i datorn behöver du inte fundera på när du löser uppgiften. När du löser uppgiften skall du läsa in strängen i en funktion som skall heta Get_Line. Funktionen skall inte ha några parametrar. Funktionen skall returnera den inlästa strängen. TIPS: Rekursion är tillåten. TIPS: Felmeddelandet segmentation fault betyder att du gjort för många rekursionssteg. TIPS: Operatorn & är bra. KRAV: Du får inte använda dig av den inbyggda datatypen Unbounded_String.

2008-03-12.kl.14-19 Uppgift 3 Vägverket funderar på att införa så kallade återvändsgrändsavgifter i Stockholm. För att se om detta kommer att slå ut väl har de behov av ett paket som hanterar att bilar kör in i respektive ut ur en återvändsgränder. Detta paket skall heta Blind_Alley_Handling och innehållade två procedurerna Drive_Into respektive Drive_Out_Of. Båda procedurerna skall ha en återvändsgränd respektive en bil som parametrar. Paketet skall innehålla en datatyp som heter Blind_Alley_Type som är privat och som skall skapas som en länkad lista (med pekare). I listan skall data av typen Car_Type ligga. Car_Type finns given i paketet Car_Handling som finns att kopiera. Det finns ett givet testprogram som heter Test_Blind_Alley (som inte skall modifieras) som låter ett antal bilar köra in i respektive ut ur en återvändsgränd. Självklart är det så att man kan köra in flera bilar och den som kört in sist skall köras ut först. Om det sen kommer nya bilar innan alla tidigare är utkörda skall dessa nya förstås ut före de gamla. Tänk er en riktig återvändsgränd där det är för trångt att vända.

2008-03-12.kl.14-19 Uppgift 4 Vägverket har genom tiderna haft en förkärlek för lite annorlunda matematiska saker. Bland annat har de använt något som kallas för gon istället för grader eller radianer när de räknat med vinklar i sina mätutrustningar. Följande figurer visar hur gon fungerar gentemot grader. sin(x) x sin(x) x Grader : 0-360 Radianer: 0-2π Gon: 0-400 De tal som står i figuren anger mellan vilka värden vinklarna anges inom ett varv i den enheten. Din uppgift är att skriva ett program som skriver ut en tabell med två kolumner innehållande x respektive sin(x) där x skall anges i gon. Tabellens starvärde samt slutvärde skall anges av användaren. Körexempel: Mata in startvärde på x: 0 Mata in slutvärde på x : 200 Mata in steglängd : 25 x sin(x) ------------ 0 1.0000 25 0.9239 50 0.7071 75 0.3827 100-0.0000 125-0.3827 150-0.7071 175-0.9239 200-1.0000 Inmatningarna ovan skall ske i heltalsform för att slippa eventuella avrundningsfel i datorn. Vi kan dessutom anta att steglängden alltid gör att det går jämnt upp till slutvärdet. KRAV: Beräkningen av sin(x) (där x är gon) skall ske i en funktion som heter Sin_Gon som tar emot vinkeln (x) angiven i gon (heltal) och returnerar sinusvärdet för denna. Ingen inmatning eller utskrift skall ske i denna funktion. TIPS: Den normala sin(x) finns i paketet Ada.Numerics.Elementary_Functions och den räknar i radianer (d.v.s. med datatypen Float). Konstanten Pi finns i paketet Ada.Numerics.

2008-03-13.kl.08-13 Uppgift 1 ( Betyg 3 uppgift ) Du skall skriva ett program som ritar ut en bild på skärmen. Bilden finns lagrad i en textfil som heter PICTURE.CRYPT och är där lagrad på ett format som beskrivs enligt följande: Alla rader i filen motsvarar en rad i figuren En rad i filen består av ett antal markeringar (två tecken långa). Första tecknet i en markering är en siffra som anger hur många blanktecken som skall skrivas ut före det andra tecknet i markeringen skrivs ut. Ett exempel på indatafil skulle kunna vara: 0+0-0-0+ 1\2\ 2+0-0-0+ Resultatet på skärmen skulle i detta fall bli: +--+ \ \ +--+ Det finns en given textfil som heter just PICTURE.CRYPT att kopiera.

2008-03-13.kl.08-13 Uppgift 2 I Ada har vi begränsningar på hur stora heltal man kan arbeta med inom typen Integer. Du skall nu skapa ett paket som heter Big_Numbers som innehåller en funktion som skall heta Succ. Denna funktion skall ta emot en godtyckligt lång sträng där innehållet är ett vanligt positivt decimalt heltal (inklusive talet noll). Inga konstiga tecken får finnas i strängen (den innehåller alltså endast siffror). Funktionen skall returnera talet efter det som kom in. Dv.s. i princip skall funktionen addera talet ett till det tal som kom in. Talet som returneras skall också vara lagrat i en sträng och strängen får endast innehålla siffror. Inga inledande nollor får förekomma vare sig i det inkommande eller returnerade värdet. Det finns ett givet testprogram som heter Test_Big_Numbers_Succ att kopiera. Du skall inte behöva ändra något i detta program utan det skall gå att kompilera och köra när du skapat ditt paket.

2008-03-13.kl.08-13 Uppgift 3 Vägverket funderar på att införa så kallade tunnelavgifter i Stockholm. För att se om detta kommer att slå ut väl har de behov av ett paket som hanterar att bilar kör in i respektive ut ur en tunnel. Detta paket skall heta Tunnel_Handling och innehållade två procedurerna Drive_Into respektive Drive_Out_Of. Båda procedurerna skall ha en tunnel respektive en bil som parametrar. Paketet skall innehålla en datatyp som heter Tunnel_Type som är privat och som skall skapas som en länkad lista (med pekare). I listan skall data av typen Car_Type ligga. Car_Type finns given i paketet Car_Handling som finns att kopiera. Det finns ett givet testprogram som heter Test_Tunnel (som inte skall modifieras) som låter ett antal bilar köra in i respektive ut ur en tunnel. Självklart är det så att man kan köra in flera bilar och den som kört in först skall köras ut först. Om det sen kommer nya bilar innan alla tidigare är utkörda skall dessa nya förstås ut efter de gamla. Tänk er en riktig tunnel där man inte kan köra om varandra.

2008-03-13.kl.08-13 Uppgift 4 Du skall skriva ut det diagram man får för funktionen y = roten ur x. Det som är lite udda är att användaren inte matar in värden på x utan istället matar in min- och maxvärde på y samt den steglängd i y-led som skall användas (steglängden skall alltid gå jämnt upp med y-max och y-min). Se i exemplen nedan hur utskrifterna skall se ut för olika indata. Körexempel 1: Mata in startvärde på y: 1 Mata in slutvärde på y : 5 Mata in steglängd : 2 5 * 3 * 1 * 01234567890123456789012345 Körexempel 2: Mata in startvärde på y: 0 Mata in slutvärde på y : 7 Mata in steglängd : 1 7 * 6 * 5 * 4 * 3 * 2 * 1 * 0* 01234567890123456789012345678901234567890123456789 Körexempel 3: Mata in startvärde på y: 3 Mata in slutvärde på y : 7 Mata in steglängd : 1 7 * 6 * 5 * 4 * 3 * 01234567890123456789012345678901234567890123456789 Tips: Den ordinarie funktionen för roten ur heter Sqrt och ligger i paketet Ada.Numerics.Elementary_Functions.

2008-03-13.kl.14-19 Uppgift 1 ( Betyg 3 uppgift ) Du skall skriva ett program som ritar ut en bild på skärmen. Bilden finns lagrad i en textfil som heter PICTURE_BLANCS.CRYPT och är där lagrad på ett format som beskrivs enligt följande: Alla rader i filen motsvarar en rad i figuren En rad i filen består av ett antal markeringar (två tecken långa) samt eventuellt en extra halv markering. Första tecknet i en markering är en siffra som anger hur många blanktecken som skall skrivas ut före det andra tecknet i markeringen skrivs ut. En halv markering består endast av siffran som anger antalet blanktecken som finns i slutet av raden. Ett exempel på indatafil skulle kunna vara: 0+0-0-0+1 1\2\ 2+0-0-0+3 Resultatet på skärmen skulle i detta fall bli (OBS! Första och sista raden innehåller alltså blanktecken i slutet av raderna): +--+ \ \ +--+ Det finns en given textfil som heter just PICTURE_BLANCS.CRYPT att kopiera.

2008-03-13.kl.14-19 Uppgift 2 I Ada har vi begränsningar på hur stora heltal man kan arbeta med inom typen Integer. Du skall nu skapa ett paket som heter Big_Numbers som innehåller en funktion som skall heta Pred. Denna funktion skall ta emot en godtyckligt lång sträng där innehållet är ett vanligt positivt decimalt heltal (större än talet noll). Inga konstiga tecken får finnas i strängen (den innehåller alltså endast siffror). Funktionen skall returnera talet före det som kom in. Dv.s. i princip skall funktionen subtrahera talet ett från det tal som kom in. Talet som returneras skall också vara lagrat i en sträng och strängen får endast innehålla siffror. Inga inledande nollor får förekomma vare sig i det inkommande eller returnerade värdet (undantag är givetvis att talet noll skall vara talet noll). Det finns ett givet testprogram som heter Test_Big_Numbers_Pred att kopiera. Du skall inte behöva ändra något i detta program utan det skall gå att kompilera och köra när du skapat ditt paket.

2008-03-13.kl.14-19 Uppgift 3 Vägverket funderar på att införa så kallade tunnelavgifter i Stockholm. För att se om detta kommer att slå ut väl har de behov av ett paket som hanterar att bilar kör in i respektive ut ur en tunnel. Detta paket skall heta Tunnel_Handling och innehållade två procedurerna Drive_Into respektive Drive_Out_Of. Båda procedurerna skall ha en tunnel respektive en bil som parametrar. Paketet skall innehålla en datatyp som heter Tunnel_Type som är privat och som skall skapas med hjälp av två stycken återvändsgränder (datatyp och rutiner för att hantera sådana finns i paketet Blind_Alley_Handling som är givet). Titta över de givna filer som finns att kopiera så finner du det du behöver för att slippa göra en massa i onödan. Det finns ett givet testprogram som heter Test_Tunnel (som inte skall modifieras) som låter ett antal bilar köra in i respektive ut ur en tunnel. OBS! Din datatyp Tunnel_Type skall ENDAST bestå av återvändsgränderna. För att simulera en tunnel med hjälp av två återvändsgränder kan man tänka sig följande scenarion. Kör in i tunnel motsvarar att köra in bilar i den första återvändsgränden. ALLTID! När man begär att få ut en bil ur tunnel finns det två fall. 1. Det finns bilar i den andra återvändsgränden: Plocka bil från den andra återvändsgränden. 2. Det är tomt i den andra återvändsgränden: Backa ut alla bilarna ur den första återvändsgränden och backa in dem i den andra återvändsgränden. Plocka sen en bil ut den andra återvändsgränden.

2008-03-13.kl.14-19 Uppgift 4 Du skall skriva ut det diagram man får för funktionen y = round(roten ur x). Det som är lite udda är att användaren inte matar in värden på x utan istället matar in min- och maxvärde på y samt den steglängd i y-led som skall användas (steglängden skall alltid gå jämnt upp med y- max och y-min). Se i exemplen nedan hur utskrifterna skall se ut för olika indata. Körexempel 1: Mata in startvärde på y: 1 Mata in slutvärde på y : 5 Mata in steglängd : 2 5 ********** 3 ****** 1 ** 0123456789012345678901234567890 Körexempel 2: Mata in startvärde på y: 0 Mata in slutvärde på y : 7 Mata in steglängd : 1 7 ************** 6 ************ 5 ********** 4 ******** 3 ****** 2 **** 1 ** 0* 012345678901234567890123456789012345678901234567890123456 Körexempel 3: Mata in startvärde på y: 3 Mata in slutvärde på y : 7 Mata in steglängd : 1 7 ************** 6 ************ 5 ********** 4 ******** 3 ****** 012345678901234567890123456789012345678901234567890123456 Tips: Den ordinarie funktionen för roten ur heter Sqrt och ligger i paketet Ada.Numerics.Elementary_Functions. Avrundning kan göras med t.ex. Float Rounding.

2008-03-14.kl.14-19 Uppgift 1 ( Betyg 3 uppgift ) Du skall skriva ett program som läser igenom en textfil som heter DATA.XML och skriver ut på skärmen hur många taggar det finns inuti. Vi räknar inte de taggar som är rena avslutningstaggar. De taggar som kan förekomma är: Inledningstag: <xxx> Avslutningstag: </xxx> Inledning och avslutning i samma tag: <xxx/> Ett exempel på indatafil skulle kunna vara: <aaa>... <bbb>... </bbb>...... <ccc>... </ccc>... <ddd/>... </aaa> <eee/> Resultatet på skärmen skulle i detta fall bli: Det finns 5 taggar i filen. Det finns en given textfil som heter just DATA.XML att kopiera. Det är givet att filen består av en korrekt datamängd. D.v.s. det fattas inga avslutningstaggar och det finns inga taggar som ligger i fel ordning. Det är också givet att texten i övrigt inte innehåller några /, < eller >.

2008-03-14.kl.14-19 Uppgift 2 I Ada har vi lite problem med hantering av riktigt stora heltal. Datatypen Integer räcker liksom inte till. Detta i kombination med att man ofta vill hantera andra talbaser än det decimala gör att vi är ute efter ett paket som klarar av att addera binära tal. Din uppgift är att skapa paketet Big_Binary_Numbers och där skapa operatorn + som adderar två binära tal. Det är givet att din operator skall ta emot två strängar (som inte är begränsade i längd) och addera ihop innehållet och returnera en ny sträng med resultatet. Strängarna innehåller endast ett antal tecken 0 och 1. Inga inledande nollor får finnas med (förutom för talet noll som givetvis representeras som 0 ). Det är givet att det endat är positiva binära heltal som skall adderas. Att addera binära tal är inget konstigare än att addera två vanliga tal. Man får tänka på att det blir en minnessiffra till nästa position om man adderar minst två ettor. OBS! Tänk på att minnessiffran räknas med i additionen. Körexempel 1: Mata in två binära tal (ett per rad): 1001010001010101010100100101010100100101001 10010101001010100101010001010 Resultatet av additionen blir: 1001010001010111101001101111111001110110011 Körexempel 2: Mata in två binära tal (ett per rad): 101 111 Resultatet av additionen blir: 1100 Körexempel 3: Mata in två binära tal (ett per rad): 1 11111111111 Resultatet av additionen blir: 100000000000 Körexempel 4: Mata in två binära tal (ett per rad): 0 0 Resultatet av additionen blir: 0

2008-03-14.kl.14-19 Uppgift 3 Du skall komplettera paketet Data_Structure_Handling som redan är påbörjat. Din uppgift är att se till att proceduren Insert fungerar enligt nedan. Det är givet att varje nod har ett tecken som data och att den kan kopplas mot två andra noder. Detta leder till att det kan bli cirkulariteter i datastrukturen, men det är alltid givet att man inte behöver leta sig vidare i strukturen om nästa nod är en nod med en tidigare bokstav (i alfabetet). Indata till programmet kommer att vara en sekvens av rader med beskrivningar av vilka noder som skall kopplas ihop i datastrukturen. Indatasekvensen kommer alltid att vara ordnad så att den kan ses som sorterad i bokstavsordning och man kan aldrig koppla sig mot en tidigare nod om inte existerar. Indatasekvensen avslutas med en enkel nolla (tecknet 0 ). Exempel på indatasekvens: a-b b-c c-b c-d d-a d-e e-c 0 Datastrukturen efter detta: Data b e a d c Du har i paketet en utskriftsprocedur given som återskapar indatasekvensen om du fått till datastrukturen rätt.

2008-03-14.kl.14-19 Uppgift 4 Du skall skriva ut det diagram man får för funktionen y = roten ur x. Det som är lite udda är att användaren inte matar in värden på x utan istället matar in min- och maxvärde på y. Steglängden skall alltid vara 1. Se i exemplen nedan hur utskrifterna skall se ut för olika indata. Körexempel 1: Mata in startvärde på y: 1 Mata in slutvärde på y : 5 5 * 4 * * 3 * * * 2 * * * * 1 * * * * * 01234567890123456789012345 Körexempel 2: Mata in startvärde på y: 0 Mata in slutvärde på y : 7 7 * 6 * * 5 * * * 4 * * * * 3 * * * * * 2 * * * * * * 1 * * * * * * * 0** * * * * * * 01234567890123456789012345678901234567890123456789 Körexempel 3: Mata in startvärde på y: 3 Mata in slutvärde på y : 7 7 * 6 * * 5 * * * 4 * * * * 3 * * * * * 01234567890123456789012345678901234567890123456789 Tips: Den ordinarie funktionen för roten ur heter Sqrt och ligger i paketet Ada.Numerics.Elementary_Functions.