<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://ccwiki.digitalcampusvorarlberg.at/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sandro</id>
	<title>CCWiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://ccwiki.digitalcampusvorarlberg.at/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sandro"/>
	<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php/Spezial:Beitr%C3%A4ge/Sandro"/>
	<updated>2026-04-14T10:45:03Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=Datenbanken_Loesungen&amp;diff=3719</id>
		<title>Datenbanken Loesungen</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=Datenbanken_Loesungen&amp;diff=3719"/>
		<updated>2024-11-28T13:30:46Z</updated>

		<summary type="html">&lt;p&gt;Sandro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die meisten Übungsbeispiele gelöst, hauptsächlich mit &#039;&#039;&#039;JOIN&#039;&#039;&#039; nicht mit &#039;&#039;&#039;WHERE&#039;&#039;&#039;. Fügt die &#039;&#039;&#039;WHERE&#039;&#039;&#039; Queries, wenn möglich hinzu. Gibts bessere Lösung, dann rein damit!!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Wie viele Einwohner hat Österreich?&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
select population&lt;br /&gt;
from country &lt;br /&gt;
where name = &amp;quot;austria&amp;quot;;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Wie viele Einwohner hat der Kontinent Europa?&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
select sum(population)&lt;br /&gt;
from country c &lt;br /&gt;
join encompasses e on c.Code = e.Country&lt;br /&gt;
where e.Continent =&#039;Europe&#039;; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Welche Flüsse fließen durch Österreich?&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
select gr.River from geo_river gr&lt;br /&gt;
where Country = &amp;quot;A&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
select * from geo_river&lt;br /&gt;
where country = &amp;quot;A&amp;quot;;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Welche Flüsse fließen durch Europa (nur den Flussnamen)?&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
select river&lt;br /&gt;
from geo_river gr &lt;br /&gt;
join country c on c.Code = gr.Country&lt;br /&gt;
join encompasses e on c.Code = e.Country&lt;br /&gt;
where e.Continent =&#039;Europe&#039;&lt;br /&gt;
group by river;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Wie viel Prozent der Menschen leben im Kontinent Europa?&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
select 100*sum(population) / (select sum(Population) from country) as populationInProzent&lt;br /&gt;
from country c &lt;br /&gt;
join encompasses e on c.Code = e.Country&lt;br /&gt;
where e.Continent =&#039;Europe&#039; and e.Percentage &amp;gt; 99; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Alle Länder die mit einem A anfangen&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
select name from country&lt;br /&gt;
where name like &amp;quot;a%&amp;quot;;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Alle Länder die mit einem A anfangen und deren Bundesländer mit Einwohnerzahl, sortiert nach Einwohnerzahl&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
select name, province, population from country&lt;br /&gt;
where name like &amp;quot;a%&amp;quot;&lt;br /&gt;
order by population desc;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Alle Flüsse die durch Europa fließen (nur Flüsse und deren Länge), sortiert nach Länge&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
select r.name, r.length, c.Name  &lt;br /&gt;
from geo_river gr &lt;br /&gt;
join river r on gr.River = r.name &lt;br /&gt;
join country c on gr.Country = c.Code &lt;br /&gt;
join encompasses e on c.Code = e.Country&lt;br /&gt;
where e.Continent = &#039;Europe&#039; -- and e.Percentage &amp;gt; 50&lt;br /&gt;
group by name&lt;br /&gt;
order by length desc;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Alle Inseln im Pazifik mit &amp;gt;50% islamischem Bekenntnis&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
select i.Island,r.Name,r.Percentage &lt;br /&gt;
from islandin i&lt;br /&gt;
join geo_island gi on i.island = gi.island&lt;br /&gt;
join religion r on gi.Country = r.Country &lt;br /&gt;
where i.sea = &#039;Pacific Ocean&#039; and r.Name =&#039;Muslim&#039; and Percentage &amp;gt; 50;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Alle 3000er, welche in einem Land sind, welches zu mindestens 60% römisch Katholisch ist&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
select m.Name, count(*) from mountain m &lt;br /&gt;
join geo_mountain gm  on m.name = gm.Mountain&lt;br /&gt;
join country c on gm.Country = c.Code &lt;br /&gt;
join religion r on r.Country = c.Code&lt;br /&gt;
where m.Height &amp;gt;= 3000 and r.Name  = &#039;Roman Catholic&#039; and r.Percentage &amp;gt;= 60&lt;br /&gt;
group by m.name&lt;br /&gt;
order by m.name;&lt;br /&gt;
&lt;br /&gt;
select * from geo_mountain gm ;&lt;br /&gt;
select * from country c ;&lt;br /&gt;
}}&lt;br /&gt;
-- Alle Länder mit min. einem See mit min. 100 Meter Tiefe und min. einem Berg mit min. 1500 Höhenmeter&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
select c.Name, count(*)  from country c&lt;br /&gt;
join geo_lake gl on c.Code = gl.Country &lt;br /&gt;
join geo_mountain gm on c.Code = gm.Country &lt;br /&gt;
join lake l on gl.Lake = l.Name &lt;br /&gt;
join mountain m on gm.Mountain = m.Name &lt;br /&gt;
where l.`Depth` &amp;gt;= 100&lt;br /&gt;
and m.Height &amp;gt;= 1500&lt;br /&gt;
group by name&lt;br /&gt;
order by count(*) desc;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Einwohnerzahl pro Religion&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
select sum(population)&lt;br /&gt;
from country c &lt;br /&gt;
join religion r on c.Code = r.Country&lt;br /&gt;
where r.Name = &#039;muslim&#039;; &lt;br /&gt;
&lt;br /&gt;
select r.Name, round( sum(c.Population/100 * r.Percentage),2) as pop from religion r &lt;br /&gt;
join country c on r.Country = c.Code&lt;br /&gt;
where c.Code = r.Country&lt;br /&gt;
group by r.Name&lt;br /&gt;
order by pop desc;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Alle Länder, nur die Namen und die Meere dazu (keine Null Werte)&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
select c.Name, gs.Sea  from country c &lt;br /&gt;
join geo_sea gs on c.Code = gs.Country&lt;br /&gt;
order by name; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Alle Länder, nur die Namen, und wenn sie haben, das Meer dazu&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
select distinct c.Name, gs.Sea  from country c &lt;br /&gt;
left join geo_sea gs on c.Code = gs.Country&lt;br /&gt;
order by name;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Das Unabhängigkeitsdatum von Ländern die eine Wüste haben und die ethnische Gruppe African&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
select distinct p.Independence, c.Name ,d.Name  from politics p &lt;br /&gt;
join country c on p.Country = c.Code &lt;br /&gt;
join ethnicgroup e on e.Country = c.Code &lt;br /&gt;
join geo_desert gd on gd.Country = c.Code &lt;br /&gt;
join desert d on gd.Desert = d.Name&lt;br /&gt;
where e.Name = &#039;African&#039;;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Welche Länder haben mehr als 150 Städte?&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
with citycount as (select co.Name, count(*) as citycount&lt;br /&gt;
	from country co&lt;br /&gt;
	join city ci on co.code = ci.Country&lt;br /&gt;
	group by co.Name &lt;br /&gt;
	order by co.Name&lt;br /&gt;
)&lt;br /&gt;
select * from citycount&lt;br /&gt;
where citycount &amp;gt; 150;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Welche Länder haben genau 3 Städte? Wie heißen diese Städte?&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
-- Teil 1&lt;br /&gt;
select co.Name, count(*) as citycount from country co&lt;br /&gt;
join city ci on co.Code = ci.Country &lt;br /&gt;
group by co.Name; &lt;br /&gt;
-- Teil2&lt;br /&gt;
select Name from(&lt;br /&gt;
select co.Name, count(*) as citycount from country co&lt;br /&gt;
join city ci on co.Code = ci.Country &lt;br /&gt;
group by co.Name &lt;br /&gt;
)as subquerry&lt;br /&gt;
where citycount = 3;&lt;br /&gt;
-- Teil3&lt;br /&gt;
select Name, citycount from &lt;br /&gt;
	(select co.Name, count(*) citycount&lt;br /&gt;
	from country co&lt;br /&gt;
	join city ci on co.code = ci.Country&lt;br /&gt;
	group by co.Name 	&lt;br /&gt;
) as tempTable&lt;br /&gt;
where citycount = 3&lt;br /&gt;
order by Name;&lt;br /&gt;
&lt;br /&gt;
with threecity (coName, citycount) as (&lt;br /&gt;
select co.Name, count(*) citycount&lt;br /&gt;
from country co&lt;br /&gt;
join city ci on co.code = ci.Country&lt;br /&gt;
group by co.Name &lt;br /&gt;
)&lt;br /&gt;
select threecity.coName, threecity.citycount from threecity&lt;br /&gt;
where threecity.citycount = 3;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- population biggest 3 in america&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
select * from city ci &lt;br /&gt;
join country co on ci.Country =co.Code&lt;br /&gt;
join encompasses e on e.Country = co.Code&lt;br /&gt;
join continent cont on cont.Name = e.Continent&lt;br /&gt;
where cont.Name = &#039;America&#039;&lt;br /&gt;
order by ci.Population desc&lt;br /&gt;
limit 3;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- biggest mountain in austria&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
select m.Name ,m.Height from mountain m &lt;br /&gt;
join geo_mountain gm on gm.Mountain = m.Name &lt;br /&gt;
join country c on c.Code = gm.Country&lt;br /&gt;
where c.Name = &#039;austria&#039;&lt;br /&gt;
order by m.Height desc &lt;br /&gt;
limit 1;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- bigest mountain in europe limit 1&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
select c.Name , m.Name ,m.Height from mountain m &lt;br /&gt;
join geo_mountain gm on gm.Mountain = m.Name &lt;br /&gt;
join country c on c.Code = gm.Country&lt;br /&gt;
join encompasses e on e.Country = c.Code &lt;br /&gt;
where e.Continent  = &#039;Europe&#039; and e.Percentage &amp;gt; 50&lt;br /&gt;
order by m.Height desc &lt;br /&gt;
limit 1;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- concat for group for one biggest mountain in 2 countrys&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
with mont (Name, Country, height) as (&lt;br /&gt;
select m.name, gm.Country, m.height&lt;br /&gt;
from mountain m &lt;br /&gt;
join geo_mountain gm on gm.Mountain = m.Name &lt;br /&gt;
join encompasses e on e.Country = gm.Country  &lt;br /&gt;
where e.Continent  = &#039;Europe&#039; and e.Percentage &amp;gt; 50&lt;br /&gt;
)&lt;br /&gt;
select mont.name, mont.height, group_concat(Country.Name SEPARATOR &#039; / &#039;) countries &lt;br /&gt;
from mont &lt;br /&gt;
join country on mont.country = country.code&lt;br /&gt;
where mont.height = (select max(Height) from mont)&lt;br /&gt;
group by mont.name, mont.height;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- mountains in continents with ranks&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
WITH mount as (SELECT continent.Name as continent, mountain.Name, mountain.Height,&lt;br /&gt;
RANK() OVER (PARTITION BY continent.Name ORDER BY mountain.Height DESC) AS areaRank from continent, encompasses, country, geo_mountain, mountain&lt;br /&gt;
WHERE continent.Name = encompasses.Continent&lt;br /&gt;
AND encompasses.Country = country.Code&lt;br /&gt;
AND geo_mountain.country = country.Code&lt;br /&gt;
AND mountain.Name = geo_mountain.mountain&lt;br /&gt;
ORDER BY mountain.Height desc)&lt;br /&gt;
select distinct continent, name, height from mount WHERE mount.areaRank = 1;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- mountains, continents , subqueries&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
SELECT DISTINCT big.Continent, m.Name, m.Height&lt;br /&gt;
FROM&lt;br /&gt;
	(&lt;br /&gt;
	SELECT Continent, MAX(mo.Height) maxH&lt;br /&gt;
	FROM mountain mo&lt;br /&gt;
	JOIN geo_mountain gm on mo.Name = gm.Mountain&lt;br /&gt;
	join encompasses e on gm.Country = e.Country&lt;br /&gt;
	WHERE e.Percentage &amp;gt;= 50&lt;br /&gt;
	group by Continent&lt;br /&gt;
	) big&lt;br /&gt;
join encompasses e on big.Continent = e.Continent&lt;br /&gt;
JOIN geo_mountain gm2 on e.Country = gm2.Country&lt;br /&gt;
JOIN mountain m ON gm2.Mountain = m.Name&lt;br /&gt;
WHERE e.Percentage &amp;gt;= 50 AND m.Height = big.maxH&lt;br /&gt;
ORDER BY m.Height desc;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- mountains in continents with subqueries&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
WITH mont (Continent, Name, Height) AS&lt;br /&gt;
(&lt;br /&gt;
	SELECT e.Continent, mo.Name, mo.Height&lt;br /&gt;
	FROM mountain mo&lt;br /&gt;
	JOIN geo_mountain gm on mo.Name = gm.Mountain&lt;br /&gt;
	join encompasses e on gm.Country = e.Country&lt;br /&gt;
	WHERE e.Percentage &amp;gt;= 50	&lt;br /&gt;
)&lt;br /&gt;
SELECT DISTINCT big.Continent, mont.Name, mont.Height&lt;br /&gt;
FROM&lt;br /&gt;
(&lt;br /&gt;
	SELECT Continent, MAX(mont.Height) maxH&lt;br /&gt;
	FROM mont&lt;br /&gt;
	GROUP BY mont.Continent&lt;br /&gt;
) AS big&lt;br /&gt;
JOIN mont ON mont.Continent = big.Continent AND mont.Height = big.maxH&lt;br /&gt;
ORDER BY Height desc;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- mountain, continent, heighest&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
WITH mount as &lt;br /&gt;
(&lt;br /&gt;
SELECT continent.Name as continent, mountain.Name, mountain.Height,&lt;br /&gt;
RANK() OVER (PARTITION BY continent.Name ORDER BY mountain.Height DESC) AS areaRank from continent, encompasses, country, geo_mountain, mountain&lt;br /&gt;
WHERE continent.Name = encompasses.Continent&lt;br /&gt;
AND encompasses.Country = country.Code&lt;br /&gt;
AND geo_mountain.country = country.Code&lt;br /&gt;
AND mountain.Name = geo_mountain.mountain&lt;br /&gt;
ORDER BY mountain.Height desc&lt;br /&gt;
)&lt;br /&gt;
select distinct continent, name, height,areaRank from mount &lt;br /&gt;
WHERE mount.areaRank = 1;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- count religion in countrys&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
-- Teil 1&lt;br /&gt;
select c.Name, count(*) as anzahl  from religion r&lt;br /&gt;
join country c on c.Code = r.Country &lt;br /&gt;
group by c.Name &lt;br /&gt;
order by anzahl desc;&lt;br /&gt;
&lt;br /&gt;
-- Teil 2&lt;br /&gt;
select Name, anzahl from (&lt;br /&gt;
select c.Name, count(*) as anzahl  from religion r&lt;br /&gt;
join country c on c.Code = r.Country &lt;br /&gt;
group by c.Name &lt;br /&gt;
order by anzahl desc)&lt;br /&gt;
as test&lt;br /&gt;
where anzahl = 5;&lt;br /&gt;
&lt;br /&gt;
-- Teil 3&lt;br /&gt;
WITH religion_count AS (&lt;br /&gt;
  SELECT c.Name, COUNT(*) AS anzahl&lt;br /&gt;
  FROM religion r&lt;br /&gt;
  JOIN country c ON c.Code = r.Country&lt;br /&gt;
  GROUP BY c.Name&lt;br /&gt;
)&lt;br /&gt;
SELECT Name, anzahl&lt;br /&gt;
FROM religion_count&lt;br /&gt;
WHERE anzahl = (SELECT MAX(anzahl) FROM religion_count);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- organization count&lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
with corps as (select o.Abbreviation, o.Country as Founder  &lt;br /&gt;
from organization o&lt;br /&gt;
where country = &#039;A&#039;&lt;br /&gt;
)&lt;br /&gt;
select Abbreviation, count(*) from corps&lt;br /&gt;
join ismember i on corps.Abbreviation = i.Organization&lt;br /&gt;
group by Abbreviation&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
-- organizations&lt;br /&gt;
select o.Abbreviation, count(*) anzahlMG &lt;br /&gt;
from organization o &lt;br /&gt;
join ismember i on o.Abbreviation = i.Organization &lt;br /&gt;
where o.Country = &#039;A&#039;&lt;br /&gt;
group by o.Abbreviation &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
-- top 10 languages &lt;br /&gt;
{{SQLML|code=&lt;br /&gt;
select l.name, round(sum(c.population/100 * l.Percentage), -6) as lang &lt;br /&gt;
from `language` l &lt;br /&gt;
join country c on l.country = c.code&lt;br /&gt;
where c.code = l.country&lt;br /&gt;
group by l.name&lt;br /&gt;
order by lang desc&lt;br /&gt;
limit 10&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
select * from `language` l ;&lt;br /&gt;
-- languages with subqueries&lt;br /&gt;
with lang2 as &lt;br /&gt;
(&lt;br /&gt;
	with languages as (&lt;br /&gt;
		select &lt;br /&gt;
			l.name, &lt;br /&gt;
			round(sum(c.population/100 * l.Percentage)) as lang		&lt;br /&gt;
		from `language` l &lt;br /&gt;
		join country c on l.country = c.code&lt;br /&gt;
		group by l.name)&lt;br /&gt;
	select *, rank () over (order by lang desc) as languageRank &lt;br /&gt;
	from languages&lt;br /&gt;
)&lt;br /&gt;
select Name, lang&lt;br /&gt;
from lang2 &lt;br /&gt;
 where languageRank in (2,3,5);   -- between 1 and 15; -- languageRank in (2,4,6,8);&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/DB_%C3%9Cbungen&amp;diff=3718</id>
		<title>DCV 2024 09/DB Übungen</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/DB_%C3%9Cbungen&amp;diff=3718"/>
		<updated>2024-11-28T13:21:21Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Aufgabe SQL Queries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im folgenden finden sich Übungen für das Thema Datenbanken. Weiters soll direkt ein Überblick über die Themen erfolgen. Als &#039;&#039;&#039;D&#039;&#039;&#039;aten&#039;&#039;&#039;B&#039;&#039;&#039;ank&#039;&#039;&#039;M&#039;&#039;&#039;anagement &#039;&#039;&#039;S&#039;&#039;&#039;ystem wird &#039;&#039;&#039;MySQL&#039;&#039;&#039;[https://www.mysql.com/de/] verwendet&lt;br /&gt;
&lt;br /&gt;
= Überblick =&lt;br /&gt;
Ein grundlegendes Verständnis folgender Begriffe soll erlangt werden. Diese sind nicht chronologisch geordnet.&lt;br /&gt;
* &#039;&#039;&#039;E&#039;&#039;&#039;ntity &#039;&#039;&#039;R&#039;&#039;&#039;elation Diagramme erstellen (&#039;&#039;&#039;Chen Notation&#039;&#039;&#039;)&lt;br /&gt;
* Implementieren des &#039;&#039;&#039;ER&#039;&#039;&#039; Diagramms in &#039;&#039;&#039;MySQL&#039;&#039;&#039;&lt;br /&gt;
* Primär- und Fremdschlüssel&lt;br /&gt;
** Erstellen von Fremdschlüssel &#039;&#039;&#039;Constraints&#039;&#039;&#039;&lt;br /&gt;
* SQL Queries&lt;br /&gt;
** Daten Abfragen&lt;br /&gt;
{{BML|code=&lt;br /&gt;
USE mondial;&lt;br /&gt;
SELECT * from City limit 5;&lt;br /&gt;
&lt;br /&gt;
-- Zeigt alle Spalten, alle Zeilen aus den country Tabelle&lt;br /&gt;
SELECT * FROM mondial.country;&lt;br /&gt;
&lt;br /&gt;
-- Konstant als Text&lt;br /&gt;
SELECT &#039;Hello World!&#039; Greeting;&lt;br /&gt;
&lt;br /&gt;
-- Zeigt alle Spalten, erste 5 Zeilen aus den country Tabelle&lt;br /&gt;
SELECT * FROM mondial.country limit 5;&lt;br /&gt;
&lt;br /&gt;
-- Zeigt die Spalten Name und Capital der erste 5 Zeilen aus den country Tabelle&lt;br /&gt;
SELECT Name, Capital FROM mondial.country limit 5;&lt;br /&gt;
&lt;br /&gt;
-- Zeigt die Spalten Name und Capital mit eigenen Namen&lt;br /&gt;
SELECT Name Land, Capital Hauptstadt FROM mondial.country limit 5;&lt;br /&gt;
&lt;br /&gt;
-- Abfrage mit Filter auf Name&lt;br /&gt;
SELECT Name, Capital FROM mondial.country WHERE Name = &#039;Austria&#039;;&lt;br /&gt;
&lt;br /&gt;
-- Abfrage mit Filter auf Population&lt;br /&gt;
SELECT Name, Capital FROM mondial.country WHERE Population &amp;lt; 1000000;&lt;br /&gt;
&lt;br /&gt;
-- Abfrage mit Filter auf Population&lt;br /&gt;
SELECT Name, Capital, Population FROM mondial.country WHERE Population BETWEEN 1000000 AND 2000000;&lt;br /&gt;
&lt;br /&gt;
-- Abfrage mit Filter auf Name beginnend mit A&lt;br /&gt;
SELECT Name, Capital, Population FROM mondial.country WHERE Name LIKE &#039;A%&#039;;&lt;br /&gt;
&lt;br /&gt;
-- Abfrage mit Filter auf Name am Ende mit A&lt;br /&gt;
SELECT Name, Capital, Population FROM mondial.country WHERE Name LIKE &#039;%A&#039;;&lt;br /&gt;
&lt;br /&gt;
-- Abfrage mit Filter mit NOT Operator&lt;br /&gt;
SELECT Name, Capital, Population FROM mondial.country WHERE Name NOT LIKE &#039;A%&#039;;&lt;br /&gt;
&lt;br /&gt;
-- Abfrage mit Filter mit OR Operator&lt;br /&gt;
SELECT Name, Capital, Population FROM mondial.country WHERE Name LIKE &#039;A%&#039; OR Population &amp;lt; 1000000;&lt;br /&gt;
&lt;br /&gt;
-- Abfrage mit Filter mit AND Operator&lt;br /&gt;
SELECT Name, Capital, Population FROM mondial.country WHERE Name LIKE &#039;A%&#039; AND Population &amp;lt; 1000000;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
** Tabellen verknüpfen mit &#039;&#039;&#039;WHERE&#039;&#039;&#039; und &#039;&#039;&#039;INNER JOIN&#039;&#039;&#039;&lt;br /&gt;
** Unterschied zwischen &#039;&#039;&#039;INNER JOIN&#039;&#039;&#039; und &#039;&#039;&#039;LEFT OUTER JOIN&#039;&#039;&#039; und &#039;&#039;&#039;RIGHT OUTER JOIN&#039;&#039;&#039;&lt;br /&gt;
** Einfügen mittels &#039;&#039;&#039;INSERT&#039;&#039;&#039;&lt;br /&gt;
** Löschen mittels &#039;&#039;&#039;DELETE&#039;&#039;&#039;&lt;br /&gt;
** Aktualisieren mittels &#039;&#039;&#039;UPDATE&#039;&#039;&#039;&lt;br /&gt;
* Anbindung an die Datenbank mittels &#039;&#039;&#039;JDBC&#039;&#039;&#039; in &#039;&#039;&#039;Java&#039;&#039;&#039;&lt;br /&gt;
** Verbindung zur Datenbank herstellen&lt;br /&gt;
** Daten anlegen&lt;br /&gt;
** Daten abrufen&lt;br /&gt;
** Daten löschen&lt;br /&gt;
&lt;br /&gt;
= Übungen =&lt;br /&gt;
&lt;br /&gt;
Als Voraussetzung wird eine funktionierende &#039;&#039;&#039;MySQL&#039;&#039;&#039; installation mit &#039;&#039;&#039;MySQL Workbench&#039;&#039;&#039; vorausgesetzt. &#039;&#039;&#039;MySQL Workbench&#039;&#039;&#039; ist ein grafisches Tool um mit &#039;&#039;&#039;MySQL&#039;&#039;&#039; zu arbeiten.&lt;br /&gt;
&lt;br /&gt;
Der Download für beide Tools findet sich [https://dev.mysql.com/get/Downloads/MySQLInstaller/mysql-installer-community-8.0.27.1.msi hier].&lt;br /&gt;
* Add Product&lt;br /&gt;
* MySQL Server hinzufügen&lt;br /&gt;
* MySQL Workbench hinzufügen&lt;br /&gt;
&lt;br /&gt;
Für den Bereich &#039;&#039;&#039;S&#039;&#039;&#039;tructured &#039;&#039;&#039;Q&#039;&#039;&#039;uery &#039;&#039;&#039;L&#039;&#039;&#039;anguage wird weiters vorausgesetzt dass eine &#039;&#039;&#039;Datenbank&#039;&#039;&#039; mit folgenden Inhalten existiert:&lt;br /&gt;
 Ein großer Dank geht an die Uni Göttingen für die Bereitstellung der &#039;&#039;&#039;Mondial&#039;&#039;&#039;&amp;lt;ref name=&amp;quot;göttingen&amp;quot;&amp;gt;https://www.dbis.informatik.uni-goettingen.de/Mondial/&amp;lt;/ref&amp;gt; Datenbank&lt;br /&gt;
* [[Datei:Mondial-schema-mysql.zip]]&lt;br /&gt;
* [[Datei:Mondial-inputs-mysql.zip]]&lt;br /&gt;
&lt;br /&gt;
# Zuerst MySQL Workbench öffnen, mit dem DBMS verbinden.&lt;br /&gt;
# File -&amp;gt; Open Sql Script -&amp;gt; Schema auswählen (zuerst das zip entpacken)&lt;br /&gt;
# Mit dem Blitz ausführen&lt;br /&gt;
## Tritt ein Fehler auf &amp;gt;&amp;gt;,ORACLE&amp;lt;&amp;lt; aus der ersten Zeile entfernen&lt;br /&gt;
# File -&amp;gt; Open Sql Script -&amp;gt; Input auswählen (zuerst das zip entpacken)&lt;br /&gt;
# Mit dem Blitz ausführen&lt;br /&gt;
# Nun sollte die Datenbank Mondial existieren und es geht weiter mit den übungen zu SQL Abfragen&lt;br /&gt;
&lt;br /&gt;
== SQL Abfragen ==&lt;br /&gt;
Verschiedene Abfragen um Tabellen zu verbinden. Verwende für die Abfragen die &#039;&#039;&#039;Mondial&#039;&#039;&#039; Datenbank.&lt;br /&gt;
[[Datei:ER-Mondial.jpg|mini|none|600px|Mondial ER Diagramm&amp;lt;ref&amp;gt;https://www.dbis.informatik.uni-goettingen.de/Mondial/mondial-abh.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
[[Datei:Mondial Abhängingkeiten.jpg|mini|none|400px|Mondial Abhängigkeiten&amp;lt;ref name=&amp;quot;göttingen&amp;quot;/&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe SQL Queries ====&lt;br /&gt;
 Wie viele Einwohner hat Österreich?&lt;br /&gt;
&lt;br /&gt;
 Wie viele Einwohner hat der Kontinent Europa?&lt;br /&gt;
&lt;br /&gt;
 Welche Flüsse fließen durch Österreich?&lt;br /&gt;
&lt;br /&gt;
 Welche Flüsse fließen durch Europa (nur den Flussnamen)?&lt;br /&gt;
&lt;br /&gt;
 Wie viel Prozent der Menschen leben im Kontinent Europa?&lt;br /&gt;
&lt;br /&gt;
 Alle Länder die mit einem A anfangen&lt;br /&gt;
&lt;br /&gt;
 Alle Länder die mit einem A anfangen und deren Bundesländer mit Einwohnerzahl, sortiert nach Einwohnerzahl&lt;br /&gt;
&lt;br /&gt;
 Alle Flüsse die durch Europa fließen (nur Flüsse und deren Länge), sortiert nach Länge&lt;br /&gt;
&lt;br /&gt;
 Alle Inseln im Pazifik mit &amp;gt;50% islamischem Bekenntnis&lt;br /&gt;
&lt;br /&gt;
 Alle 3000er, welche in einem Land sind, welches zu mindestens 60% römisch Katholisch ist&lt;br /&gt;
&lt;br /&gt;
 Alle Länder mit mindestens einem See mit mindestens 100 Meter Tiefe und mindestens einem Berg mit mindestens 1500 Höhenmeter&lt;br /&gt;
&lt;br /&gt;
 Einwohnerzahl pro Religion&lt;br /&gt;
&lt;br /&gt;
 Alle Länder, nur die Namen und die Meere dazu (keine Null Werte)&lt;br /&gt;
&lt;br /&gt;
 Alle Länder, nur die Namen, und wenn sie haben, das Meer dazu&lt;br /&gt;
&lt;br /&gt;
 Das Unabhängigkeitsdatum von Ländern die eine Wüste haben und die ethnische Gruppe &#039;&#039;&#039;African&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 Welche Länder haben genau 3 Städte? Wie heißen diese Städte?&lt;br /&gt;
&lt;br /&gt;
 Welches sind die 3 größten Städte von Amerika (Kontinent)?&lt;br /&gt;
&lt;br /&gt;
 Was ist der größte Berg von Österreich? Wie hoch ist er?&lt;br /&gt;
&lt;br /&gt;
 Was ist der größte Berg von Europa? Wie hoch ist er?&lt;br /&gt;
&lt;br /&gt;
 Was ist der größte Berg pro Kontinent? Wie hoch sind diese?&lt;br /&gt;
&lt;br /&gt;
 Welches Land hat am meisten anerkannte Religionen? Wie viel sind es?&lt;br /&gt;
&lt;br /&gt;
 Welche Organisationen haben deren Hauptsitz in Österreich? Wie viele Mitglieder haben diese Organisationen?&lt;br /&gt;
&lt;br /&gt;
 Was sind die Top 10 Sprachen? Wie viele native Speaker sprechen diese Sprache?&lt;br /&gt;
&lt;br /&gt;
[https://matura.drlue.at/index.php/Datenbanken_Loesungen Hier nicht klicken (das sind die Lösungen)]&lt;br /&gt;
&lt;br /&gt;
== Create, Read, Update, Delete ==&lt;br /&gt;
Erstelle eine Objekt-Klasse für ein Land und erstelle für jede Aufgabe eine eigene &#039;&#039;&#039;Methode&#039;&#039;&#039; die...&lt;br /&gt;
* ein neues Land erstellt und in die Datenbank einfügt.&lt;br /&gt;
* ein bestimmtes Land in der Datenbank findet.&lt;br /&gt;
* ein bestimmtest Attribut eines Landes verändert.&lt;br /&gt;
* ein bestimmtes Land aus der Datenbank löscht.&lt;br /&gt;
&lt;br /&gt;
=== Bonus Aufgabe ===&lt;br /&gt;
*Erweitere dein Programm mit einer Console-Eingabe und teste deine Methoden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ER Entwurf ==&lt;br /&gt;
Für den Entwurf von &#039;&#039;&#039;E&#039;&#039;&#039;ntity &#039;&#039;&#039;R&#039;&#039;&#039;elationship Modellen gibt es mehrere Möglichkeiten. Soll von einem bestehenden Datenbestand (in unnormalisierter Form) ein Datenbankmodell abgeleitet werden, so können die [https://www.datenbanken-verstehen.de/datenmodellierung/normalisierung/ Normalformen] angewandt werden, auf diese werden wir hier jedoch nicht eingehen. Wird ein ER-Modell direkt anhand einer Problemstellung entworfen, so ist diese bei korrektem Entwurf, inhärent normalisiert.&lt;br /&gt;
&lt;br /&gt;
Für die ER-Modellierung gibt es verschiedene Notationen:&lt;br /&gt;
* [https://de.wikipedia.org/wiki/Chen-Notation Chen Notation und modifizierte Chen Notation]&lt;br /&gt;
* [https://de.wikipedia.org/wiki/Min-Max-Notation Min/Max Notation]&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
Für die folgenden ER-Modelle soll die Chen Notation angewendet werden, diese ist am einfachsten und am wenigsten fehleranfällig. Nach der ER-Modellierung kann direkt ein logischer Entwurf abgeleitet werden, welcher dann &amp;quot;direkt&amp;quot; in die Datenbank übertragen werden kann.&lt;br /&gt;
&lt;br /&gt;
 Als Zeichenprogramm zum Datenbank Entwurf eignet sich [http://dia-installer.de/ Dia]&lt;br /&gt;
&lt;br /&gt;
=== Beispiele ===&lt;br /&gt;
Im folgenden finden sich einige Beispiele zur Übung des ER-Entwurfs. Es ist dabei sehr wichtig aus der textuellen Problemstellung herauszufinden was Teil des ER-Entwurfs ist, und was zum logischen Teil der Anwendung gehört und somit nichts mit dem Entwurf zu tun hat. Weiters ist es sehr wichtig, etwaige Lücken in der Problemstellung zu erkennen und auszufüllen.&lt;br /&gt;
&lt;br /&gt;
Für jedes Beispiel gilt:&lt;br /&gt;
* ER-Entwurf erstellen (inklusive aller wichtigen Attribute)&lt;br /&gt;
* Logischer Entwurf (Entweder in textueller oder tabellarischer Form)&lt;br /&gt;
&lt;br /&gt;
==== Übungsfirma ====&lt;br /&gt;
Eine Firma hat mehrere Mitarbeiter, diese arbeiten in einer Abteilung. Ein Mitarbeiter hat einen Vorgesetzten, dieser ist selbst wieder ein Mitarbeiter. Weiters gibt es Projekte an denen mehrere Mitarbeiter beteiligt sind, Mitarbeiter selbst können auch an mehreren Projekten mitarbeiten.&lt;br /&gt;
&lt;br /&gt;
==== Übungsfirma2 ====&lt;br /&gt;
Ergänze den Entwurf aus dem vorhergehenden Beispiel so, dass Mitarbeiter in einem gewissen Zeitraum an einem Projekt arbeiten können.&lt;br /&gt;
&lt;br /&gt;
 [[Datei:Uebungsfirma all.zip|mini|]] Enthält ER-Entwurf, logischer Entwurf, SQL Statements&lt;br /&gt;
[[Datei:Uebungsfirma.png|mini|none|400px|ER-Diagramm Übungsfirma]]&lt;br /&gt;
&lt;br /&gt;
==== Zoo ====&lt;br /&gt;
Mehrere in ganz Deutschland verteilte Zoos sollen mittels einer Datenbank verwaltet werden. Die Tiere werden von Pflegern gepflegt und befinden sich in Gehegen. Außerdem bekommen die Tiere eine spezielle Futtermischung, welche von Lieferanten geliefert wird.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Zoo all.zip|mini]]&lt;br /&gt;
[[Datei:Zoo.png|mini|none|400px|Zoo ER-Diagramm]]&lt;br /&gt;
&lt;br /&gt;
==== Druckerproduzent ====&lt;br /&gt;
Eine Firma, die Drucker herstellt, benötigt eine Datenbank zur Verwaltung ihrer Geschäftsprozesse. Die Firma hat mehrere Abteilungen, wie zum Beispiel Lager, Fertigung, Vertrieb. Zur Herstellung der Drucker werden Zukaufteile benötigt, die also nicht in der Fertigung selbst hergestellt werden. Der Fabrikleiter möchte auch einen Überblick über die Mitarbeiter mit allen relevanten Daten haben.&lt;br /&gt;
&lt;br /&gt;
==== Restaurant ====&lt;br /&gt;
Sie besitzen ein Restaurant, natürlich haben Sie Angestellte die entweder Koch, Kellner oder Lieferant sein können, überlegen Sie sich die nötigen Attribute selbst. Kunden können bei Ihnen im Restaurant bestellen und dort essen, Sie bieten aber auch das Angebot die Bestellung nach Hause zu liefern. Der Kellner ist für die Bearbeitung der Bestellung zuständig und teilt die Kunden zu den jeweiligen Tischen ein.&lt;br /&gt;
&lt;br /&gt;
==== Ferienhausverwaltung ====&lt;br /&gt;
Eine Ferienhausvermietung braucht ein Datenbanksystem für die Verwaltung der Buchungen. Zwischen zwei Buchungen muss immer eine Reinigungskraft das gesamte Haus reinigen und auf Schäden kontrollieren. Für diese Reinigung und Kontrolle braucht die Reinigungskraft zwischen 3-6 Stunden, je nach Größe / Kategorie bzw. Nächtigungspreis des Hauses. Die Ferienhäuser werden demnach in drei Klassen unterteilt.&lt;br /&gt;
* &amp;lt; 150 € / Nacht (Reinigung &amp;amp; Kontrolle: 3 Stunden)&lt;br /&gt;
* &amp;lt; 500 € / Nacht (Reinigung &amp;amp; Kontrolle: 5 Stunden)&lt;br /&gt;
* &amp;gt; 500 € / Nacht (Reinigung &amp;amp; Kontrolle: 6 Stunden)&lt;br /&gt;
Bei Schäden muss das Haus für die Zeit, bis der Schaden repariert wurde, gesperrt werden.&lt;br /&gt;
Die Ferienhäuser haben zwischen ein und vier Stockwerke (inkl. Keller), sowie unterschiedliche Ausstattungen (Bsp. Garten, WLAN, Balkon, ...).&lt;br /&gt;
Fügen Sie weitere Attribute (Bsp. Quadratmeter) hinzu, welche Sie für wichtig erachten.&lt;br /&gt;
&lt;br /&gt;
== Datenbank Anwendung ==&lt;br /&gt;
Im folgenden soll in mehreren Schritten eine Datenbank Anwendung modelliert und erstellt werden. Diese Anwendung soll ein einfaches Zahlungssystem mit Überweisung und Bankomat beeinhalten.&lt;br /&gt;
* Kunden sollen angelegt werden&lt;br /&gt;
* Es sollen Konten angelegt werden&lt;br /&gt;
* Konten sollen Geld überweisen/einzahlen und überweisen können&lt;br /&gt;
* Jede Transaktion soll gespeichert werden mit Betrag, Quelle, Ziel und Datum&lt;br /&gt;
* Der Kontostand soll aufgrund aller vorhergehenden Transaktion berechnet werden&lt;br /&gt;
* Der Kunde soll Geld einzahlen und abheben können&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe: &#039;&#039;&#039;E&#039;&#039;&#039;ntity &#039;&#039;&#039;R&#039;&#039;&#039;elation (ER) Diagramm erstellen ====&lt;br /&gt;
Entwirf ein korrektes &#039;&#039;&#039;ER&#039;&#039;&#039; Diagramm für die Datenbankanwendung, zumindest sollen die Tabellen &#039;&#039;&#039;Kunde&#039;&#039;&#039;, &#039;&#039;&#039;Konto&#039;&#039;&#039; und &#039;&#039;&#039;Transaktion&#039;&#039;&#039; enthalten sein. Achte auf die korrekte Beziehung zwischen den Tabellen.&lt;br /&gt;
* Ein Kunde kann mehrere Konten haben&lt;br /&gt;
* Ein Konto kann mehrere Kunden haben, diese haben dann eine unterschiedliche Rolle (Besitzer, Zeichnungsberechtigt, etc...)&lt;br /&gt;
* Eine Transaktion muss ein Quell- und ein Zielkonto haben&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe: Anlegen der Datenbank in MySQL ====&lt;br /&gt;
Implementiere das erstellte &#039;&#039;&#039;ER&#039;&#039;&#039; Diagramm in MySQL. Achte auf das Anlegen von korrekten &#039;&#039;&#039;Primär-&#039;&#039;&#039; und &#039;&#039;&#039;Fremdschlüsseln.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe: Verbinden der Datenbank (JDBC) in Java ====&lt;br /&gt;
Verbinde dich über die &#039;&#039;&#039;JDBC&#039;&#039;&#039; Schnittstelle in Java mit der angelegten Datenbank. Das Anlegen einer Testdatenbank kann sehr hilfreich sein um Tests zu schreiben.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe: Kunden/Konten und Transaktionen in Java anlegen und abrufen ====&lt;br /&gt;
Erstelle die Modelle für deine Tabellen in Java und ermögliche über Methoden das &#039;&#039;&#039;Erstellen&#039;&#039;&#039;, &#039;&#039;&#039;Aktualisieren&#039;&#039;&#039;, &#039;&#039;&#039;Lesen&#039;&#039;&#039; und &#039;&#039;&#039;Löschen.&lt;br /&gt;
 &#039;&#039;&#039;C&#039;&#039;&#039;reate &#039;&#039;&#039;R&#039;&#039;&#039;ead &#039;&#039;&#039;U&#039;&#039;&#039;pdate &#039;&#039;&#039;D&#039;&#039;&#039;elete&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe: (Kommandozeilenanwendung) für den Bankomat erstellen ====&lt;br /&gt;
Erstelle ein Userinterface für die Bankomat Anwendung.&lt;br /&gt;
* Der Benutzer soll authentifiziert werden&lt;br /&gt;
* Es soll eine entsprechende Auswahl an Konten angezeigt werden&lt;br /&gt;
* Einzahlen/Auszahlen soll möglich sein&lt;br /&gt;
* Überweisung an anderes Konto&lt;br /&gt;
&lt;br /&gt;
= Quellen =&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Objekt_Orientierte_Programmierung_%C3%9Cbungen&amp;diff=3713</id>
		<title>DCV 2024 09/Objekt Orientierte Programmierung Übungen</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Objekt_Orientierte_Programmierung_%C3%9Cbungen&amp;diff=3713"/>
		<updated>2024-11-14T14:07:23Z</updated>

		<summary type="html">&lt;p&gt;Sandro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im folgenden sollen diese Begriffe verstanden und angewandt werden. Diese sind nicht chronologisch geordnet.&lt;br /&gt;
 &#039;&#039;&#039;Tip:&#039;&#039;&#039; Für weitere Informationen: [[Objektorientierte_Programmierung|Objektorientierte Programmierung]]&lt;br /&gt;
* Klasse&lt;br /&gt;
** Instanz- vs. Klassenmethode&lt;br /&gt;
** Instanz- vs. Klassenattribut&lt;br /&gt;
** Innere Klassen (statisch vs. nicht statisch)&lt;br /&gt;
* Enumeration (enum)&lt;br /&gt;
* Collections (Liste, Set, Map)&lt;br /&gt;
* Vererbung&lt;br /&gt;
* Abstrakte Klasse&lt;br /&gt;
* Interface&lt;br /&gt;
* Polymorphismus&lt;br /&gt;
* Beziehungen&lt;br /&gt;
** Has-A vs. Is-A&lt;br /&gt;
** Implementierung von Interfaces&lt;br /&gt;
* Generics&lt;br /&gt;
* Designpatterns&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Person ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Klasse&#039;&#039;&#039; welche die typischen Werte eines Menschen speichern kann.&lt;br /&gt;
* Größe&lt;br /&gt;
* Alter&lt;br /&gt;
* Name&lt;br /&gt;
* Gewicht&lt;br /&gt;
Erstelle weiters eine {{JSL|toString()}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und erstelle einen schönen {{JSL|String}} mit den gegebenen Werten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Türkische Serie ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Klasse&#039;&#039;&#039; welche die typischen Werte einer TV-Serie speichern kann.&lt;br /&gt;
* Title&lt;br /&gt;
* Genre&lt;br /&gt;
* Jahr&lt;br /&gt;
* Originalsprache&lt;br /&gt;
&lt;br /&gt;
Erstelle weiters eine {{JSL|toString()}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und erstelle einen schönen {{JSL|String}} mit den gegebenen Werten.&lt;br /&gt;
&lt;br /&gt;
Erstelle weiterhin 2-3 Objekten, als typische türkische Serien.&lt;br /&gt;
&lt;br /&gt;
Erweitere deine &#039;&#039;&#039;Klasse&#039;&#039;&#039; mit den Attributen&lt;br /&gt;
* Regisseur&lt;br /&gt;
* Produzent&lt;br /&gt;
&lt;br /&gt;
Verwende hierfür die bereits bestehende Klasse &#039;&#039;&#039;Person&#039;&#039;&#039;, aus dem vorherigen Beispiel.&lt;br /&gt;
&lt;br /&gt;
Erstelle &#039;&#039;&#039;Funktionen&#039;&#039;&#039; die sowohl diese Personen zu der Serie hinzufügen als auch wieder löschen kann!&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Datenklasse ===&lt;br /&gt;
Es soll eine &#039;&#039;&#039;Methode&#039;&#039;&#039; erstellt werden, welche das &#039;&#039;&#039;kleinste&#039;&#039;&#039; und das &#039;&#039;&#039;größte Element&#039;&#039;&#039; sowie den &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; eines {{JSL|int[]}} ermittelt und zurückgibt. Alle  ermittelten Werten sollen in einem Datenobjekt zurückgegeben werden. Erstelle dazu eine Datenklasse welche die entsprechenden Werte enthält. Teste diese &#039;&#039;&#039;Methode&#039;&#039;&#039; ausgiebig mit verschiedenen {{JSL|int[]}}, verwende auch ein zufallsgeneriertes {{JSL|int[]}} mit negativen und positiven Werten.&lt;br /&gt;
* Erstelle die Datenklasse mit einem Sinnvollen Klassennamen und entsprechenden &#039;&#039;&#039;Attributen&#039;&#039;&#039;. Achte hierbei auch auf die Korrekte Sichtbarkeit&lt;br /&gt;
* Erstelle in in der Datenklasse einen &#039;&#039;&#039;Konstruktor&#039;&#039;&#039; welcher alle Werte entgegennimmt und erstelle &#039;&#039;&#039;getter&#039;&#039;&#039; für alle Werte&lt;br /&gt;
* Überschreibe die {{JSL|toString()}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und erstelle einen schönen {{JSL|String}} mit den gegebenen Werten.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Fotoapparat ===&lt;br /&gt;
Erstelle eine Fotoapparat &#039;&#039;&#039;Klasse&#039;&#039;&#039;.&lt;br /&gt;
* Mit zumindest folgenden Attributen (es dürfen auch gerne mehr sein), &#039;&#039;&#039;Brennweite min/max&#039;&#039;&#039;, &#039;&#039;&#039;Model&#039;&#039;&#039;, &#039;&#039;&#039;Hersteller&#039;&#039;&#039; und &#039;&#039;&#039;Megapixel&#039;&#039;&#039;.&lt;br /&gt;
* Erstelle für die Attribute &#039;&#039;&#039;getter&#039;&#039;&#039; und &#039;&#039;&#039;setter&#039;&#039;&#039;&lt;br /&gt;
* Erstelle weiters die &#039;&#039;&#039;Methode&#039;&#039;&#039; {{JSL|takePhoto()}}, die ein Foto schießt (Mach einfach eine nette Ausgabe)&lt;br /&gt;
* Überschreibe die {{JSL|toString()}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und gib die relevanten Daten als {{JSL|String}} zurück&lt;br /&gt;
&lt;br /&gt;
Erstelle verschiedene &#039;&#039;&#039;Instanzen&#039;&#039;&#039; der Fotoapparat &#039;&#039;&#039;Klasse&#039;&#039;&#039; und Teste diese ausgiebig.&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Bonusaufgabe: Fotoapparat &amp;amp; Objektiv &amp;amp; Speicherkarte&#039;&#039;&#039; ===&lt;br /&gt;
Erweitere das vorhergehende Beispiel um die Klassen Objektiv und Speicherkarte. Die Brennweite der Kamera fällt demnach weg.&lt;br /&gt;
Das Objektiv und die Speicherkarte sollen getauscht werden können.&lt;br /&gt;
Erstelle Methoden um zu erfragen wieviele Fotos bereits aufgenommen wurden und wieviel Speicher noch frei ist. Für die Berechnung speicherplatz pro bild, kann ein wert von 0.3mb pro Megapixel angenommen werden.[https://www.mvorganizing.org/what-is-the-average-size-of-a-jpg/#What_is_the_average_size_of_a_JPG]&lt;br /&gt;
&lt;br /&gt;
== Handhabung von dynamischen Datenstrukturen (ArrayList, Vector, LinkedList, HashSet, HashMap) ==&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Vector erstellen ===&lt;br /&gt;
Erstelle einen Vector mit 20 Zufallszahlen zwischen 0 und 99.&lt;br /&gt;
&lt;br /&gt;
Gib den Vector mit {{JSL|System.out.println()}} aus.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Vector erstellen ===&lt;br /&gt;
Erstelle einen Vector mit 20 Zufallszahlen zwischen 0 und 99.&lt;br /&gt;
&lt;br /&gt;
Erstelle jeweils eine Funktionen für:&lt;br /&gt;
# Zählen der geraden Zahlen&lt;br /&gt;
# Suche nach der kleinsten Zahl&lt;br /&gt;
# Suche nach der größten Zahl&lt;br /&gt;
# Sortiere die Elementen absteigend&lt;br /&gt;
# Lösche alle Ungerade Zahlen&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Zwei Vectoren zusammenführen ===&lt;br /&gt;
Es gibt zwei Vectoren mit 20 Elementen, die nach Größe sortiert sind.&lt;br /&gt;
&lt;br /&gt;
Erstelle einen dritten Vector, in dem du die Elemente der vorhergehenden Vectoren zusammenfügst, der neu erstellte Vector soll immer noch sortiert sein.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Person 2.0 ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Klasse&#039;&#039;&#039; welche die typischen Werte eines Menschen speichern kann.&lt;br /&gt;
* Größe&lt;br /&gt;
* Alter&lt;br /&gt;
* Name&lt;br /&gt;
* Gewicht&lt;br /&gt;
Erstelle weiters eine Methode welche eine {{JSL|List}} von Personen erhält und bezüglich &#039;&#039;&#039;Größe&#039;&#039;&#039;, &#039;&#039;&#039;Alter&#039;&#039;&#039;, &#039;&#039;&#039;Gewicht&#039;&#039;&#039;, das &#039;&#039;&#039;kleinste&#039;&#039;&#039; und das &#039;&#039;&#039;größte Element&#039;&#039;&#039; sowie den &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; berechnet und wie in der vorhergehenden Aufgabe in einer eigenen Klasse zurückgibt.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Person Sortiert ===&lt;br /&gt;
Verwende die erstellte &#039;&#039;&#039;Klasse&#039;&#039;&#039; aus dem vorhergehenden Beispiel und erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche eine {{JSL|List}} von Personen nach entweder nach &#039;&#039;&#039;Größe&#039;&#039;&#039;, &#039;&#039;&#039;Alter&#039;&#039;&#039;, &#039;&#039;&#039;Gewicht&#039;&#039;&#039;, oder &#039;&#039;&#039;Name&#039;&#039;&#039; sortiert. Hierfür kann ein &#039;&#039;&#039;enum&#039;&#039;&#039; verwendet werden, oder auch einfach ein {{JSL|int}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Türkische Serie 2.0 ===&lt;br /&gt;
Erweitere die bestehende &#039;&#039;&#039;Klasse&#039;&#039;&#039; &amp;quot;Serie&amp;quot; mit neuen Attributen.&lt;br /&gt;
* Title&lt;br /&gt;
* Genre&lt;br /&gt;
* Jahr&lt;br /&gt;
* Originalsprache&lt;br /&gt;
* Regisseur&lt;br /&gt;
* Direktor&lt;br /&gt;
NEU!&lt;br /&gt;
* ScoutListe (Liste mit Vector)&lt;br /&gt;
* CastListe (Liste mit Vector)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstelle mit Hilfe einer neuen Klasse (Schauspieler) ein Objekt, ähnlich wie eine Person, mit sinnvollen Attribute.&lt;br /&gt;
* Vorname&lt;br /&gt;
* Nachname&lt;br /&gt;
* Alter&lt;br /&gt;
* Gage&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstelle dann in der &#039;&#039;&#039;Klasse&#039;&#039;&#039; &amp;quot;Serie&amp;quot; Funktionen die Schauspieler(Objekt) zu einer Liste hinzufügen und löschen können.&lt;br /&gt;
Erstelle in der Main, mind. 5 Schauspieler und füge diese dann zu der ScoutingListe dazu.&lt;br /&gt;
Erstelle ein Methode, die Schauspieler auf die CastingListe bringt und dabei aber auch von der ScoutingListe entfernt!&lt;br /&gt;
&lt;br /&gt;
Erweitere dann die Simulation der Serie.&lt;br /&gt;
* Es müssen mindestens 2 Schauspieler angeheuert sein, um die Produktion zu starten.&lt;br /&gt;
* Erstelle Events, wo du Schauspieler aus dem aktuellen Cast löschst und/oder neue dazu fügst.&lt;br /&gt;
&lt;br /&gt;
== Zoo-Simulation ==&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Zoo ===&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Main&#039;&#039;&#039; Klasse, die zuständig ist für&lt;br /&gt;
* die Initialisierung des Zoos und aller seiner Bestandteile&lt;br /&gt;
* Initiieren des nächsten Simulationsschrittes&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Zoo&#039;&#039;&#039; Klasse mit &#039;&#039;Name&#039;&#039; und &#039;&#039;Gründungsjahr&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Gehege&#039;&#039;&#039; Klasse mit &#039;&#039;Name&#039;&#039; der als Beschreibung des Geheges dient.&lt;br /&gt;
&lt;br /&gt;
Erweitere deinen Zoo, sodass Gehege dynamisch hinzugefügt und entfernt werden können.&lt;br /&gt;
&lt;br /&gt;
Erweitere dein Programm um eine Funktion, die die Struktur des Zoos ausgibt. Der erwartete Ausdruck sieht folgendermaßen aus.&lt;br /&gt;
&lt;br /&gt;
{{BML|code= &lt;br /&gt;
├── Zoo: Tiergarten Dornbirn, gegründet 2022&lt;br /&gt;
│   ├── Gehege: Alpenwiese&lt;br /&gt;
│   ├── Gehege: Ried&lt;br /&gt;
│   ├── Gehege: Terrarium (warm)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Tiere ===&lt;br /&gt;
&lt;br /&gt;
Erweitere dein Zooprogramm mit Tiere.&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Tier&#039;&#039;&#039; Klasse mit einem &#039;&#039;Name&#039;&#039; und einer &#039;&#039;Gattung&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Erweitere die Gehege, um Tiere dynamisch zufügen und entfernen zu können.&lt;br /&gt;
&lt;br /&gt;
Erweitere den Struktur-Ausdruck von Zoo, dass es auch die Tiere ausdrückt.&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
├── Zoo: Tiergarten Dornbirn, gegründet 2022&lt;br /&gt;
│   ├── Gehege: Alpenwiese&lt;br /&gt;
│       ├── Rijska, Kuh&lt;br /&gt;
│   ├── Gehege: Ried&lt;br /&gt;
│       ├── Garmond, Storch&lt;br /&gt;
│       ├── Hugo, Storch&lt;br /&gt;
│       ├── Idaxis, Storch&lt;br /&gt;
│   ├── Gehege: Terrarium (warm)&lt;br /&gt;
│       ├── (leer)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Bonusaufgabe: Tierfutter&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Erweitere dein Zooprogramm mit Futter-Bedarfsanalyse.&lt;br /&gt;
&lt;br /&gt;
Erstelle eine Klasse für &#039;&#039;&#039;Futter&#039;&#039;&#039; mit einen &#039;&#039;Name&#039;&#039;, &#039;&#039;Einheit&#039;&#039; und &#039;&#039;Einheitspreis&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Jedes Tier hat einen Futterbedarf, die beinhaltet den &#039;&#039;Futter&#039;&#039; und eine &#039;&#039;Menge&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstelle eine Statistik, was den Futterbedarf von Zoo ist, und wie viel die Tagesversorgung sich kostet. Für diese Aufgabe kann man {{JSL|HashMap}} gut brauchen.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Pfleger ===&lt;br /&gt;
&lt;br /&gt;
Erweitere dein Zooprogramm um Tierpfleger.&lt;br /&gt;
&lt;br /&gt;
Erstelle eine Klasse &#039;&#039;&#039;Pfleger&#039;&#039;&#039; mit einem &#039;&#039;Namen&#039;&#039; und mit einer dynamischen Liste von &#039;&#039;Gehegen&#039;&#039;, wofür der Pfleger zuständig ist. Erweitere die Klasse &#039;&#039;Zoo&#039;&#039;, dass die eine Liste der &#039;&#039;Pfleger&#039;&#039; beinhaltet.&lt;br /&gt;
&lt;br /&gt;
Erweitere den Struktur-Ausdruck um die neu eingeführten Pfleger.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Simulation 0.1 ===&lt;br /&gt;
&lt;br /&gt;
Erweitere das Programm mit einer Tagessimulation.&lt;br /&gt;
&lt;br /&gt;
# An jedem Tag gehen die Pfleger los und kümmern sich um die Gehege in deren Zuständigkeitsbereich.&lt;br /&gt;
## Falls ein Pfleger ein Gehege findet, welche schon bearbeitet wurde, überspringt er das Gehege und nimmt das nächste&lt;br /&gt;
# Wenn ein Pfleger zu einem Gehege kommt, wird er zuerst die Tiere füttern&lt;br /&gt;
# Nach dem Füttern wird er ein Zufälliges Tier länger beobachten.&lt;br /&gt;
## Mit einer Erweiterung der Pfleger mit den &#039;&#039;Lieblings-Tier-Gattung&#039;&#039;, kann der Pfleger das Tier bewundern.&lt;br /&gt;
&lt;br /&gt;
Lass auf der Konsole ausdrucken, wer-was macht...&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Bonusaufgabe: Simulation 0.2&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Erweitere die Simulation&lt;br /&gt;
&lt;br /&gt;
# Jedes Tier hat eine &#039;&#039;Gesundheit&#039;&#039;, ein &#039;&#039;MaxGesundheit&#039;&#039; und einen &#039;&#039;Biss&#039;&#039;&lt;br /&gt;
# Jedes Tier versucht mit 40% Wahrscheinlichkeit, ein Nachbar von ihm aus dem gleichen Gehege zu beißen.&lt;br /&gt;
# Falls ein Tier gebissen wird, wird seine Gesundheit mit dem Biss von Angreifer reduziert&lt;br /&gt;
# &amp;quot;toten Tiere&amp;quot; beißen nicht.&lt;br /&gt;
# Am Ende des Tages werden &amp;quot;toten Tiere&amp;quot; aus dem Gehege entfernt&lt;br /&gt;
&lt;br /&gt;
Lass auf der Konsole ausdrucken, wer-was macht...&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Bonusaufgabe: Simulation 0.3&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Erweitere den Zoo mit Tierärzte, die die verletzte Tiere behandeln und heilen. Erstelle eine Klasse &#039;&#039;&#039;TierArzt&#039;&#039;&#039; mit einem &#039;&#039;Name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Erweitere die Simulation&lt;br /&gt;
&lt;br /&gt;
# Jeder Tierarzt wird an jedem Tag - genau 1 Tier behandeln&lt;br /&gt;
# Der Tierarzt wählt das Tier mit der geringsten relativen Gesundheit&lt;br /&gt;
## Zum Beispiel: 10 Gesundheit mit 100 Maximum ist 10% und so dringender als 1 Gesundheit aus 2 ergo 50%.&lt;br /&gt;
# Der Tierarzt wird zufällig zwischen 30 und 100% der Gesundheit wiederherstellen&lt;br /&gt;
# Kein Tier kann über die maximale Gesundheit geboostet werden.&lt;br /&gt;
&lt;br /&gt;
Lass auf der Konsole ausdrucken, wer-was macht...&lt;br /&gt;
&lt;br /&gt;
== Übungen zur Vererbung ==&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Super Klasse&#039;&#039;&#039; und &#039;&#039;&#039;Sub Klasse&#039;&#039;&#039; ===&lt;br /&gt;
In der Hierarchie steht die &#039;&#039;&#039;Super Klasse&#039;&#039;&#039; über der &#039;&#039;&#039;Sub Klasse&#039;&#039;&#039;, welche von dieser &#039;&#039;&#039;Super Klasse&#039;&#039;&#039; erbt.&lt;br /&gt;
&lt;br /&gt;
* erstelle zwei verschiedene Objekt Klassen, die Gemeinsamkeiten teilen (z.B. Mensch und Tier/ oder Obst und Gemüse)&lt;br /&gt;
* erstelle eine Super Klasse die diese Gemeinsamkeiten vereint bzw. beinhaltet.&lt;br /&gt;
* lösche die Attribute und Methoden aus den Sub Klassen die nun über die Super Klasse entstehen und verbinden diese mit Hilfe von &#039;&#039;&#039;extends&#039;&#039;&#039;.&lt;br /&gt;
* erstelle nun eine weiter Sub Klasse die von einer oberen Sub Klasse erbt (z.B. Tier - Hund / Obst - Apfel)&lt;br /&gt;
* erstelle noch eine Klasse die jetzt von diese letzten Klasse erbt (z.B Hund -Schäferhund ( Apfel - [https://de.wikipedia.org/wiki/Granny_Smith Granny_Smith])&lt;br /&gt;
&lt;br /&gt;
=== Konstruktoren und Methoden überladen ===&lt;br /&gt;
Diese Übung zeigt mittels Überladung, wie ein Konstruktor oder eine Methode mehrere mögliche Arten haben kann, um diese zu verweden.&lt;br /&gt;
&lt;br /&gt;
*erstelle hierzu eine Objekt Klasse, die mit 4 Attribute ein Objekt beschreibt.&lt;br /&gt;
*erstelle außerdem noch mindestens einen getter für ein Attribut.&lt;br /&gt;
Beispiel: Teilnehmer&lt;br /&gt;
# String name,&lt;br /&gt;
# int alter,&lt;br /&gt;
# String email,&lt;br /&gt;
# int idNummer;&lt;br /&gt;
&lt;br /&gt;
public void getEmail();&lt;br /&gt;
&lt;br /&gt;
*erstelle nun einen Konstruktor für diese 4 Attribute.&lt;br /&gt;
*erstelle einen zweiten Konstruktor mit nur 2 Attribute.&lt;br /&gt;
*erstelle einen dritten Konstruktor mit keinem Attribut.&lt;br /&gt;
&lt;br /&gt;
Teste in deiner Main, nun die 3 verschiedenen Möglichkeiten ein Objekt zu erstellen, mit diesen unterschiedlichen Konstruktoren.&lt;br /&gt;
Was passiert wenn du ein Objekt erstellt hast, das kein email-Attribut hat, du aber versuchst von diesem Objekt die Methode getEmail(); aufzurufe?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Beispiel &#039;&#039;&#039;Super Klasse&#039;&#039;&#039; erweitern ===&lt;br /&gt;
Erweitere nun das vorherige Beispiel mit der Super Klasse und den Sub Klassen, und füge allen einen Konstruktor hinzu.&lt;br /&gt;
&lt;br /&gt;
*erstelle für jede Klasse einen Konstruktor&lt;br /&gt;
*gib mit der Schlüsselfunktion super(); relevante Attribute weiter und teste in der Main deine Objekte&lt;br /&gt;
&lt;br /&gt;
*erstelle eine Liste von deinen Objekten und gib verschiedene Informationen aus.&lt;br /&gt;
*verwende die toString(), .getClass()  und .getClass().getSimpleName() Methode.&lt;br /&gt;
*schreibe eine @Override toString Methode&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Abstrakte Klasse ===&lt;br /&gt;
Die Abstrakte Klasse gibt uns die Möglichkeit, eine Objekt Klasse zu erstellen die als Super Klasse fungiert, ohne das diese aber selbst ein Objekt instanziieren kann.&lt;br /&gt;
Zusätzlich können wir damit erzwingen, dass Sub Klassen die von dieser Klasse erben, bestimmte Methoden zum Beispiel unbedingt haben MUSS.&lt;br /&gt;
&lt;br /&gt;
*erstelle zwei Sub Klassen mit Attribute und Methoden&lt;br /&gt;
*erstelle eine Super Klasse für diese zwei Klassen, mit Attribute, Methoden und Konstruktor.&lt;br /&gt;
&lt;br /&gt;
*schreibe die Super Klasse nun zu einer public abstract class um&lt;br /&gt;
&lt;br /&gt;
Zusätzlich wollen wir verhindern, dass Methoden dieser Super Klasse direkt aufgerufen werden können. Sie soll als Blueprint dienen und die Sub Klassen dazu zwingen diese Methoden selbst zu schreiben.&lt;br /&gt;
*schreibe die Methoden der Super Klasse in abstrakte Methoden um. &lt;br /&gt;
(Wichtig, Syntax beachten!!!)&lt;br /&gt;
&lt;br /&gt;
*Überarbeite nun die Sub Klassen mit den notwendigen Methoden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Übungen Zur Modellierung ==&lt;br /&gt;
&lt;br /&gt;
Die folgenden Übungen haben das Ziel, schnell ein Model zu erfassen, das die folgenden Aspekte beinhaltet:&lt;br /&gt;
# Klassen&lt;br /&gt;
# Kompositionen&lt;br /&gt;
# Vererbungen&lt;br /&gt;
# Methoden / Funktionen&lt;br /&gt;
# Variablen / Attribute&lt;br /&gt;
&lt;br /&gt;
[[Datei:Uml-class-diagram-cheat-sheet.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine ausführliche Erklärung dazu findet sich beim Klick auf diesen Verweis: [https://ccwiki.digitalcampusvorarlberg.at/index.php/UML_Klassendiagramm].&lt;br /&gt;
&lt;br /&gt;
=== Schwarzwald Klinik ===&lt;br /&gt;
&lt;br /&gt;
Es gibt ein &#039;&#039;&#039;Krankenhaus&#039;&#039;&#039; mit unterschiedlichen &#039;&#039;&#039;Abteilungen&#039;&#039;&#039;. Manche Abteilungen sind &#039;&#039;&#039;Ambulanz&#039;&#039;&#039;en anderen sind &#039;&#039;&#039;Station&#039;&#039;&#039;en. Ambulanzen haben eine Öffnungszeit sowie einen Warteraum mit einer definierten Anzahl von Plätzen. Stationen beinhalten &#039;&#039;&#039;Zimmer&#039;&#039;&#039; in denen sich &#039;&#039;&#039;Betten&#039;&#039;&#039; befinden.&lt;br /&gt;
Wenn ein Patient ins Krankenhaus kommt, besucht dieser entsprechend seiner Erkrankung eine Ambulanz. Falls der Fall schwerwiegender ist, muss er in einer Station aufgenommen werden. Patienten werden untersucht, behandelt und eventuell gepflegt. Aus der Ambulanzen dürfen die Patienten nach kurzer Zeit wieder nach Hause gehen. Patienten die in Stationen behandelt werden, müssen solange da bleiben, bis sie vollständig geheilt sind.&lt;br /&gt;
&lt;br /&gt;
=== Restaurant &#039;&#039;Dolce Vita&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Es gibt ein &#039;&#039;&#039;Restaurant&#039;&#039;&#039;, das aus mehreren Räumen besteht. Jeder &#039;&#039;&#039;Raum&#039;&#039;&#039; hat einen zuständigen &#039;&#039;&#039;Kellner&#039;&#039;&#039;. In jedem &#039;&#039;&#039;Raum&#039;&#039;&#039; befinden sich unterschiedliche Tische. Manche sind groß, andere sind winzig klein. Wenn eine &#039;&#039;&#039;Gruppe&#039;&#039;&#039; eintrifft, werden sie vom &#039;&#039;&#039;Hauptkellner&#039;&#039;&#039; begrüßt. Der Hauptkellner führt sie zu einem Tisch und übergibt die Gruppe an den im jeweiligen Raum zuständigen Kellner. Die Gruppe der Gäste bekommt eine &#039;&#039;&#039;Speisekarte&#039;&#039;&#039; mit den Speisen und Getränken. Der Kellner nimmt die Bestellungen auf und serviert diese anschließend. Nach dem Essen fragt die Gruppe nach der &#039;&#039;&#039;Rechnung&#039;&#039;&#039; und bezahlt diese.&lt;br /&gt;
&lt;br /&gt;
Am Ende des Tages macht der Hauptkellner eine Gesamtabrechnung und eine Analyse:&lt;br /&gt;
* Welcher Kellner hat die meisten Gäste bedient?&lt;br /&gt;
* Welcher Kellner hat den Höchsten Umsatz generiert?&lt;br /&gt;
* Welcher Kellner hat den größten Gewinnn erwirtschaftet? (Dazu braucht man die Selbstkosten pro Speise/Getränk)&lt;br /&gt;
* Was war die beliebteste Speise?&lt;br /&gt;
* Was war das beliebteste Getränk?&lt;br /&gt;
&lt;br /&gt;
=== Museum: Neue Pinakothek ===&lt;br /&gt;
&lt;br /&gt;
Ein &#039;&#039;&#039;Museum&#039;&#039;&#039; besteht aus Gängen und Ausstellungsräume. Jeder &#039;&#039;&#039;Gang&#039;&#039;&#039; und &#039;&#039;&#039;Ausstellungsraum&#039;&#039;&#039; kennt über die benachbarten Räume. In jedem Ausstellungsraum sind &#039;&#039;&#039;Kunststücke&#039;&#039;&#039; ausgestellt. Ein Kunststück kann ein Zeichen, Gemälde, Statue, oder ein Kunstobjekt sein.&lt;br /&gt;
Es gibt einen besonderen Gang im Museum, der als Eingang für Gäste dient. Ab dem Zeitpunkt der Öffnung dürfen Gäste ins Museum kommen. Ein Gast in einem Gang wählt einen zufälligen Raum, den er betritt. Falls sich ein Gast in einem Ausstellungsraum befindet, kann er ein zufälliges Kunststück beobachten oder in den nächsten Raum gehen. Falls ein Gast nach einer Zeit müde wird, geht er nach Hause. Zwischen den Gästen sind einige mit bösen Absichten. Ein &#039;&#039;&#039;Dieb&#039;&#039;&#039; stiehlt den beobachteten Gegenstand, falls er sich allein in einem Raum befindet. Um die Diebstähle zu verhindern sind einige &#039;&#039;&#039;Wächter&#039;&#039;&#039; im Museum unterwegs. Die Wächter beobachten keine Kunstobjekte, sondern sie versuchen sich in Räumen zu befinden in denen auch anderen Gäste präsent sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Geometry ===&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Abstrakte Klasse&#039;&#039;&#039; {{JSL|Geometry}}. Diese enthält folgende &#039;&#039;&#039;Methoden&#039;&#039;&#039;:&lt;br /&gt;
* {{JSL|getCircumference()}} und gibt einen {{JSL|double}} zurück&lt;br /&gt;
* {{JSL|getArea()}} und gibt einen {{JSL|double}} zurück&lt;br /&gt;
&lt;br /&gt;
Erstelle nun einige &#039;&#039;&#039;Klassen&#039;&#039;&#039; die von {{JSL|Geometry}} erben (Circle, Square, Rectangle, Triangle,...). Jede &#039;&#039;&#039;Klasse&#039;&#039;&#039; soll in ihrem Konstruktor die entsprechenden Werte erhalten.&lt;br /&gt;
&lt;br /&gt;
Erstelle nun verschiedene &#039;&#039;&#039;Instanzen&#039;&#039;&#039; von {{JSL|Geometry}}, speichere diese in einer {{JSL|List}}. Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die den Gesamtumfang und die Gesamtfläche aller {{JSL|Geometry}} &#039;&#039;&#039;Objekte&#039;&#039;&#039; in der {{JSL|List}} ausgibt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teste deine Implementierung ausgiebig&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Datei:Geometry.png|mini|ohne]]&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Geometry Interface ===&lt;br /&gt;
Gleiche Aufgabe wie zuvor, verwende jedoch ein &#039;&#039;&#039;Interface&#039;&#039;&#039; anstatt eine &#039;&#039;&#039;Abstrakte Klasse&#039;&#039;&#039; für die Geometry.&lt;br /&gt;
 Welche möglichen Vorteile ergeben sich dadurch?&lt;br /&gt;
&lt;br /&gt;
[[Datei:Geometry Interface.png|mini|ohne]]&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Geometry Enhanced Version ===&lt;br /&gt;
  Zeichne zuerst für die Aufgabe ein entsprechendes Klassendiagramm (kann wiederverwendet werden)&lt;br /&gt;
&lt;br /&gt;
Erweitere das vorhergehende Beispiel um die Geometrische Form Stern und Haus vom Nikolaus. Verwende soviel Code wie möglich wieder.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Datei:Hausvomnikolaus.png|mini|none|Haus vom Nikolaus|150px]] || [[Datei:Kompass Stern.png|mini|Kompass Stern|150px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Simulationen ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Carsimulation ===&lt;br /&gt;
Erstelle eine {{JSL|Car}} &#039;&#039;&#039;Klasse&#039;&#039;&#039;. Diese enthält alle gängigen Attribute die für ein Auto benötigt werden. Zumindest sollte die &#039;&#039;&#039;Klasse&#039;&#039;&#039; folgende Attribute enthalten:&lt;br /&gt;
* Hersteller&lt;br /&gt;
* Modell&lt;br /&gt;
* kW (Leistung)&lt;br /&gt;
* Tankinhalt&lt;br /&gt;
* Antriebsart (erstelle dafür eine Enumeration &#039;&#039;Benzin&#039;&#039;, &#039;&#039;Diesel&#039;&#039;, &#039;&#039;Gas&#039;&#039;, &#039;&#039;Strom&#039;&#039;)&lt;br /&gt;
* Gewicht&lt;br /&gt;
Überlege welche Attribute du im &#039;&#039;&#039;Konstruktor&#039;&#039;&#039; als Parameter erhalten willst. Ohne welche kann eine Auto &#039;&#039;&#039;Instanz&#039;&#039;&#039; nicht existieren?&lt;br /&gt;
Erstelle nun die &#039;&#039;&#039;Methode&#039;&#039;&#039; {{JSL|drive(int kilometer)}} welche einen {{JSL|int}} zurückgibt. Diese &#039;&#039;&#039;Methode&#039;&#039;&#039; soll, wenn es der Tankinhalt zulässt, die gegebene Strecke zurücklegen. Wenn der Tank leer ist, soll nur die Strecke zurückgegeben werden, die zurückgelegt werden konnte, ansonsten die gesamte Strecke. Um den Verbrauch zu berechnen und den Tankinhalt zu reduzieren, verwende das &#039;&#039;&#039;Gewicht&#039;&#039;&#039; und die &#039;&#039;&#039;kW (Leistung)&#039;&#039;&#039; des Autos.&lt;br /&gt;
&lt;br /&gt;
Wenn der Tank leer ist, soll der Tank über eine &#039;&#039;&#039;Methode&#039;&#039;&#039; mit einer gewissen Menge an Kraftstoff aufgefüllt werden. Erstelle dazu eine entsprechende &#039;&#039;&#039;Methode&#039;&#039;&#039; und fahr weiter.&lt;br /&gt;
&lt;br /&gt;
Erstelle nun eine Carsimulation welche eine gewisse Anzahl von Autoinstanzen erstellt und diese fahren lässt und wenn nötig wieder betankt.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Wunsch:&#039;&#039;&#039; Die Methoden sollen zu ihrer eigentlichen Funktion auch eine schöne Ausgabe erstellen&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Carsimulation Extended ===&lt;br /&gt;
Erweitere das vorhergende Beispiel um die &#039;&#039;&#039;Klassen&#039;&#039;&#039;&lt;br /&gt;
* {{JSL|Engine}} (Motor)&lt;br /&gt;
* {{JSL|Tank}}&lt;br /&gt;
* {{JSL|GasStation}}&lt;br /&gt;
* {{JSL|RepairStation}}&lt;br /&gt;
Sowohl {{JSL|Tank}} und {{JSL|Motor}} sollen in {{JSL|Car}} als Attribute existieren und durch die {{JSL|RepairStation}} austauschbar sein.&lt;br /&gt;
&lt;br /&gt;
Eine {{JSL|Engine}} soll nach einer zufälligen Wahrscheinlichkeit einen Defekt haben und in der {{JSL|RepairStation}} getauscht werden. Je mehr Kilometer gefahren wurden, desto höher ist die Wahrscheinlichkeit, dass die {{JSL|Engine}} kaputt geht.&lt;br /&gt;
&lt;br /&gt;
Wenn die {{JSL|Car}} nicht die gewünschten Kilometer fährt, so ist entweder der Tank leer, oder der Motor kaputt. Erstelle &#039;&#039;&#039;Methoden&#039;&#039;&#039; der {{JSL|Car}} &#039;&#039;&#039;Klasse&#039;&#039;&#039; die den Tankinhalt und den Zustand des &#039;&#039;&#039;Motors&#039;&#039;&#039; (defekt oder ganz) zurückgeben.&lt;br /&gt;
&lt;br /&gt;
Wird die {{JSL|drive(int kilometers)}} &#039;&#039;&#039;Methode&#039;&#039;&#039; ausgeführt, so soll nun eine Methode im Motor aufgerufen werden, die diesen startet, und nach den gefahrenen Kilomtern wieder stoppt. Auch der Treibstoffverbrauch soll mit dem Motor zusammenhängen. Vielleicht ist es eine gute Idee beim Starten den Tank an den Motor zu übergeben?&lt;br /&gt;
&lt;br /&gt;
==== Erstelle folgende &#039;&#039;&#039;Subklassen&#039;&#039;&#039; von &#039;&#039;&#039;Tank&#039;&#039;&#039; ====&lt;br /&gt;
* Battery&lt;br /&gt;
* FuelTank&lt;br /&gt;
&lt;br /&gt;
 Überlege welche &#039;&#039;&#039;Methoden&#039;&#039;&#039; in der &#039;&#039;&#039;Superklasse&#039;&#039;&#039; &#039;&#039;&#039;Tank&#039;&#039;&#039; Sinn machen.&lt;br /&gt;
&lt;br /&gt;
==== Erstelle folgende &#039;&#039;&#039;Subklassen&#039;&#039;&#039; von &#039;&#039;&#039;Car&#039;&#039;&#039; ====&lt;br /&gt;
* SelfRepairingCar (hat der Motor einen Schaden, so soll dieser automatisch repariert und weitergefahren werden)&lt;br /&gt;
* AeroDynamicCar (reduziert den Treibstoffverbrauch um 50%)&lt;br /&gt;
* CrapCar (erhöht die Wahrscheinlichkeit dass der Motor kaputt geht um 50%)&lt;br /&gt;
&lt;br /&gt;
 Überlege welche &#039;&#039;&#039;Methoden&#039;&#039;&#039; in der &#039;&#039;&#039;Superklasse&#039;&#039;&#039; &#039;&#039;&#039;Car&#039;&#039;&#039; sinn machen. Eine eigene Methode in der &#039;&#039;&#039;Superklasse&#039;&#039;&#039; welche den Treibstoffverbrauch pro Kilometer ausrechnet, macht wahrscheinlich sinn. Diese kann dann in den &#039;&#039;&#039;Subklassen&#039;&#039;&#039; überschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teste deine Autosimulation ausgiebig.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Bank ===&lt;br /&gt;
Ein Bankinstitut hat verschiedene Schalter. Ein Kunde geht in ein Bankinstitut um sein Bankgeschäft zu verrichten. Zuerst geht der Kunde ins Institut und geht zum nächsten freien Schalter. Wenn der Kunde den Schalter wieder verlässt, wird der Schalter zu einer Wahrscheinlichkeit von 20% für eine Pause geschlossen (die Pause eines Schalters endet nach dem 3 weitere Kunden die Bank betreten und verlassen haben). Hat ein Schalter kein Geld mehr so muss dieser wieder aufgefüllt werden und der Schalter ist für die Dauer eines Kunden geschlossen.&lt;br /&gt;
 * Das Bankgeschäft eines Kunden ist entweder eine Einzahlung bzw. eine Auszahlung.&lt;br /&gt;
 * Kann ein Schalter eine gewisse Geldmenge nicht bedienen geht der Kunde zum nächsten Schalter und der Ursprüngliche Schalter wird aufgefüllt.&lt;br /&gt;
 * Es soll nachvollzogen werden können welcher Schalter welche Kunden bedient hat und was für ein Betrag eingezahlt oder ausgezahlt wurde (&#039;&#039;&#039;ACHTUNG&#039;&#039;&#039; keine {{JSL|HashMap}}).&lt;br /&gt;
&lt;br /&gt;
# Erstelle ein UML Diagramm für dein Banksystem (Dia)&lt;br /&gt;
# Erstelle die notwendingen Klassen und Methoden.&lt;br /&gt;
# Erstelle nun eine Bank mit einigen Schaltern und erstelle weiters einige Kunden.&lt;br /&gt;
# Simuliere nun das Bankgeschäft. Die Kunden gehen der reihe nach in die Bank. Am Ende der Simulation soll für jeden Schalter eine Statistik ausgegeben werden (welche Kunden waren dort, welche Beträge wurden verarbeitet).&lt;br /&gt;
# Erstelle Unit Tests für deine Banksimulation&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Filesystem traversal ===&lt;br /&gt;
 Das wurde schonmal gemacht, einfach nochmal machen, das schadet nicht :-)&lt;br /&gt;
Erstelle eine Methode welche durch das Dateisystem ab einem gegebenen Pfad navigiert (Ob der Pfad als {{JSL|String}} oder {{JSL|File}} übergeben wird ist egal). Wird der Pfad nicht gefunden, so soll eine {{JSL|FileNotFoundException}} geworfen werden. Die Navigation soll dabei &#039;&#039;&#039;Rekursiv&#039;&#039;&#039; erfolgen. Gib den Pfad mit entsprechender Einrückung aus.&lt;br /&gt;
 &#039;&#039;&#039;Tip zur Rekursion:&#039;&#039;&#039; Iteriere in einer Methode durch alle Kinder einer Datei. Handelt es sich um einen Ordner so rufe für jedes Kind dieses Ordners die Methode wieder auf und erhöhe die Einrückung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe (muss nicht genau so aussehen):&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
├── otherPackageInvocationTest&lt;br /&gt;
│   └── Test.java&lt;br /&gt;
├── week1&lt;br /&gt;
│   ├── tag3&lt;br /&gt;
│   │   ├── Aufgabe1.java&lt;br /&gt;
│   │   ├── Aufgabe2.java&lt;br /&gt;
│   │   └── Loops.java&lt;br /&gt;
│   ├── tag4&lt;br /&gt;
│   │   ├── Christbaum2.java&lt;br /&gt;
│   │   ├── Christbaum.java&lt;br /&gt;
│   │   ├── Loops.java&lt;br /&gt;
│   │   ├── Traingle2.java&lt;br /&gt;
│   │   └── Triangle.java&lt;br /&gt;
│   ├── tag5&lt;br /&gt;
│   │   ├── Circle2.java&lt;br /&gt;
│   │   ├── Circle3.java&lt;br /&gt;
│   │   ├── Circle.java&lt;br /&gt;
│   │   └── Methods.java&lt;br /&gt;
│   └── tag5a&lt;br /&gt;
│       └── UseMethods.java&lt;br /&gt;
├── week2&lt;br /&gt;
│   ├── day3&lt;br /&gt;
│   │   ├── Calendar.java&lt;br /&gt;
│   │   ├── LogicPuzzle.java&lt;br /&gt;
│   │   ├── Recursion2.java&lt;br /&gt;
│   │   └── Recursion.java&lt;br /&gt;
│   └── day4&lt;br /&gt;
│       ├── Menu.java&lt;br /&gt;
│       └── UserInput.java&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Filesystem traversal usefull ===&lt;br /&gt;
Erstelle eine Methode welche durch das Dateisystem ab einem gegebenen Pfad navigiert. Die Methode erhält weiters eine Klasse {{JSL|FileReceiver}}. Diese Klasse hat eine Methode {{JSL|onFileReceived(int depth, File file)}} welche zur Verarbeitung jeder einzelnen Datei, bzw. jedes einzelnen Ordners aufgerufen wird. Erstelle verschiedene weitere Klassen die von {{JSL|FileReceiver}} erben und {{JSL|onFileReceived(int depth, File file)}} überschreiben und folgende Aufgaben erfüllen sollen:&lt;br /&gt;
* Größe aller Dateien berechnen&lt;br /&gt;
* Anzahl der Dateien mit einer bestimmten Endung zählen&lt;br /&gt;
* Alle Dateiendungen Zählen. Tip.: {{JSL|HashMap}}&lt;br /&gt;
* Die größe jedes Ordners ermitteln. Tip.: Hier wird die &#039;&#039;&#039;depth&#039;&#039;&#039; und ein Stapel benötigt ({{JSL|List}}, oder {{JSL|Stack}}).&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Filesystem traversal usefull &amp;amp; extended ===&lt;br /&gt;
Wie in der vorhergehenden Aufgabe, jedoch soll nicht nur ein {{JSL|FileReceiver}} übergeben werden können, sondern eine {{JSL|List}} von {{JSL|FileReceiver}}.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: JUnit ===&lt;br /&gt;
Wähle drei Beispiele aus deiner Sammlung und teste diese mit &#039;&#039;&#039;JUnit&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Geometry ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Abstrakte Klasse&#039;&#039;&#039; {{JSL|Geometry}}. Diese enthält folgende &#039;&#039;&#039;Methoden&#039;&#039;&#039;:&lt;br /&gt;
* {{JSL|getCircumference()}} und gibt einen {{JSL|double}} zurück&lt;br /&gt;
* {{JSL|getArea()}} und gibt einen {{JSL|double}} zurück&lt;br /&gt;
&lt;br /&gt;
Erstelle nun einige &#039;&#039;&#039;Klassen&#039;&#039;&#039; die von {{JSL|Geometry}} erben (Circle, Square, Rectangle, Triangle,...). Jede &#039;&#039;&#039;Klasse&#039;&#039;&#039; soll in ihrem Konstruktor die entsprechenden Werte erhalten.&lt;br /&gt;
&lt;br /&gt;
Erstelle nun verschiedene &#039;&#039;&#039;Instanzen&#039;&#039;&#039; von {{JSL|Geometry}}, speichere diese in einer {{JSL|List}}. Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die den Gesamtumfang und die Gesamtfläche aller {{JSL|Geometry}} &#039;&#039;&#039;Objekte&#039;&#039;&#039; in der {{JSL|List}} ausgibt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teste deine Implementierung ausgibig&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Verhalten ===&lt;br /&gt;
Wie in [[Protokoll#19._November_2021|Protokoll 19.11]] gezeigt, soll nun das &#039;&#039;&#039;Schwimmverhalten&#039;&#039;&#039; implementiert werden. Erstelle endweder die Bestehende Klassenhierarchie als Übung in deinem eigenen Paket, oder kopiere diese.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Graph === &lt;br /&gt;
&lt;br /&gt;
Ein Graph ist eine Datenstruktur die aus mehreren Knoten (Nodes besteht). Eine Node kann mehrere Nodes als Nachbarn haben, das heißt, sie hat eine Verbindung zu diesen Nachbarn.&lt;br /&gt;
[[Datei:Graph.png|mini|Ein einfacher Graph|150px]]&lt;br /&gt;
&lt;br /&gt;
* Erstelle eine Datenstruktur für die &#039;&#039;&#039;Node&#039;&#039;&#039; mit (X/Y Koordinaten), verwende für die Nachbarn eine {{JSL|List}} in der jeweiligen &#039;&#039;&#039;Node&#039;&#039;&#039;&lt;br /&gt;
* Erstelle weiters eine Datenstruktur für den Graphen, welche eine {{JSL|List}} von &#039;&#039;&#039;Nodes&#039;&#039;&#039; enthält&lt;br /&gt;
* Erstelle aus den schwarzen Pixeln des folgenden Labyrinths einen Graphen&lt;br /&gt;
&lt;br /&gt;
[[Datei:Labyrinth.png|150px|mini|none|Ein Labyrinth]]&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Dijkstra ===&lt;br /&gt;
&lt;br /&gt;
Zeige deinen Graphen in einem {{JSL|JPanel}} an. Es soll nun der Start und das Ziel angeklickt werden können. Finde mittels Dijkstra Algorithmus[https://de.wikipedia.org/wiki/Dijkstra-Algorithmus] den kürzesten Weg vom Start zum Ziel. Illustriere dabei alle durchwanderten Knoten.&lt;br /&gt;
&lt;br /&gt;
=== Schule: Volksschule Rotkreuz (Lustenau) ===&lt;br /&gt;
&lt;br /&gt;
Es gibt eine &#039;&#039;&#039;Schule&#039;&#039;&#039;. In der Schule sind verschiedene Räume, so wie &#039;&#039;&#039;KlassenRaum&#039;&#039;&#039;, &#039;&#039;&#039;SportHalle&#039;&#039;&#039;, &#039;&#039;&#039;Handwerk &amp;amp; Technik Raum&#039;&#039;&#039;. Die Schule hat ein &#039;&#039;&#039;Schuldirektor&#039;&#039;&#039; und viele &#039;&#039;&#039;Lehrer&#039;&#039;&#039;.  Die &#039;&#039;&#039;Schüler&#039;&#039;&#039;, die die Schule besuchen, gehören zu einer &#039;&#039;&#039;SchuleKlasse&#039;&#039;&#039;. Jede SchuleKlasse hat einen fixen Tagesablauf, die im &#039;&#039;&#039;Kursplan&#039;&#039;&#039; festgelegt ist. Der Kursplan beinhaltet, das Thema, den Lehrer und den Raum, wo es stattfindet.&lt;br /&gt;
&lt;br /&gt;
==== Simulation 0.1 ====&lt;br /&gt;
&lt;br /&gt;
Morgen kommen alle Lehrer und alle Schüler in die Schule. Die Schüler, die zu spät erscheinen, müssen zu dem Direktor.&lt;br /&gt;
&lt;br /&gt;
==== Simulation 0.2 ====&lt;br /&gt;
&lt;br /&gt;
Die Schüler haben einen fixen Tagesablauf. 45 Minuten Stunden, 15 Minuten Pause, 45 Minuten Stunde, ....&lt;br /&gt;
Am Beginn jeder Unterrichtsstunde gehen die Schüler in den entsprechenden Kursraum, wie es im Stundenplan vorgesehen ist.&lt;br /&gt;
&lt;br /&gt;
==== Simulation 0.3 ====&lt;br /&gt;
&lt;br /&gt;
Die Lehrer gehen in den Kursraum, wo sie gebraucht sind. Nach der Stunde kommen sie in dem Lehrerzimmer zurück. Falls sie keine Kursstunde haben, bleiben sie im Lehrerzimmer und korrigieren Hausaufgaben und Tests.&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Objekt_Orientierte_Programmierung_%C3%9Cbungen&amp;diff=3712</id>
		<title>DCV 2024 09/Objekt Orientierte Programmierung Übungen</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Objekt_Orientierte_Programmierung_%C3%9Cbungen&amp;diff=3712"/>
		<updated>2024-11-14T07:17:23Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Aufgabe: Geometry */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im folgenden sollen diese Begriffe verstanden und angewandt werden. Diese sind nicht chronologisch geordnet.&lt;br /&gt;
 &#039;&#039;&#039;Tip:&#039;&#039;&#039; Für weitere Informationen: [[Objektorientierte_Programmierung|Objektorientierte Programmierung]]&lt;br /&gt;
* Klasse&lt;br /&gt;
** Instanz- vs. Klassenmethode&lt;br /&gt;
** Instanz- vs. Klassenattribut&lt;br /&gt;
** Innere Klassen (statisch vs. nicht statisch)&lt;br /&gt;
* Enumeration (enum)&lt;br /&gt;
* Collections (Liste, Set, Map)&lt;br /&gt;
* Vererbung&lt;br /&gt;
* Abstrakte Klasse&lt;br /&gt;
* Interface&lt;br /&gt;
* Polymorphismus&lt;br /&gt;
* Beziehungen&lt;br /&gt;
** Has-A vs. Is-A&lt;br /&gt;
** Implementierung von Interfaces&lt;br /&gt;
* Generics&lt;br /&gt;
* Designpatterns&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Person ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Klasse&#039;&#039;&#039; welche die typischen Werte eines Menschen speichern kann.&lt;br /&gt;
* Größe&lt;br /&gt;
* Alter&lt;br /&gt;
* Name&lt;br /&gt;
* Gewicht&lt;br /&gt;
Erstelle weiters eine {{JSL|toString()}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und erstelle einen schönen {{JSL|String}} mit den gegebenen Werten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Türkische Serie ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Klasse&#039;&#039;&#039; welche die typischen Werte einer TV-Serie speichern kann.&lt;br /&gt;
* Title&lt;br /&gt;
* Genre&lt;br /&gt;
* Jahr&lt;br /&gt;
* Originalsprache&lt;br /&gt;
&lt;br /&gt;
Erstelle weiters eine {{JSL|toString()}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und erstelle einen schönen {{JSL|String}} mit den gegebenen Werten.&lt;br /&gt;
&lt;br /&gt;
Erstelle weiterhin 2-3 Objekten, als typische türkische Serien.&lt;br /&gt;
&lt;br /&gt;
Erweitere deine &#039;&#039;&#039;Klasse&#039;&#039;&#039; mit den Attributen&lt;br /&gt;
* Regisseur&lt;br /&gt;
* Produzent&lt;br /&gt;
&lt;br /&gt;
Verwende hierfür die bereits bestehende Klasse &#039;&#039;&#039;Person&#039;&#039;&#039;, aus dem vorherigen Beispiel.&lt;br /&gt;
&lt;br /&gt;
Erstelle &#039;&#039;&#039;Funktionen&#039;&#039;&#039; die sowohl diese Personen zu der Serie hinzufügen als auch wieder löschen kann!&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Datenklasse ===&lt;br /&gt;
Es soll eine &#039;&#039;&#039;Methode&#039;&#039;&#039; erstellt werden, welche das &#039;&#039;&#039;kleinste&#039;&#039;&#039; und das &#039;&#039;&#039;größte Element&#039;&#039;&#039; sowie den &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; eines {{JSL|int[]}} ermittelt und zurückgibt. Alle  ermittelten Werten sollen in einem Datenobjekt zurückgegeben werden. Erstelle dazu eine Datenklasse welche die entsprechenden Werte enthält. Teste diese &#039;&#039;&#039;Methode&#039;&#039;&#039; ausgiebig mit verschiedenen {{JSL|int[]}}, verwende auch ein zufallsgeneriertes {{JSL|int[]}} mit negativen und positiven Werten.&lt;br /&gt;
* Erstelle die Datenklasse mit einem Sinnvollen Klassennamen und entsprechenden &#039;&#039;&#039;Attributen&#039;&#039;&#039;. Achte hierbei auch auf die Korrekte Sichtbarkeit&lt;br /&gt;
* Erstelle in in der Datenklasse einen &#039;&#039;&#039;Konstruktor&#039;&#039;&#039; welcher alle Werte entgegennimmt und erstelle &#039;&#039;&#039;getter&#039;&#039;&#039; für alle Werte&lt;br /&gt;
* Überschreibe die {{JSL|toString()}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und erstelle einen schönen {{JSL|String}} mit den gegebenen Werten.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Fotoapparat ===&lt;br /&gt;
Erstelle eine Fotoapparat &#039;&#039;&#039;Klasse&#039;&#039;&#039;.&lt;br /&gt;
* Mit zumindest folgenden Attributen (es dürfen auch gerne mehr sein), &#039;&#039;&#039;Brennweite min/max&#039;&#039;&#039;, &#039;&#039;&#039;Model&#039;&#039;&#039;, &#039;&#039;&#039;Hersteller&#039;&#039;&#039; und &#039;&#039;&#039;Megapixel&#039;&#039;&#039;.&lt;br /&gt;
* Erstelle für die Attribute &#039;&#039;&#039;getter&#039;&#039;&#039; und &#039;&#039;&#039;setter&#039;&#039;&#039;&lt;br /&gt;
* Erstelle weiters die &#039;&#039;&#039;Methode&#039;&#039;&#039; {{JSL|takePhoto()}}, die ein Foto schießt (Mach einfach eine nette Ausgabe)&lt;br /&gt;
* Überschreibe die {{JSL|toString()}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und gib die relevanten Daten als {{JSL|String}} zurück&lt;br /&gt;
&lt;br /&gt;
Erstelle verschiedene &#039;&#039;&#039;Instanzen&#039;&#039;&#039; der Fotoapparat &#039;&#039;&#039;Klasse&#039;&#039;&#039; und Teste diese ausgiebig.&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Bonusaufgabe: Fotoapparat &amp;amp; Objektiv &amp;amp; Speicherkarte&#039;&#039;&#039; ===&lt;br /&gt;
Erweitere das vorhergehende Beispiel um die Klassen Objektiv und Speicherkarte. Die Brennweite der Kamera fällt demnach weg.&lt;br /&gt;
Das Objektiv und die Speicherkarte sollen getauscht werden können.&lt;br /&gt;
Erstelle Methoden um zu erfragen wieviele Fotos bereits aufgenommen wurden und wieviel Speicher noch frei ist. Für die Berechnung speicherplatz pro bild, kann ein wert von 0.3mb pro Megapixel angenommen werden.[https://www.mvorganizing.org/what-is-the-average-size-of-a-jpg/#What_is_the_average_size_of_a_JPG]&lt;br /&gt;
&lt;br /&gt;
== Handhabung von dynamischen Datenstrukturen (ArrayList, Vector, LinkedList, HashSet, HashMap) ==&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Vector erstellen ===&lt;br /&gt;
Erstelle einen Vector mit 20 Zufallszahlen zwischen 0 und 99.&lt;br /&gt;
&lt;br /&gt;
Gib den Vector mit {{JSL|System.out.println()}} aus.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Vector erstellen ===&lt;br /&gt;
Erstelle einen Vector mit 20 Zufallszahlen zwischen 0 und 99.&lt;br /&gt;
&lt;br /&gt;
Erstelle jeweils eine Funktionen für:&lt;br /&gt;
# Zählen der geraden Zahlen&lt;br /&gt;
# Suche nach der kleinsten Zahl&lt;br /&gt;
# Suche nach der größten Zahl&lt;br /&gt;
# Sortiere die Elementen absteigend&lt;br /&gt;
# Lösche alle Ungerade Zahlen&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Zwei Vectoren zusammenführen ===&lt;br /&gt;
Es gibt zwei Vectoren mit 20 Elementen, die nach Größe sortiert sind.&lt;br /&gt;
&lt;br /&gt;
Erstelle einen dritten Vector, in dem du die Elemente der vorhergehenden Vectoren zusammenfügst, der neu erstellte Vector soll immer noch sortiert sein.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Person 2.0 ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Klasse&#039;&#039;&#039; welche die typischen Werte eines Menschen speichern kann.&lt;br /&gt;
* Größe&lt;br /&gt;
* Alter&lt;br /&gt;
* Name&lt;br /&gt;
* Gewicht&lt;br /&gt;
Erstelle weiters eine Methode welche eine {{JSL|List}} von Personen erhält und bezüglich &#039;&#039;&#039;Größe&#039;&#039;&#039;, &#039;&#039;&#039;Alter&#039;&#039;&#039;, &#039;&#039;&#039;Gewicht&#039;&#039;&#039;, das &#039;&#039;&#039;kleinste&#039;&#039;&#039; und das &#039;&#039;&#039;größte Element&#039;&#039;&#039; sowie den &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; berechnet und wie in der vorhergehenden Aufgabe in einer eigenen Klasse zurückgibt.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Person Sortiert ===&lt;br /&gt;
Verwende die erstellte &#039;&#039;&#039;Klasse&#039;&#039;&#039; aus dem vorhergehenden Beispiel und erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche eine {{JSL|List}} von Personen nach entweder nach &#039;&#039;&#039;Größe&#039;&#039;&#039;, &#039;&#039;&#039;Alter&#039;&#039;&#039;, &#039;&#039;&#039;Gewicht&#039;&#039;&#039;, oder &#039;&#039;&#039;Name&#039;&#039;&#039; sortiert. Hierfür kann ein &#039;&#039;&#039;enum&#039;&#039;&#039; verwendet werden, oder auch einfach ein {{JSL|int}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Türkische Serie 2.0 ===&lt;br /&gt;
Erweitere die bestehende &#039;&#039;&#039;Klasse&#039;&#039;&#039; &amp;quot;Serie&amp;quot; mit neuen Attributen.&lt;br /&gt;
* Title&lt;br /&gt;
* Genre&lt;br /&gt;
* Jahr&lt;br /&gt;
* Originalsprache&lt;br /&gt;
* Regisseur&lt;br /&gt;
* Direktor&lt;br /&gt;
NEU!&lt;br /&gt;
* ScoutListe (Liste mit Vector)&lt;br /&gt;
* CastListe (Liste mit Vector)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstelle mit Hilfe einer neuen Klasse (Schauspieler) ein Objekt, ähnlich wie eine Person, mit sinnvollen Attribute.&lt;br /&gt;
* Vorname&lt;br /&gt;
* Nachname&lt;br /&gt;
* Alter&lt;br /&gt;
* Gage&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstelle dann in der &#039;&#039;&#039;Klasse&#039;&#039;&#039; &amp;quot;Serie&amp;quot; Funktionen die Schauspieler(Objekt) zu einer Liste hinzufügen und löschen können.&lt;br /&gt;
Erstelle in der Main, mind. 5 Schauspieler und füge diese dann zu der ScoutingListe dazu.&lt;br /&gt;
Erstelle ein Methode, die Schauspieler auf die CastingListe bringt und dabei aber auch von der ScoutingListe entfernt!&lt;br /&gt;
&lt;br /&gt;
Erweitere dann die Simulation der Serie.&lt;br /&gt;
* Es müssen mindestens 2 Schauspieler angeheuert sein, um die Produktion zu starten.&lt;br /&gt;
* Erstelle Events, wo du Schauspieler aus dem aktuellen Cast löschst und/oder neue dazu fügst.&lt;br /&gt;
&lt;br /&gt;
== Zoo-Simulation ==&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Zoo ===&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Main&#039;&#039;&#039; Klasse, die zuständig ist für&lt;br /&gt;
* die Initialisierung des Zoos und aller seiner Bestandteile&lt;br /&gt;
* Initiieren des nächsten Simulationsschrittes&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Zoo&#039;&#039;&#039; Klasse mit &#039;&#039;Name&#039;&#039; und &#039;&#039;Gründungsjahr&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Gehege&#039;&#039;&#039; Klasse mit &#039;&#039;Name&#039;&#039; der als Beschreibung des Geheges dient.&lt;br /&gt;
&lt;br /&gt;
Erweitere deinen Zoo, sodass Gehege dynamisch hinzugefügt und entfernt werden können.&lt;br /&gt;
&lt;br /&gt;
Erweitere dein Programm um eine Funktion, die die Struktur des Zoos ausgibt. Der erwartete Ausdruck sieht folgendermaßen aus.&lt;br /&gt;
&lt;br /&gt;
{{BML|code= &lt;br /&gt;
├── Zoo: Tiergarten Dornbirn, gegründet 2022&lt;br /&gt;
│   ├── Gehege: Alpenwiese&lt;br /&gt;
│   ├── Gehege: Ried&lt;br /&gt;
│   ├── Gehege: Terrarium (warm)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Tiere ===&lt;br /&gt;
&lt;br /&gt;
Erweitere dein Zooprogramm mit Tiere.&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Tier&#039;&#039;&#039; Klasse mit einem &#039;&#039;Name&#039;&#039; und einer &#039;&#039;Gattung&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Erweitere die Gehege, um Tiere dynamisch zufügen und entfernen zu können.&lt;br /&gt;
&lt;br /&gt;
Erweitere den Struktur-Ausdruck von Zoo, dass es auch die Tiere ausdrückt.&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
├── Zoo: Tiergarten Dornbirn, gegründet 2022&lt;br /&gt;
│   ├── Gehege: Alpenwiese&lt;br /&gt;
│       ├── Rijska, Kuh&lt;br /&gt;
│   ├── Gehege: Ried&lt;br /&gt;
│       ├── Garmond, Storch&lt;br /&gt;
│       ├── Hugo, Storch&lt;br /&gt;
│       ├── Idaxis, Storch&lt;br /&gt;
│   ├── Gehege: Terrarium (warm)&lt;br /&gt;
│       ├── (leer)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Bonusaufgabe: Tierfutter&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Erweitere dein Zooprogramm mit Futter-Bedarfsanalyse.&lt;br /&gt;
&lt;br /&gt;
Erstelle eine Klasse für &#039;&#039;&#039;Futter&#039;&#039;&#039; mit einen &#039;&#039;Name&#039;&#039;, &#039;&#039;Einheit&#039;&#039; und &#039;&#039;Einheitspreis&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Jedes Tier hat einen Futterbedarf, die beinhaltet den &#039;&#039;Futter&#039;&#039; und eine &#039;&#039;Menge&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstelle eine Statistik, was den Futterbedarf von Zoo ist, und wie viel die Tagesversorgung sich kostet. Für diese Aufgabe kann man {{JSL|HashMap}} gut brauchen.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Pfleger ===&lt;br /&gt;
&lt;br /&gt;
Erweitere dein Zooprogramm um Tierpfleger.&lt;br /&gt;
&lt;br /&gt;
Erstelle eine Klasse &#039;&#039;&#039;Pfleger&#039;&#039;&#039; mit einem &#039;&#039;Namen&#039;&#039; und mit einer dynamischen Liste von &#039;&#039;Gehegen&#039;&#039;, wofür der Pfleger zuständig ist. Erweitere die Klasse &#039;&#039;Zoo&#039;&#039;, dass die eine Liste der &#039;&#039;Pfleger&#039;&#039; beinhaltet.&lt;br /&gt;
&lt;br /&gt;
Erweitere den Struktur-Ausdruck um die neu eingeführten Pfleger.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Simulation 0.1 ===&lt;br /&gt;
&lt;br /&gt;
Erweitere das Programm mit einer Tagessimulation.&lt;br /&gt;
&lt;br /&gt;
# An jedem Tag gehen die Pfleger los und kümmern sich um die Gehege in deren Zuständigkeitsbereich.&lt;br /&gt;
## Falls ein Pfleger ein Gehege findet, welche schon bearbeitet wurde, überspringt er das Gehege und nimmt das nächste&lt;br /&gt;
# Wenn ein Pfleger zu einem Gehege kommt, wird er zuerst die Tiere füttern&lt;br /&gt;
# Nach dem Füttern wird er ein Zufälliges Tier länger beobachten.&lt;br /&gt;
## Mit einer Erweiterung der Pfleger mit den &#039;&#039;Lieblings-Tier-Gattung&#039;&#039;, kann der Pfleger das Tier bewundern.&lt;br /&gt;
&lt;br /&gt;
Lass auf der Konsole ausdrucken, wer-was macht...&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Bonusaufgabe: Simulation 0.2&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Erweitere die Simulation&lt;br /&gt;
&lt;br /&gt;
# Jedes Tier hat eine &#039;&#039;Gesundheit&#039;&#039;, ein &#039;&#039;MaxGesundheit&#039;&#039; und einen &#039;&#039;Biss&#039;&#039;&lt;br /&gt;
# Jedes Tier versucht mit 40% Wahrscheinlichkeit, ein Nachbar von ihm aus dem gleichen Gehege zu beißen.&lt;br /&gt;
# Falls ein Tier gebissen wird, wird seine Gesundheit mit dem Biss von Angreifer reduziert&lt;br /&gt;
# &amp;quot;toten Tiere&amp;quot; beißen nicht.&lt;br /&gt;
# Am Ende des Tages werden &amp;quot;toten Tiere&amp;quot; aus dem Gehege entfernt&lt;br /&gt;
&lt;br /&gt;
Lass auf der Konsole ausdrucken, wer-was macht...&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Bonusaufgabe: Simulation 0.3&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Erweitere den Zoo mit Tierärzte, die die verletzte Tiere behandeln und heilen. Erstelle eine Klasse &#039;&#039;&#039;TierArzt&#039;&#039;&#039; mit einem &#039;&#039;Name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Erweitere die Simulation&lt;br /&gt;
&lt;br /&gt;
# Jeder Tierarzt wird an jedem Tag - genau 1 Tier behandeln&lt;br /&gt;
# Der Tierarzt wählt das Tier mit der geringsten relativen Gesundheit&lt;br /&gt;
## Zum Beispiel: 10 Gesundheit mit 100 Maximum ist 10% und so dringender als 1 Gesundheit aus 2 ergo 50%.&lt;br /&gt;
# Der Tierarzt wird zufällig zwischen 30 und 100% der Gesundheit wiederherstellen&lt;br /&gt;
# Kein Tier kann über die maximale Gesundheit geboostet werden.&lt;br /&gt;
&lt;br /&gt;
Lass auf der Konsole ausdrucken, wer-was macht...&lt;br /&gt;
&lt;br /&gt;
== Übungen Zur Modellierung ==&lt;br /&gt;
&lt;br /&gt;
Die folgenden Übungen haben das Ziel, schnell ein Model zu erfassen, das die folgenden Aspekte beinhaltet:&lt;br /&gt;
# Klassen&lt;br /&gt;
# Kompositionen&lt;br /&gt;
# Vererbungen&lt;br /&gt;
# Methoden / Funktionen&lt;br /&gt;
# Variablen / Attribute&lt;br /&gt;
&lt;br /&gt;
[[Datei:Uml-class-diagram-cheat-sheet.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine ausführliche Erklärung dazu findet sich beim Klick auf diesen Verweis: [https://ccwiki.digitalcampusvorarlberg.at/index.php/UML_Klassendiagramm].&lt;br /&gt;
&lt;br /&gt;
=== Schwarzwald Klinik ===&lt;br /&gt;
&lt;br /&gt;
Es gibt ein &#039;&#039;&#039;Krankenhaus&#039;&#039;&#039; mit unterschiedlichen &#039;&#039;&#039;Abteilungen&#039;&#039;&#039;. Manche Abteilungen sind &#039;&#039;&#039;Ambulanz&#039;&#039;&#039;en anderen sind &#039;&#039;&#039;Station&#039;&#039;&#039;en. Ambulanzen haben eine Öffnungszeit sowie einen Warteraum mit einer definierten Anzahl von Plätzen. Stationen beinhalten &#039;&#039;&#039;Zimmer&#039;&#039;&#039; in denen sich &#039;&#039;&#039;Betten&#039;&#039;&#039; befinden.&lt;br /&gt;
Wenn ein Patient ins Krankenhaus kommt, besucht dieser entsprechend seiner Erkrankung eine Ambulanz. Falls der Fall schwerwiegender ist, muss er in einer Station aufgenommen werden. Patienten werden untersucht, behandelt und eventuell gepflegt. Aus der Ambulanzen dürfen die Patienten nach kurzer Zeit wieder nach Hause gehen. Patienten die in Stationen behandelt werden, müssen solange da bleiben, bis sie vollständig geheilt sind.&lt;br /&gt;
&lt;br /&gt;
=== Restaurant &#039;&#039;Dolce Vita&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Es gibt ein &#039;&#039;&#039;Restaurant&#039;&#039;&#039;, das aus mehreren Räumen besteht. Jeder &#039;&#039;&#039;Raum&#039;&#039;&#039; hat einen zuständigen &#039;&#039;&#039;Kellner&#039;&#039;&#039;. In jedem &#039;&#039;&#039;Raum&#039;&#039;&#039; befinden sich unterschiedliche Tische. Manche sind groß, andere sind winzig klein. Wenn eine &#039;&#039;&#039;Gruppe&#039;&#039;&#039; eintrifft, werden sie vom &#039;&#039;&#039;Hauptkellner&#039;&#039;&#039; begrüßt. Der Hauptkellner führt sie zu einem Tisch und übergibt die Gruppe an den im jeweiligen Raum zuständigen Kellner. Die Gruppe der Gäste bekommt eine &#039;&#039;&#039;Speisekarte&#039;&#039;&#039; mit den Speisen und Getränken. Der Kellner nimmt die Bestellungen auf und serviert diese anschließend. Nach dem Essen fragt die Gruppe nach der &#039;&#039;&#039;Rechnung&#039;&#039;&#039; und bezahlt diese.&lt;br /&gt;
&lt;br /&gt;
Am Ende des Tages macht der Hauptkellner eine Gesamtabrechnung und eine Analyse:&lt;br /&gt;
* Welcher Kellner hat die meisten Gäste bedient?&lt;br /&gt;
* Welcher Kellner hat den Höchsten Umsatz generiert?&lt;br /&gt;
* Welcher Kellner hat den größten Gewinnn erwirtschaftet? (Dazu braucht man die Selbstkosten pro Speise/Getränk)&lt;br /&gt;
* Was war die beliebteste Speise?&lt;br /&gt;
* Was war das beliebteste Getränk?&lt;br /&gt;
&lt;br /&gt;
=== Museum: Neue Pinakothek ===&lt;br /&gt;
&lt;br /&gt;
Ein &#039;&#039;&#039;Museum&#039;&#039;&#039; besteht aus Gängen und Ausstellungsräume. Jeder &#039;&#039;&#039;Gang&#039;&#039;&#039; und &#039;&#039;&#039;Ausstellungsraum&#039;&#039;&#039; kennt über die benachbarten Räume. In jedem Ausstellungsraum sind &#039;&#039;&#039;Kunststücke&#039;&#039;&#039; ausgestellt. Ein Kunststück kann ein Zeichen, Gemälde, Statue, oder ein Kunstobjekt sein.&lt;br /&gt;
Es gibt einen besonderen Gang im Museum, der als Eingang für Gäste dient. Ab dem Zeitpunkt der Öffnung dürfen Gäste ins Museum kommen. Ein Gast in einem Gang wählt einen zufälligen Raum, den er betritt. Falls sich ein Gast in einem Ausstellungsraum befindet, kann er ein zufälliges Kunststück beobachten oder in den nächsten Raum gehen. Falls ein Gast nach einer Zeit müde wird, geht er nach Hause. Zwischen den Gästen sind einige mit bösen Absichten. Ein &#039;&#039;&#039;Dieb&#039;&#039;&#039; stiehlt den beobachteten Gegenstand, falls er sich allein in einem Raum befindet. Um die Diebstähle zu verhindern sind einige &#039;&#039;&#039;Wächter&#039;&#039;&#039; im Museum unterwegs. Die Wächter beobachten keine Kunstobjekte, sondern sie versuchen sich in Räumen zu befinden in denen auch anderen Gäste präsent sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Geometry ===&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Abstrakte Klasse&#039;&#039;&#039; {{JSL|Geometry}}. Diese enthält folgende &#039;&#039;&#039;Methoden&#039;&#039;&#039;:&lt;br /&gt;
* {{JSL|getCircumference()}} und gibt einen {{JSL|double}} zurück&lt;br /&gt;
* {{JSL|getArea()}} und gibt einen {{JSL|double}} zurück&lt;br /&gt;
&lt;br /&gt;
Erstelle nun einige &#039;&#039;&#039;Klassen&#039;&#039;&#039; die von {{JSL|Geometry}} erben (Circle, Square, Rectangle, Triangle,...). Jede &#039;&#039;&#039;Klasse&#039;&#039;&#039; soll in ihrem Konstruktor die entsprechenden Werte erhalten.&lt;br /&gt;
&lt;br /&gt;
Erstelle nun verschiedene &#039;&#039;&#039;Instanzen&#039;&#039;&#039; von {{JSL|Geometry}}, speichere diese in einer {{JSL|List}}. Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die den Gesamtumfang und die Gesamtfläche aller {{JSL|Geometry}} &#039;&#039;&#039;Objekte&#039;&#039;&#039; in der {{JSL|List}} ausgibt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teste deine Implementierung ausgiebig&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Datei:Geometry.png|mini|ohne]]&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Geometry Interface ===&lt;br /&gt;
Gleiche Aufgabe wie zuvor, verwende jedoch ein &#039;&#039;&#039;Interface&#039;&#039;&#039; anstatt eine &#039;&#039;&#039;Abstrakte Klasse&#039;&#039;&#039; für die Geometry.&lt;br /&gt;
 Welche möglichen Vorteile ergeben sich dadurch?&lt;br /&gt;
&lt;br /&gt;
[[Datei:Geometry Interface.png|mini|ohne]]&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Geometry Enhanced Version ===&lt;br /&gt;
  Zeichne zuerst für die Aufgabe ein entsprechendes Klassendiagramm (kann wiederverwendet werden)&lt;br /&gt;
&lt;br /&gt;
Erweitere das vorhergehende Beispiel um die Geometrische Form Stern und Haus vom Nikolaus. Verwende soviel Code wie möglich wieder.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Datei:Hausvomnikolaus.png|mini|none|Haus vom Nikolaus|150px]] || [[Datei:Kompass Stern.png|mini|Kompass Stern|150px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Simulationen ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Carsimulation ===&lt;br /&gt;
Erstelle eine {{JSL|Car}} &#039;&#039;&#039;Klasse&#039;&#039;&#039;. Diese enthält alle gängigen Attribute die für ein Auto benötigt werden. Zumindest sollte die &#039;&#039;&#039;Klasse&#039;&#039;&#039; folgende Attribute enthalten:&lt;br /&gt;
* Hersteller&lt;br /&gt;
* Modell&lt;br /&gt;
* kW (Leistung)&lt;br /&gt;
* Tankinhalt&lt;br /&gt;
* Antriebsart (erstelle dafür eine Enumeration &#039;&#039;Benzin&#039;&#039;, &#039;&#039;Diesel&#039;&#039;, &#039;&#039;Gas&#039;&#039;, &#039;&#039;Strom&#039;&#039;)&lt;br /&gt;
* Gewicht&lt;br /&gt;
Überlege welche Attribute du im &#039;&#039;&#039;Konstruktor&#039;&#039;&#039; als Parameter erhalten willst. Ohne welche kann eine Auto &#039;&#039;&#039;Instanz&#039;&#039;&#039; nicht existieren?&lt;br /&gt;
Erstelle nun die &#039;&#039;&#039;Methode&#039;&#039;&#039; {{JSL|drive(int kilometer)}} welche einen {{JSL|int}} zurückgibt. Diese &#039;&#039;&#039;Methode&#039;&#039;&#039; soll, wenn es der Tankinhalt zulässt, die gegebene Strecke zurücklegen. Wenn der Tank leer ist, soll nur die Strecke zurückgegeben werden, die zurückgelegt werden konnte, ansonsten die gesamte Strecke. Um den Verbrauch zu berechnen und den Tankinhalt zu reduzieren, verwende das &#039;&#039;&#039;Gewicht&#039;&#039;&#039; und die &#039;&#039;&#039;kW (Leistung)&#039;&#039;&#039; des Autos.&lt;br /&gt;
&lt;br /&gt;
Wenn der Tank leer ist, soll der Tank über eine &#039;&#039;&#039;Methode&#039;&#039;&#039; mit einer gewissen Menge an Kraftstoff aufgefüllt werden. Erstelle dazu eine entsprechende &#039;&#039;&#039;Methode&#039;&#039;&#039; und fahr weiter.&lt;br /&gt;
&lt;br /&gt;
Erstelle nun eine Carsimulation welche eine gewisse Anzahl von Autoinstanzen erstellt und diese fahren lässt und wenn nötig wieder betankt.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Wunsch:&#039;&#039;&#039; Die Methoden sollen zu ihrer eigentlichen Funktion auch eine schöne Ausgabe erstellen&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Carsimulation Extended ===&lt;br /&gt;
Erweitere das vorhergende Beispiel um die &#039;&#039;&#039;Klassen&#039;&#039;&#039;&lt;br /&gt;
* {{JSL|Engine}} (Motor)&lt;br /&gt;
* {{JSL|Tank}}&lt;br /&gt;
* {{JSL|GasStation}}&lt;br /&gt;
* {{JSL|RepairStation}}&lt;br /&gt;
Sowohl {{JSL|Tank}} und {{JSL|Motor}} sollen in {{JSL|Car}} als Attribute existieren und durch die {{JSL|RepairStation}} austauschbar sein.&lt;br /&gt;
&lt;br /&gt;
Eine {{JSL|Engine}} soll nach einer zufälligen Wahrscheinlichkeit einen Defekt haben und in der {{JSL|RepairStation}} getauscht werden. Je mehr Kilometer gefahren wurden, desto höher ist die Wahrscheinlichkeit, dass die {{JSL|Engine}} kaputt geht.&lt;br /&gt;
&lt;br /&gt;
Wenn die {{JSL|Car}} nicht die gewünschten Kilometer fährt, so ist entweder der Tank leer, oder der Motor kaputt. Erstelle &#039;&#039;&#039;Methoden&#039;&#039;&#039; der {{JSL|Car}} &#039;&#039;&#039;Klasse&#039;&#039;&#039; die den Tankinhalt und den Zustand des &#039;&#039;&#039;Motors&#039;&#039;&#039; (defekt oder ganz) zurückgeben.&lt;br /&gt;
&lt;br /&gt;
Wird die {{JSL|drive(int kilometers)}} &#039;&#039;&#039;Methode&#039;&#039;&#039; ausgeführt, so soll nun eine Methode im Motor aufgerufen werden, die diesen startet, und nach den gefahrenen Kilomtern wieder stoppt. Auch der Treibstoffverbrauch soll mit dem Motor zusammenhängen. Vielleicht ist es eine gute Idee beim Starten den Tank an den Motor zu übergeben?&lt;br /&gt;
&lt;br /&gt;
==== Erstelle folgende &#039;&#039;&#039;Subklassen&#039;&#039;&#039; von &#039;&#039;&#039;Tank&#039;&#039;&#039; ====&lt;br /&gt;
* Battery&lt;br /&gt;
* FuelTank&lt;br /&gt;
&lt;br /&gt;
 Überlege welche &#039;&#039;&#039;Methoden&#039;&#039;&#039; in der &#039;&#039;&#039;Superklasse&#039;&#039;&#039; &#039;&#039;&#039;Tank&#039;&#039;&#039; Sinn machen.&lt;br /&gt;
&lt;br /&gt;
==== Erstelle folgende &#039;&#039;&#039;Subklassen&#039;&#039;&#039; von &#039;&#039;&#039;Car&#039;&#039;&#039; ====&lt;br /&gt;
* SelfRepairingCar (hat der Motor einen Schaden, so soll dieser automatisch repariert und weitergefahren werden)&lt;br /&gt;
* AeroDynamicCar (reduziert den Treibstoffverbrauch um 50%)&lt;br /&gt;
* CrapCar (erhöht die Wahrscheinlichkeit dass der Motor kaputt geht um 50%)&lt;br /&gt;
&lt;br /&gt;
 Überlege welche &#039;&#039;&#039;Methoden&#039;&#039;&#039; in der &#039;&#039;&#039;Superklasse&#039;&#039;&#039; &#039;&#039;&#039;Car&#039;&#039;&#039; sinn machen. Eine eigene Methode in der &#039;&#039;&#039;Superklasse&#039;&#039;&#039; welche den Treibstoffverbrauch pro Kilometer ausrechnet, macht wahrscheinlich sinn. Diese kann dann in den &#039;&#039;&#039;Subklassen&#039;&#039;&#039; überschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teste deine Autosimulation ausgiebig.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Bank ===&lt;br /&gt;
Ein Bankinstitut hat verschiedene Schalter. Ein Kunde geht in ein Bankinstitut um sein Bankgeschäft zu verrichten. Zuerst geht der Kunde ins Institut und geht zum nächsten freien Schalter. Wenn der Kunde den Schalter wieder verlässt, wird der Schalter zu einer Wahrscheinlichkeit von 20% für eine Pause geschlossen (die Pause eines Schalters endet nach dem 3 weitere Kunden die Bank betreten und verlassen haben). Hat ein Schalter kein Geld mehr so muss dieser wieder aufgefüllt werden und der Schalter ist für die Dauer eines Kunden geschlossen.&lt;br /&gt;
 * Das Bankgeschäft eines Kunden ist entweder eine Einzahlung bzw. eine Auszahlung.&lt;br /&gt;
 * Kann ein Schalter eine gewisse Geldmenge nicht bedienen geht der Kunde zum nächsten Schalter und der Ursprüngliche Schalter wird aufgefüllt.&lt;br /&gt;
 * Es soll nachvollzogen werden können welcher Schalter welche Kunden bedient hat und was für ein Betrag eingezahlt oder ausgezahlt wurde (&#039;&#039;&#039;ACHTUNG&#039;&#039;&#039; keine {{JSL|HashMap}}).&lt;br /&gt;
&lt;br /&gt;
# Erstelle ein UML Diagramm für dein Banksystem (Dia)&lt;br /&gt;
# Erstelle die notwendingen Klassen und Methoden.&lt;br /&gt;
# Erstelle nun eine Bank mit einigen Schaltern und erstelle weiters einige Kunden.&lt;br /&gt;
# Simuliere nun das Bankgeschäft. Die Kunden gehen der reihe nach in die Bank. Am Ende der Simulation soll für jeden Schalter eine Statistik ausgegeben werden (welche Kunden waren dort, welche Beträge wurden verarbeitet).&lt;br /&gt;
# Erstelle Unit Tests für deine Banksimulation&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Filesystem traversal ===&lt;br /&gt;
 Das wurde schonmal gemacht, einfach nochmal machen, das schadet nicht :-)&lt;br /&gt;
Erstelle eine Methode welche durch das Dateisystem ab einem gegebenen Pfad navigiert (Ob der Pfad als {{JSL|String}} oder {{JSL|File}} übergeben wird ist egal). Wird der Pfad nicht gefunden, so soll eine {{JSL|FileNotFoundException}} geworfen werden. Die Navigation soll dabei &#039;&#039;&#039;Rekursiv&#039;&#039;&#039; erfolgen. Gib den Pfad mit entsprechender Einrückung aus.&lt;br /&gt;
 &#039;&#039;&#039;Tip zur Rekursion:&#039;&#039;&#039; Iteriere in einer Methode durch alle Kinder einer Datei. Handelt es sich um einen Ordner so rufe für jedes Kind dieses Ordners die Methode wieder auf und erhöhe die Einrückung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe (muss nicht genau so aussehen):&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
├── otherPackageInvocationTest&lt;br /&gt;
│   └── Test.java&lt;br /&gt;
├── week1&lt;br /&gt;
│   ├── tag3&lt;br /&gt;
│   │   ├── Aufgabe1.java&lt;br /&gt;
│   │   ├── Aufgabe2.java&lt;br /&gt;
│   │   └── Loops.java&lt;br /&gt;
│   ├── tag4&lt;br /&gt;
│   │   ├── Christbaum2.java&lt;br /&gt;
│   │   ├── Christbaum.java&lt;br /&gt;
│   │   ├── Loops.java&lt;br /&gt;
│   │   ├── Traingle2.java&lt;br /&gt;
│   │   └── Triangle.java&lt;br /&gt;
│   ├── tag5&lt;br /&gt;
│   │   ├── Circle2.java&lt;br /&gt;
│   │   ├── Circle3.java&lt;br /&gt;
│   │   ├── Circle.java&lt;br /&gt;
│   │   └── Methods.java&lt;br /&gt;
│   └── tag5a&lt;br /&gt;
│       └── UseMethods.java&lt;br /&gt;
├── week2&lt;br /&gt;
│   ├── day3&lt;br /&gt;
│   │   ├── Calendar.java&lt;br /&gt;
│   │   ├── LogicPuzzle.java&lt;br /&gt;
│   │   ├── Recursion2.java&lt;br /&gt;
│   │   └── Recursion.java&lt;br /&gt;
│   └── day4&lt;br /&gt;
│       ├── Menu.java&lt;br /&gt;
│       └── UserInput.java&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Filesystem traversal usefull ===&lt;br /&gt;
Erstelle eine Methode welche durch das Dateisystem ab einem gegebenen Pfad navigiert. Die Methode erhält weiters eine Klasse {{JSL|FileReceiver}}. Diese Klasse hat eine Methode {{JSL|onFileReceived(int depth, File file)}} welche zur Verarbeitung jeder einzelnen Datei, bzw. jedes einzelnen Ordners aufgerufen wird. Erstelle verschiedene weitere Klassen die von {{JSL|FileReceiver}} erben und {{JSL|onFileReceived(int depth, File file)}} überschreiben und folgende Aufgaben erfüllen sollen:&lt;br /&gt;
* Größe aller Dateien berechnen&lt;br /&gt;
* Anzahl der Dateien mit einer bestimmten Endung zählen&lt;br /&gt;
* Alle Dateiendungen Zählen. Tip.: {{JSL|HashMap}}&lt;br /&gt;
* Die größe jedes Ordners ermitteln. Tip.: Hier wird die &#039;&#039;&#039;depth&#039;&#039;&#039; und ein Stapel benötigt ({{JSL|List}}, oder {{JSL|Stack}}).&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Filesystem traversal usefull &amp;amp; extended ===&lt;br /&gt;
Wie in der vorhergehenden Aufgabe, jedoch soll nicht nur ein {{JSL|FileReceiver}} übergeben werden können, sondern eine {{JSL|List}} von {{JSL|FileReceiver}}.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: JUnit ===&lt;br /&gt;
Wähle drei Beispiele aus deiner Sammlung und teste diese mit &#039;&#039;&#039;JUnit&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Geometry ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Abstrakte Klasse&#039;&#039;&#039; {{JSL|Geometry}}. Diese enthält folgende &#039;&#039;&#039;Methoden&#039;&#039;&#039;:&lt;br /&gt;
* {{JSL|getCircumference()}} und gibt einen {{JSL|double}} zurück&lt;br /&gt;
* {{JSL|getArea()}} und gibt einen {{JSL|double}} zurück&lt;br /&gt;
&lt;br /&gt;
Erstelle nun einige &#039;&#039;&#039;Klassen&#039;&#039;&#039; die von {{JSL|Geometry}} erben (Circle, Square, Rectangle, Triangle,...). Jede &#039;&#039;&#039;Klasse&#039;&#039;&#039; soll in ihrem Konstruktor die entsprechenden Werte erhalten.&lt;br /&gt;
&lt;br /&gt;
Erstelle nun verschiedene &#039;&#039;&#039;Instanzen&#039;&#039;&#039; von {{JSL|Geometry}}, speichere diese in einer {{JSL|List}}. Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die den Gesamtumfang und die Gesamtfläche aller {{JSL|Geometry}} &#039;&#039;&#039;Objekte&#039;&#039;&#039; in der {{JSL|List}} ausgibt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teste deine Implementierung ausgibig&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Verhalten ===&lt;br /&gt;
Wie in [[Protokoll#19._November_2021|Protokoll 19.11]] gezeigt, soll nun das &#039;&#039;&#039;Schwimmverhalten&#039;&#039;&#039; implementiert werden. Erstelle endweder die Bestehende Klassenhierarchie als Übung in deinem eigenen Paket, oder kopiere diese.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Graph === &lt;br /&gt;
&lt;br /&gt;
Ein Graph ist eine Datenstruktur die aus mehreren Knoten (Nodes besteht). Eine Node kann mehrere Nodes als Nachbarn haben, das heißt, sie hat eine Verbindung zu diesen Nachbarn.&lt;br /&gt;
[[Datei:Graph.png|mini|Ein einfacher Graph|150px]]&lt;br /&gt;
&lt;br /&gt;
* Erstelle eine Datenstruktur für die &#039;&#039;&#039;Node&#039;&#039;&#039; mit (X/Y Koordinaten), verwende für die Nachbarn eine {{JSL|List}} in der jeweiligen &#039;&#039;&#039;Node&#039;&#039;&#039;&lt;br /&gt;
* Erstelle weiters eine Datenstruktur für den Graphen, welche eine {{JSL|List}} von &#039;&#039;&#039;Nodes&#039;&#039;&#039; enthält&lt;br /&gt;
* Erstelle aus den schwarzen Pixeln des folgenden Labyrinths einen Graphen&lt;br /&gt;
&lt;br /&gt;
[[Datei:Labyrinth.png|150px|mini|none|Ein Labyrinth]]&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Dijkstra ===&lt;br /&gt;
&lt;br /&gt;
Zeige deinen Graphen in einem {{JSL|JPanel}} an. Es soll nun der Start und das Ziel angeklickt werden können. Finde mittels Dijkstra Algorithmus[https://de.wikipedia.org/wiki/Dijkstra-Algorithmus] den kürzesten Weg vom Start zum Ziel. Illustriere dabei alle durchwanderten Knoten.&lt;br /&gt;
&lt;br /&gt;
=== Schule: Volksschule Rotkreuz (Lustenau) ===&lt;br /&gt;
&lt;br /&gt;
Es gibt eine &#039;&#039;&#039;Schule&#039;&#039;&#039;. In der Schule sind verschiedene Räume, so wie &#039;&#039;&#039;KlassenRaum&#039;&#039;&#039;, &#039;&#039;&#039;SportHalle&#039;&#039;&#039;, &#039;&#039;&#039;Handwerk &amp;amp; Technik Raum&#039;&#039;&#039;. Die Schule hat ein &#039;&#039;&#039;Schuldirektor&#039;&#039;&#039; und viele &#039;&#039;&#039;Lehrer&#039;&#039;&#039;.  Die &#039;&#039;&#039;Schüler&#039;&#039;&#039;, die die Schule besuchen, gehören zu einer &#039;&#039;&#039;SchuleKlasse&#039;&#039;&#039;. Jede SchuleKlasse hat einen fixen Tagesablauf, die im &#039;&#039;&#039;Kursplan&#039;&#039;&#039; festgelegt ist. Der Kursplan beinhaltet, das Thema, den Lehrer und den Raum, wo es stattfindet.&lt;br /&gt;
&lt;br /&gt;
==== Simulation 0.1 ====&lt;br /&gt;
&lt;br /&gt;
Morgen kommen alle Lehrer und alle Schüler in die Schule. Die Schüler, die zu spät erscheinen, müssen zu dem Direktor.&lt;br /&gt;
&lt;br /&gt;
==== Simulation 0.2 ====&lt;br /&gt;
&lt;br /&gt;
Die Schüler haben einen fixen Tagesablauf. 45 Minuten Stunden, 15 Minuten Pause, 45 Minuten Stunde, ....&lt;br /&gt;
Am Beginn jeder Unterrichtsstunde gehen die Schüler in den entsprechenden Kursraum, wie es im Stundenplan vorgesehen ist.&lt;br /&gt;
&lt;br /&gt;
==== Simulation 0.3 ====&lt;br /&gt;
&lt;br /&gt;
Die Lehrer gehen in den Kursraum, wo sie gebraucht sind. Nach der Stunde kommen sie in dem Lehrerzimmer zurück. Falls sie keine Kursstunde haben, bleiben sie im Lehrerzimmer und korrigieren Hausaufgaben und Tests.&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Objekt_Orientierte_Programmierung_%C3%9Cbungen&amp;diff=3711</id>
		<title>DCV 2024 09/Objekt Orientierte Programmierung Übungen</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Objekt_Orientierte_Programmierung_%C3%9Cbungen&amp;diff=3711"/>
		<updated>2024-11-07T08:26:12Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Aufgabe: Türkische Serie 2.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im folgenden sollen diese Begriffe verstanden und angewandt werden. Diese sind nicht chronologisch geordnet.&lt;br /&gt;
 &#039;&#039;&#039;Tip:&#039;&#039;&#039; Für weitere Informationen: [[Objektorientierte_Programmierung|Objektorientierte Programmierung]]&lt;br /&gt;
* Klasse&lt;br /&gt;
** Instanz- vs. Klassenmethode&lt;br /&gt;
** Instanz- vs. Klassenattribut&lt;br /&gt;
** Innere Klassen (statisch vs. nicht statisch)&lt;br /&gt;
* Enumeration (enum)&lt;br /&gt;
* Collections (Liste, Set, Map)&lt;br /&gt;
* Vererbung&lt;br /&gt;
* Abstrakte Klasse&lt;br /&gt;
* Interface&lt;br /&gt;
* Polymorphismus&lt;br /&gt;
* Beziehungen&lt;br /&gt;
** Has-A vs. Is-A&lt;br /&gt;
** Implementierung von Interfaces&lt;br /&gt;
* Generics&lt;br /&gt;
* Designpatterns&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Person ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Klasse&#039;&#039;&#039; welche die typischen Werte eines Menschen speichern kann.&lt;br /&gt;
* Größe&lt;br /&gt;
* Alter&lt;br /&gt;
* Name&lt;br /&gt;
* Gewicht&lt;br /&gt;
Erstelle weiters eine {{JSL|toString()}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und erstelle einen schönen {{JSL|String}} mit den gegebenen Werten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Türkische Serie ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Klasse&#039;&#039;&#039; welche die typischen Werte einer TV-Serie speichern kann.&lt;br /&gt;
* Title&lt;br /&gt;
* Genre&lt;br /&gt;
* Jahr&lt;br /&gt;
* Originalsprache&lt;br /&gt;
&lt;br /&gt;
Erstelle weiters eine {{JSL|toString()}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und erstelle einen schönen {{JSL|String}} mit den gegebenen Werten.&lt;br /&gt;
&lt;br /&gt;
Erstelle weiterhin 2-3 Objekten, als typische türkische Serien.&lt;br /&gt;
&lt;br /&gt;
Erweitere deine &#039;&#039;&#039;Klasse&#039;&#039;&#039; mit den Attributen&lt;br /&gt;
* Regisseur&lt;br /&gt;
* Produzent&lt;br /&gt;
&lt;br /&gt;
Verwende hierfür die bereits bestehende Klasse &#039;&#039;&#039;Person&#039;&#039;&#039;, aus dem vorherigen Beispiel.&lt;br /&gt;
&lt;br /&gt;
Erstelle &#039;&#039;&#039;Funktionen&#039;&#039;&#039; die sowohl diese Personen zu der Serie hinzufügen als auch wieder löschen kann!&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Datenklasse ===&lt;br /&gt;
Es soll eine &#039;&#039;&#039;Methode&#039;&#039;&#039; erstellt werden, welche das &#039;&#039;&#039;kleinste&#039;&#039;&#039; und das &#039;&#039;&#039;größte Element&#039;&#039;&#039; sowie den &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; eines {{JSL|int[]}} ermittelt und zurückgibt. Alle  ermittelten Werten sollen in einem Datenobjekt zurückgegeben werden. Erstelle dazu eine Datenklasse welche die entsprechenden Werte enthält. Teste diese &#039;&#039;&#039;Methode&#039;&#039;&#039; ausgiebig mit verschiedenen {{JSL|int[]}}, verwende auch ein zufallsgeneriertes {{JSL|int[]}} mit negativen und positiven Werten.&lt;br /&gt;
* Erstelle die Datenklasse mit einem Sinnvollen Klassennamen und entsprechenden &#039;&#039;&#039;Attributen&#039;&#039;&#039;. Achte hierbei auch auf die Korrekte Sichtbarkeit&lt;br /&gt;
* Erstelle in in der Datenklasse einen &#039;&#039;&#039;Konstruktor&#039;&#039;&#039; welcher alle Werte entgegennimmt und erstelle &#039;&#039;&#039;getter&#039;&#039;&#039; für alle Werte&lt;br /&gt;
* Überschreibe die {{JSL|toString()}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und erstelle einen schönen {{JSL|String}} mit den gegebenen Werten.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Fotoapparat ===&lt;br /&gt;
Erstelle eine Fotoapparat &#039;&#039;&#039;Klasse&#039;&#039;&#039;.&lt;br /&gt;
* Mit zumindest folgenden Attributen (es dürfen auch gerne mehr sein), &#039;&#039;&#039;Brennweite min/max&#039;&#039;&#039;, &#039;&#039;&#039;Model&#039;&#039;&#039;, &#039;&#039;&#039;Hersteller&#039;&#039;&#039; und &#039;&#039;&#039;Megapixel&#039;&#039;&#039;.&lt;br /&gt;
* Erstelle für die Attribute &#039;&#039;&#039;getter&#039;&#039;&#039; und &#039;&#039;&#039;setter&#039;&#039;&#039;&lt;br /&gt;
* Erstelle weiters die &#039;&#039;&#039;Methode&#039;&#039;&#039; {{JSL|takePhoto()}}, die ein Foto schießt (Mach einfach eine nette Ausgabe)&lt;br /&gt;
* Überschreibe die {{JSL|toString()}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und gib die relevanten Daten als {{JSL|String}} zurück&lt;br /&gt;
&lt;br /&gt;
Erstelle verschiedene &#039;&#039;&#039;Instanzen&#039;&#039;&#039; der Fotoapparat &#039;&#039;&#039;Klasse&#039;&#039;&#039; und Teste diese ausgiebig.&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Bonusaufgabe: Fotoapparat &amp;amp; Objektiv &amp;amp; Speicherkarte&#039;&#039;&#039; ===&lt;br /&gt;
Erweitere das vorhergehende Beispiel um die Klassen Objektiv und Speicherkarte. Die Brennweite der Kamera fällt demnach weg.&lt;br /&gt;
Das Objektiv und die Speicherkarte sollen getauscht werden können.&lt;br /&gt;
Erstelle Methoden um zu erfragen wieviele Fotos bereits aufgenommen wurden und wieviel Speicher noch frei ist. Für die Berechnung speicherplatz pro bild, kann ein wert von 0.3mb pro Megapixel angenommen werden.[https://www.mvorganizing.org/what-is-the-average-size-of-a-jpg/#What_is_the_average_size_of_a_JPG]&lt;br /&gt;
&lt;br /&gt;
== Handhabung von dynamischen Datenstrukturen (ArrayList, Vector, LinkedList, HashSet, HashMap) ==&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Vector erstellen ===&lt;br /&gt;
Erstelle einen Vector mit 20 Zufallszahlen zwischen 0 und 99.&lt;br /&gt;
&lt;br /&gt;
Gib den Vector mit {{JSL|System.out.println()}} aus.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Vector erstellen ===&lt;br /&gt;
Erstelle einen Vector mit 20 Zufallszahlen zwischen 0 und 99.&lt;br /&gt;
&lt;br /&gt;
Erstelle jeweils eine Funktionen für:&lt;br /&gt;
# Zählen der geraden Zahlen&lt;br /&gt;
# Suche nach der kleinsten Zahl&lt;br /&gt;
# Suche nach der größten Zahl&lt;br /&gt;
# Sortiere die Elementen absteigend&lt;br /&gt;
# Lösche alle Ungerade Zahlen&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Zwei Vectoren zusammenführen ===&lt;br /&gt;
Es gibt zwei Vectoren mit 20 Elementen, die nach Größe sortiert sind.&lt;br /&gt;
&lt;br /&gt;
Erstelle einen dritten Vector, in dem du die Elemente der vorhergehenden Vectoren zusammenfügst, der neu erstellte Vector soll immer noch sortiert sein.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Person 2.0 ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Klasse&#039;&#039;&#039; welche die typischen Werte eines Menschen speichern kann.&lt;br /&gt;
* Größe&lt;br /&gt;
* Alter&lt;br /&gt;
* Name&lt;br /&gt;
* Gewicht&lt;br /&gt;
Erstelle weiters eine Methode welche eine {{JSL|List}} von Personen erhält und bezüglich &#039;&#039;&#039;Größe&#039;&#039;&#039;, &#039;&#039;&#039;Alter&#039;&#039;&#039;, &#039;&#039;&#039;Gewicht&#039;&#039;&#039;, das &#039;&#039;&#039;kleinste&#039;&#039;&#039; und das &#039;&#039;&#039;größte Element&#039;&#039;&#039; sowie den &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; berechnet und wie in der vorhergehenden Aufgabe in einer eigenen Klasse zurückgibt.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Person Sortiert ===&lt;br /&gt;
Verwende die erstellte &#039;&#039;&#039;Klasse&#039;&#039;&#039; aus dem vorhergehenden Beispiel und erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche eine {{JSL|List}} von Personen nach entweder nach &#039;&#039;&#039;Größe&#039;&#039;&#039;, &#039;&#039;&#039;Alter&#039;&#039;&#039;, &#039;&#039;&#039;Gewicht&#039;&#039;&#039;, oder &#039;&#039;&#039;Name&#039;&#039;&#039; sortiert. Hierfür kann ein &#039;&#039;&#039;enum&#039;&#039;&#039; verwendet werden, oder auch einfach ein {{JSL|int}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Türkische Serie 2.0 ===&lt;br /&gt;
Erweitere die bestehende &#039;&#039;&#039;Klasse&#039;&#039;&#039; &amp;quot;Serie&amp;quot; mit neuen Attributen.&lt;br /&gt;
* Title&lt;br /&gt;
* Genre&lt;br /&gt;
* Jahr&lt;br /&gt;
* Originalsprache&lt;br /&gt;
* Regisseur&lt;br /&gt;
* Direktor&lt;br /&gt;
NEU!&lt;br /&gt;
* ScoutListe (Liste mit Vector)&lt;br /&gt;
* CastListe (Liste mit Vector)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstelle mit Hilfe einer neuen Klasse (Schauspieler) ein Objekt, ähnlich wie eine Person, mit sinnvollen Attribute.&lt;br /&gt;
* Vorname&lt;br /&gt;
* Nachname&lt;br /&gt;
* Alter&lt;br /&gt;
* Gage&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstelle dann in der &#039;&#039;&#039;Klasse&#039;&#039;&#039; &amp;quot;Serie&amp;quot; Funktionen die Schauspieler(Objekt) zu einer Liste hinzufügen und löschen können.&lt;br /&gt;
Erstelle in der Main, mind. 5 Schauspieler und füge diese dann zu der ScoutingListe dazu.&lt;br /&gt;
Erstelle ein Methode, die Schauspieler auf die CastingListe bringt und dabei aber auch von der ScoutingListe entfernt!&lt;br /&gt;
&lt;br /&gt;
Erweitere dann die Simulation der Serie.&lt;br /&gt;
* Es müssen mindestens 2 Schauspieler angeheuert sein, um die Produktion zu starten.&lt;br /&gt;
* Erstelle Events, wo du Schauspieler aus dem aktuellen Cast löschst und/oder neue dazu fügst.&lt;br /&gt;
&lt;br /&gt;
== Zoo-Simulation ==&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Zoo ===&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Main&#039;&#039;&#039; Klasse, die zuständig ist für&lt;br /&gt;
* die Initialisierung des Zoos und aller seiner Bestandteile&lt;br /&gt;
* Initiieren des nächsten Simulationsschrittes&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Zoo&#039;&#039;&#039; Klasse mit &#039;&#039;Name&#039;&#039; und &#039;&#039;Gründungsjahr&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Gehege&#039;&#039;&#039; Klasse mit &#039;&#039;Name&#039;&#039; der als Beschreibung des Geheges dient.&lt;br /&gt;
&lt;br /&gt;
Erweitere deinen Zoo, sodass Gehege dynamisch hinzugefügt und entfernt werden können.&lt;br /&gt;
&lt;br /&gt;
Erweitere dein Programm um eine Funktion, die die Struktur des Zoos ausgibt. Der erwartete Ausdruck sieht folgendermaßen aus.&lt;br /&gt;
&lt;br /&gt;
{{BML|code= &lt;br /&gt;
├── Zoo: Tiergarten Dornbirn, gegründet 2022&lt;br /&gt;
│   ├── Gehege: Alpenwiese&lt;br /&gt;
│   ├── Gehege: Ried&lt;br /&gt;
│   ├── Gehege: Terrarium (warm)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Tiere ===&lt;br /&gt;
&lt;br /&gt;
Erweitere dein Zooprogramm mit Tiere.&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Tier&#039;&#039;&#039; Klasse mit einem &#039;&#039;Name&#039;&#039; und einer &#039;&#039;Gattung&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Erweitere die Gehege, um Tiere dynamisch zufügen und entfernen zu können.&lt;br /&gt;
&lt;br /&gt;
Erweitere den Struktur-Ausdruck von Zoo, dass es auch die Tiere ausdrückt.&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
├── Zoo: Tiergarten Dornbirn, gegründet 2022&lt;br /&gt;
│   ├── Gehege: Alpenwiese&lt;br /&gt;
│       ├── Rijska, Kuh&lt;br /&gt;
│   ├── Gehege: Ried&lt;br /&gt;
│       ├── Garmond, Storch&lt;br /&gt;
│       ├── Hugo, Storch&lt;br /&gt;
│       ├── Idaxis, Storch&lt;br /&gt;
│   ├── Gehege: Terrarium (warm)&lt;br /&gt;
│       ├── (leer)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Bonusaufgabe: Tierfutter&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Erweitere dein Zooprogramm mit Futter-Bedarfsanalyse.&lt;br /&gt;
&lt;br /&gt;
Erstelle eine Klasse für &#039;&#039;&#039;Futter&#039;&#039;&#039; mit einen &#039;&#039;Name&#039;&#039;, &#039;&#039;Einheit&#039;&#039; und &#039;&#039;Einheitspreis&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Jedes Tier hat einen Futterbedarf, die beinhaltet den &#039;&#039;Futter&#039;&#039; und eine &#039;&#039;Menge&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstelle eine Statistik, was den Futterbedarf von Zoo ist, und wie viel die Tagesversorgung sich kostet. Für diese Aufgabe kann man {{JSL|HashMap}} gut brauchen.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Pfleger ===&lt;br /&gt;
&lt;br /&gt;
Erweitere dein Zooprogramm um Tierpfleger.&lt;br /&gt;
&lt;br /&gt;
Erstelle eine Klasse &#039;&#039;&#039;Pfleger&#039;&#039;&#039; mit einem &#039;&#039;Namen&#039;&#039; und mit einer dynamischen Liste von &#039;&#039;Gehegen&#039;&#039;, wofür der Pfleger zuständig ist. Erweitere die Klasse &#039;&#039;Zoo&#039;&#039;, dass die eine Liste der &#039;&#039;Pfleger&#039;&#039; beinhaltet.&lt;br /&gt;
&lt;br /&gt;
Erweitere den Struktur-Ausdruck um die neu eingeführten Pfleger.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Simulation 0.1 ===&lt;br /&gt;
&lt;br /&gt;
Erweitere das Programm mit einer Tagessimulation.&lt;br /&gt;
&lt;br /&gt;
# An jedem Tag gehen die Pfleger los und kümmern sich um die Gehege in deren Zuständigkeitsbereich.&lt;br /&gt;
## Falls ein Pfleger ein Gehege findet, welche schon bearbeitet wurde, überspringt er das Gehege und nimmt das nächste&lt;br /&gt;
# Wenn ein Pfleger zu einem Gehege kommt, wird er zuerst die Tiere füttern&lt;br /&gt;
# Nach dem Füttern wird er ein Zufälliges Tier länger beobachten.&lt;br /&gt;
## Mit einer Erweiterung der Pfleger mit den &#039;&#039;Lieblings-Tier-Gattung&#039;&#039;, kann der Pfleger das Tier bewundern.&lt;br /&gt;
&lt;br /&gt;
Lass auf der Konsole ausdrucken, wer-was macht...&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Bonusaufgabe: Simulation 0.2&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Erweitere die Simulation&lt;br /&gt;
&lt;br /&gt;
# Jedes Tier hat eine &#039;&#039;Gesundheit&#039;&#039;, ein &#039;&#039;MaxGesundheit&#039;&#039; und einen &#039;&#039;Biss&#039;&#039;&lt;br /&gt;
# Jedes Tier versucht mit 40% Wahrscheinlichkeit, ein Nachbar von ihm aus dem gleichen Gehege zu beißen.&lt;br /&gt;
# Falls ein Tier gebissen wird, wird seine Gesundheit mit dem Biss von Angreifer reduziert&lt;br /&gt;
# &amp;quot;toten Tiere&amp;quot; beißen nicht.&lt;br /&gt;
# Am Ende des Tages werden &amp;quot;toten Tiere&amp;quot; aus dem Gehege entfernt&lt;br /&gt;
&lt;br /&gt;
Lass auf der Konsole ausdrucken, wer-was macht...&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Bonusaufgabe: Simulation 0.3&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Erweitere den Zoo mit Tierärzte, die die verletzte Tiere behandeln und heilen. Erstelle eine Klasse &#039;&#039;&#039;TierArzt&#039;&#039;&#039; mit einem &#039;&#039;Name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Erweitere die Simulation&lt;br /&gt;
&lt;br /&gt;
# Jeder Tierarzt wird an jedem Tag - genau 1 Tier behandeln&lt;br /&gt;
# Der Tierarzt wählt das Tier mit der geringsten relativen Gesundheit&lt;br /&gt;
## Zum Beispiel: 10 Gesundheit mit 100 Maximum ist 10% und so dringender als 1 Gesundheit aus 2 ergo 50%.&lt;br /&gt;
# Der Tierarzt wird zufällig zwischen 30 und 100% der Gesundheit wiederherstellen&lt;br /&gt;
# Kein Tier kann über die maximale Gesundheit geboostet werden.&lt;br /&gt;
&lt;br /&gt;
Lass auf der Konsole ausdrucken, wer-was macht...&lt;br /&gt;
&lt;br /&gt;
== Übungen Zur Modellierung ==&lt;br /&gt;
&lt;br /&gt;
Die folgenden Übungen haben das Ziel, schnell ein Model zu erfassen, das die folgenden Aspekte beinhaltet:&lt;br /&gt;
# Klassen&lt;br /&gt;
# Kompositionen&lt;br /&gt;
# Vererbungen&lt;br /&gt;
# Methoden / Funktionen&lt;br /&gt;
# Variablen / Attribute&lt;br /&gt;
&lt;br /&gt;
[[Datei:Uml-class-diagram-cheat-sheet.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine ausführliche Erklärung dazu findet sich beim Klick auf diesen Verweis: [https://ccwiki.digitalcampusvorarlberg.at/index.php/UML_Klassendiagramm].&lt;br /&gt;
&lt;br /&gt;
=== Schwarzwald Klinik ===&lt;br /&gt;
&lt;br /&gt;
Es gibt ein &#039;&#039;&#039;Krankenhaus&#039;&#039;&#039; mit unterschiedlichen &#039;&#039;&#039;Abteilungen&#039;&#039;&#039;. Manche Abteilungen sind &#039;&#039;&#039;Ambulanz&#039;&#039;&#039;en anderen sind &#039;&#039;&#039;Station&#039;&#039;&#039;en. Ambulanzen haben eine Öffnungszeit sowie einen Warteraum mit einer definierten Anzahl von Plätzen. Stationen beinhalten &#039;&#039;&#039;Zimmer&#039;&#039;&#039; in denen sich &#039;&#039;&#039;Betten&#039;&#039;&#039; befinden.&lt;br /&gt;
Wenn ein Patient ins Krankenhaus kommt, besucht dieser entsprechend seiner Erkrankung eine Ambulanz. Falls der Fall schwerwiegender ist, muss er in einer Station aufgenommen werden. Patienten werden untersucht, behandelt und eventuell gepflegt. Aus der Ambulanzen dürfen die Patienten nach kurzer Zeit wieder nach Hause gehen. Patienten die in Stationen behandelt werden, müssen solange da bleiben, bis sie vollständig geheilt sind.&lt;br /&gt;
&lt;br /&gt;
=== Restaurant &#039;&#039;Dolce Vita&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Es gibt ein &#039;&#039;&#039;Restaurant&#039;&#039;&#039;, das aus mehreren Räumen besteht. Jeder &#039;&#039;&#039;Raum&#039;&#039;&#039; hat einen zuständigen &#039;&#039;&#039;Kellner&#039;&#039;&#039;. In jedem &#039;&#039;&#039;Raum&#039;&#039;&#039; befinden sich unterschiedliche Tische. Manche sind groß, andere sind winzig klein. Wenn eine &#039;&#039;&#039;Gruppe&#039;&#039;&#039; eintrifft, werden sie vom &#039;&#039;&#039;Hauptkellner&#039;&#039;&#039; begrüßt. Der Hauptkellner führt sie zu einem Tisch und übergibt die Gruppe an den im jeweiligen Raum zuständigen Kellner. Die Gruppe der Gäste bekommt eine &#039;&#039;&#039;Speisekarte&#039;&#039;&#039; mit den Speisen und Getränken. Der Kellner nimmt die Bestellungen auf und serviert diese anschließend. Nach dem Essen fragt die Gruppe nach der &#039;&#039;&#039;Rechnung&#039;&#039;&#039; und bezahlt diese.&lt;br /&gt;
&lt;br /&gt;
Am Ende des Tages macht der Hauptkellner eine Gesamtabrechnung und eine Analyse:&lt;br /&gt;
* Welcher Kellner hat die meisten Gäste bedient?&lt;br /&gt;
* Welcher Kellner hat den Höchsten Umsatz generiert?&lt;br /&gt;
* Welcher Kellner hat den größten Gewinnn erwirtschaftet? (Dazu braucht man die Selbstkosten pro Speise/Getränk)&lt;br /&gt;
* Was war die beliebteste Speise?&lt;br /&gt;
* Was war das beliebteste Getränk?&lt;br /&gt;
&lt;br /&gt;
=== Museum: Neue Pinakothek ===&lt;br /&gt;
&lt;br /&gt;
Ein &#039;&#039;&#039;Museum&#039;&#039;&#039; besteht aus Gängen und Ausstellungsräume. Jeder &#039;&#039;&#039;Gang&#039;&#039;&#039; und &#039;&#039;&#039;Ausstellungsraum&#039;&#039;&#039; kennt über die benachbarten Räume. In jedem Ausstellungsraum sind &#039;&#039;&#039;Kunststücke&#039;&#039;&#039; ausgestellt. Ein Kunststück kann ein Zeichen, Gemälde, Statue, oder ein Kunstobjekt sein.&lt;br /&gt;
Es gibt einen besonderen Gang im Museum, der als Eingang für Gäste dient. Ab dem Zeitpunkt der Öffnung dürfen Gäste ins Museum kommen. Ein Gast in einem Gang wählt einen zufälligen Raum, den er betritt. Falls sich ein Gast in einem Ausstellungsraum befindet, kann er ein zufälliges Kunststück beobachten oder in den nächsten Raum gehen. Falls ein Gast nach einer Zeit müde wird, geht er nach Hause. Zwischen den Gästen sind einige mit bösen Absichten. Ein &#039;&#039;&#039;Dieb&#039;&#039;&#039; stiehlt den beobachteten Gegenstand, falls er sich allein in einem Raum befindet. Um die Diebstähle zu verhindern sind einige &#039;&#039;&#039;Wächter&#039;&#039;&#039; im Museum unterwegs. Die Wächter beobachten keine Kunstobjekte, sondern sie versuchen sich in Räumen zu befinden in denen auch anderen Gäste präsent sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Geometry ===&lt;br /&gt;
 Zeichne zuerst für die Aufgabe ein entsprechendes Klassendiagramm&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Abstrakte Klasse&#039;&#039;&#039; {{JSL|Geometry}}. Diese enthält folgende &#039;&#039;&#039;Methoden&#039;&#039;&#039;:&lt;br /&gt;
* {{JSL|getCircumference()}} und gibt einen {{JSL|double}} zurück&lt;br /&gt;
* {{JSL|getArea()}} und gibt einen {{JSL|double}} zurück&lt;br /&gt;
&lt;br /&gt;
Erstelle nun einige &#039;&#039;&#039;Klassen&#039;&#039;&#039; die von {{JSL|Geometry}} erben (Circle, Square, Rectangle, Triangle,...). Jede &#039;&#039;&#039;Klasse&#039;&#039;&#039; soll in ihrem Konstruktor die entsprechenden Werte erhalten.&lt;br /&gt;
&lt;br /&gt;
Erstelle nun verschiedene &#039;&#039;&#039;Instanzen&#039;&#039;&#039; von {{JSL|Geometry}}, speichere diese in einer {{JSL|List}}. Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die den Gesamtumfang und die Gesamtfläche aller {{JSL|Geometry}} &#039;&#039;&#039;Objekte&#039;&#039;&#039; in der {{JSL|List}} ausgibt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teste deine Implementierung ausgiebig&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Datei:Geometry.png|mini|ohne]]&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Geometry Interface ===&lt;br /&gt;
Gleiche Aufgabe wie zuvor, verwende jedoch ein &#039;&#039;&#039;Interface&#039;&#039;&#039; anstatt eine &#039;&#039;&#039;Abstrakte Klasse&#039;&#039;&#039; für die Geometry.&lt;br /&gt;
 Welche möglichen Vorteile ergeben sich dadurch?&lt;br /&gt;
&lt;br /&gt;
[[Datei:Geometry Interface.png|mini|ohne]]&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Geometry Enhanced Version ===&lt;br /&gt;
  Zeichne zuerst für die Aufgabe ein entsprechendes Klassendiagramm (kann wiederverwendet werden)&lt;br /&gt;
&lt;br /&gt;
Erweitere das vorhergehende Beispiel um die Geometrische Form Stern und Haus vom Nikolaus. Verwende soviel Code wie möglich wieder.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Datei:Hausvomnikolaus.png|mini|none|Haus vom Nikolaus|150px]] || [[Datei:Kompass Stern.png|mini|Kompass Stern|150px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Simulationen ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Carsimulation ===&lt;br /&gt;
Erstelle eine {{JSL|Car}} &#039;&#039;&#039;Klasse&#039;&#039;&#039;. Diese enthält alle gängigen Attribute die für ein Auto benötigt werden. Zumindest sollte die &#039;&#039;&#039;Klasse&#039;&#039;&#039; folgende Attribute enthalten:&lt;br /&gt;
* Hersteller&lt;br /&gt;
* Modell&lt;br /&gt;
* kW (Leistung)&lt;br /&gt;
* Tankinhalt&lt;br /&gt;
* Antriebsart (erstelle dafür eine Enumeration &#039;&#039;Benzin&#039;&#039;, &#039;&#039;Diesel&#039;&#039;, &#039;&#039;Gas&#039;&#039;, &#039;&#039;Strom&#039;&#039;)&lt;br /&gt;
* Gewicht&lt;br /&gt;
Überlege welche Attribute du im &#039;&#039;&#039;Konstruktor&#039;&#039;&#039; als Parameter erhalten willst. Ohne welche kann eine Auto &#039;&#039;&#039;Instanz&#039;&#039;&#039; nicht existieren?&lt;br /&gt;
Erstelle nun die &#039;&#039;&#039;Methode&#039;&#039;&#039; {{JSL|drive(int kilometer)}} welche einen {{JSL|int}} zurückgibt. Diese &#039;&#039;&#039;Methode&#039;&#039;&#039; soll, wenn es der Tankinhalt zulässt, die gegebene Strecke zurücklegen. Wenn der Tank leer ist, soll nur die Strecke zurückgegeben werden, die zurückgelegt werden konnte, ansonsten die gesamte Strecke. Um den Verbrauch zu berechnen und den Tankinhalt zu reduzieren, verwende das &#039;&#039;&#039;Gewicht&#039;&#039;&#039; und die &#039;&#039;&#039;kW (Leistung)&#039;&#039;&#039; des Autos.&lt;br /&gt;
&lt;br /&gt;
Wenn der Tank leer ist, soll der Tank über eine &#039;&#039;&#039;Methode&#039;&#039;&#039; mit einer gewissen Menge an Kraftstoff aufgefüllt werden. Erstelle dazu eine entsprechende &#039;&#039;&#039;Methode&#039;&#039;&#039; und fahr weiter.&lt;br /&gt;
&lt;br /&gt;
Erstelle nun eine Carsimulation welche eine gewisse Anzahl von Autoinstanzen erstellt und diese fahren lässt und wenn nötig wieder betankt.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Wunsch:&#039;&#039;&#039; Die Methoden sollen zu ihrer eigentlichen Funktion auch eine schöne Ausgabe erstellen&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Carsimulation Extended ===&lt;br /&gt;
Erweitere das vorhergende Beispiel um die &#039;&#039;&#039;Klassen&#039;&#039;&#039;&lt;br /&gt;
* {{JSL|Engine}} (Motor)&lt;br /&gt;
* {{JSL|Tank}}&lt;br /&gt;
* {{JSL|GasStation}}&lt;br /&gt;
* {{JSL|RepairStation}}&lt;br /&gt;
Sowohl {{JSL|Tank}} und {{JSL|Motor}} sollen in {{JSL|Car}} als Attribute existieren und durch die {{JSL|RepairStation}} austauschbar sein.&lt;br /&gt;
&lt;br /&gt;
Eine {{JSL|Engine}} soll nach einer zufälligen Wahrscheinlichkeit einen Defekt haben und in der {{JSL|RepairStation}} getauscht werden. Je mehr Kilometer gefahren wurden, desto höher ist die Wahrscheinlichkeit, dass die {{JSL|Engine}} kaputt geht.&lt;br /&gt;
&lt;br /&gt;
Wenn die {{JSL|Car}} nicht die gewünschten Kilometer fährt, so ist entweder der Tank leer, oder der Motor kaputt. Erstelle &#039;&#039;&#039;Methoden&#039;&#039;&#039; der {{JSL|Car}} &#039;&#039;&#039;Klasse&#039;&#039;&#039; die den Tankinhalt und den Zustand des &#039;&#039;&#039;Motors&#039;&#039;&#039; (defekt oder ganz) zurückgeben.&lt;br /&gt;
&lt;br /&gt;
Wird die {{JSL|drive(int kilometers)}} &#039;&#039;&#039;Methode&#039;&#039;&#039; ausgeführt, so soll nun eine Methode im Motor aufgerufen werden, die diesen startet, und nach den gefahrenen Kilomtern wieder stoppt. Auch der Treibstoffverbrauch soll mit dem Motor zusammenhängen. Vielleicht ist es eine gute Idee beim Starten den Tank an den Motor zu übergeben?&lt;br /&gt;
&lt;br /&gt;
==== Erstelle folgende &#039;&#039;&#039;Subklassen&#039;&#039;&#039; von &#039;&#039;&#039;Tank&#039;&#039;&#039; ====&lt;br /&gt;
* Battery&lt;br /&gt;
* FuelTank&lt;br /&gt;
&lt;br /&gt;
 Überlege welche &#039;&#039;&#039;Methoden&#039;&#039;&#039; in der &#039;&#039;&#039;Superklasse&#039;&#039;&#039; &#039;&#039;&#039;Tank&#039;&#039;&#039; Sinn machen.&lt;br /&gt;
&lt;br /&gt;
==== Erstelle folgende &#039;&#039;&#039;Subklassen&#039;&#039;&#039; von &#039;&#039;&#039;Car&#039;&#039;&#039; ====&lt;br /&gt;
* SelfRepairingCar (hat der Motor einen Schaden, so soll dieser automatisch repariert und weitergefahren werden)&lt;br /&gt;
* AeroDynamicCar (reduziert den Treibstoffverbrauch um 50%)&lt;br /&gt;
* CrapCar (erhöht die Wahrscheinlichkeit dass der Motor kaputt geht um 50%)&lt;br /&gt;
&lt;br /&gt;
 Überlege welche &#039;&#039;&#039;Methoden&#039;&#039;&#039; in der &#039;&#039;&#039;Superklasse&#039;&#039;&#039; &#039;&#039;&#039;Car&#039;&#039;&#039; sinn machen. Eine eigene Methode in der &#039;&#039;&#039;Superklasse&#039;&#039;&#039; welche den Treibstoffverbrauch pro Kilometer ausrechnet, macht wahrscheinlich sinn. Diese kann dann in den &#039;&#039;&#039;Subklassen&#039;&#039;&#039; überschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teste deine Autosimulation ausgiebig.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Bank ===&lt;br /&gt;
Ein Bankinstitut hat verschiedene Schalter. Ein Kunde geht in ein Bankinstitut um sein Bankgeschäft zu verrichten. Zuerst geht der Kunde ins Institut und geht zum nächsten freien Schalter. Wenn der Kunde den Schalter wieder verlässt, wird der Schalter zu einer Wahrscheinlichkeit von 20% für eine Pause geschlossen (die Pause eines Schalters endet nach dem 3 weitere Kunden die Bank betreten und verlassen haben). Hat ein Schalter kein Geld mehr so muss dieser wieder aufgefüllt werden und der Schalter ist für die Dauer eines Kunden geschlossen.&lt;br /&gt;
 * Das Bankgeschäft eines Kunden ist entweder eine Einzahlung bzw. eine Auszahlung.&lt;br /&gt;
 * Kann ein Schalter eine gewisse Geldmenge nicht bedienen geht der Kunde zum nächsten Schalter und der Ursprüngliche Schalter wird aufgefüllt.&lt;br /&gt;
 * Es soll nachvollzogen werden können welcher Schalter welche Kunden bedient hat und was für ein Betrag eingezahlt oder ausgezahlt wurde (&#039;&#039;&#039;ACHTUNG&#039;&#039;&#039; keine {{JSL|HashMap}}).&lt;br /&gt;
&lt;br /&gt;
# Erstelle ein UML Diagramm für dein Banksystem (Dia)&lt;br /&gt;
# Erstelle die notwendingen Klassen und Methoden.&lt;br /&gt;
# Erstelle nun eine Bank mit einigen Schaltern und erstelle weiters einige Kunden.&lt;br /&gt;
# Simuliere nun das Bankgeschäft. Die Kunden gehen der reihe nach in die Bank. Am Ende der Simulation soll für jeden Schalter eine Statistik ausgegeben werden (welche Kunden waren dort, welche Beträge wurden verarbeitet).&lt;br /&gt;
# Erstelle Unit Tests für deine Banksimulation&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Filesystem traversal ===&lt;br /&gt;
 Das wurde schonmal gemacht, einfach nochmal machen, das schadet nicht :-)&lt;br /&gt;
Erstelle eine Methode welche durch das Dateisystem ab einem gegebenen Pfad navigiert (Ob der Pfad als {{JSL|String}} oder {{JSL|File}} übergeben wird ist egal). Wird der Pfad nicht gefunden, so soll eine {{JSL|FileNotFoundException}} geworfen werden. Die Navigation soll dabei &#039;&#039;&#039;Rekursiv&#039;&#039;&#039; erfolgen. Gib den Pfad mit entsprechender Einrückung aus.&lt;br /&gt;
 &#039;&#039;&#039;Tip zur Rekursion:&#039;&#039;&#039; Iteriere in einer Methode durch alle Kinder einer Datei. Handelt es sich um einen Ordner so rufe für jedes Kind dieses Ordners die Methode wieder auf und erhöhe die Einrückung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe (muss nicht genau so aussehen):&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
├── otherPackageInvocationTest&lt;br /&gt;
│   └── Test.java&lt;br /&gt;
├── week1&lt;br /&gt;
│   ├── tag3&lt;br /&gt;
│   │   ├── Aufgabe1.java&lt;br /&gt;
│   │   ├── Aufgabe2.java&lt;br /&gt;
│   │   └── Loops.java&lt;br /&gt;
│   ├── tag4&lt;br /&gt;
│   │   ├── Christbaum2.java&lt;br /&gt;
│   │   ├── Christbaum.java&lt;br /&gt;
│   │   ├── Loops.java&lt;br /&gt;
│   │   ├── Traingle2.java&lt;br /&gt;
│   │   └── Triangle.java&lt;br /&gt;
│   ├── tag5&lt;br /&gt;
│   │   ├── Circle2.java&lt;br /&gt;
│   │   ├── Circle3.java&lt;br /&gt;
│   │   ├── Circle.java&lt;br /&gt;
│   │   └── Methods.java&lt;br /&gt;
│   └── tag5a&lt;br /&gt;
│       └── UseMethods.java&lt;br /&gt;
├── week2&lt;br /&gt;
│   ├── day3&lt;br /&gt;
│   │   ├── Calendar.java&lt;br /&gt;
│   │   ├── LogicPuzzle.java&lt;br /&gt;
│   │   ├── Recursion2.java&lt;br /&gt;
│   │   └── Recursion.java&lt;br /&gt;
│   └── day4&lt;br /&gt;
│       ├── Menu.java&lt;br /&gt;
│       └── UserInput.java&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Filesystem traversal usefull ===&lt;br /&gt;
Erstelle eine Methode welche durch das Dateisystem ab einem gegebenen Pfad navigiert. Die Methode erhält weiters eine Klasse {{JSL|FileReceiver}}. Diese Klasse hat eine Methode {{JSL|onFileReceived(int depth, File file)}} welche zur Verarbeitung jeder einzelnen Datei, bzw. jedes einzelnen Ordners aufgerufen wird. Erstelle verschiedene weitere Klassen die von {{JSL|FileReceiver}} erben und {{JSL|onFileReceived(int depth, File file)}} überschreiben und folgende Aufgaben erfüllen sollen:&lt;br /&gt;
* Größe aller Dateien berechnen&lt;br /&gt;
* Anzahl der Dateien mit einer bestimmten Endung zählen&lt;br /&gt;
* Alle Dateiendungen Zählen. Tip.: {{JSL|HashMap}}&lt;br /&gt;
* Die größe jedes Ordners ermitteln. Tip.: Hier wird die &#039;&#039;&#039;depth&#039;&#039;&#039; und ein Stapel benötigt ({{JSL|List}}, oder {{JSL|Stack}}).&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Filesystem traversal usefull &amp;amp; extended ===&lt;br /&gt;
Wie in der vorhergehenden Aufgabe, jedoch soll nicht nur ein {{JSL|FileReceiver}} übergeben werden können, sondern eine {{JSL|List}} von {{JSL|FileReceiver}}.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: JUnit ===&lt;br /&gt;
Wähle drei Beispiele aus deiner Sammlung und teste diese mit &#039;&#039;&#039;JUnit&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Geometry ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Abstrakte Klasse&#039;&#039;&#039; {{JSL|Geometry}}. Diese enthält folgende &#039;&#039;&#039;Methoden&#039;&#039;&#039;:&lt;br /&gt;
* {{JSL|getCircumference()}} und gibt einen {{JSL|double}} zurück&lt;br /&gt;
* {{JSL|getArea()}} und gibt einen {{JSL|double}} zurück&lt;br /&gt;
&lt;br /&gt;
Erstelle nun einige &#039;&#039;&#039;Klassen&#039;&#039;&#039; die von {{JSL|Geometry}} erben (Circle, Square, Rectangle, Triangle,...). Jede &#039;&#039;&#039;Klasse&#039;&#039;&#039; soll in ihrem Konstruktor die entsprechenden Werte erhalten.&lt;br /&gt;
&lt;br /&gt;
Erstelle nun verschiedene &#039;&#039;&#039;Instanzen&#039;&#039;&#039; von {{JSL|Geometry}}, speichere diese in einer {{JSL|List}}. Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die den Gesamtumfang und die Gesamtfläche aller {{JSL|Geometry}} &#039;&#039;&#039;Objekte&#039;&#039;&#039; in der {{JSL|List}} ausgibt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teste deine Implementierung ausgibig&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Verhalten ===&lt;br /&gt;
Wie in [[Protokoll#19._November_2021|Protokoll 19.11]] gezeigt, soll nun das &#039;&#039;&#039;Schwimmverhalten&#039;&#039;&#039; implementiert werden. Erstelle endweder die Bestehende Klassenhierarchie als Übung in deinem eigenen Paket, oder kopiere diese.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Graph === &lt;br /&gt;
&lt;br /&gt;
Ein Graph ist eine Datenstruktur die aus mehreren Knoten (Nodes besteht). Eine Node kann mehrere Nodes als Nachbarn haben, das heißt, sie hat eine Verbindung zu diesen Nachbarn.&lt;br /&gt;
[[Datei:Graph.png|mini|Ein einfacher Graph|150px]]&lt;br /&gt;
&lt;br /&gt;
* Erstelle eine Datenstruktur für die &#039;&#039;&#039;Node&#039;&#039;&#039; mit (X/Y Koordinaten), verwende für die Nachbarn eine {{JSL|List}} in der jeweiligen &#039;&#039;&#039;Node&#039;&#039;&#039;&lt;br /&gt;
* Erstelle weiters eine Datenstruktur für den Graphen, welche eine {{JSL|List}} von &#039;&#039;&#039;Nodes&#039;&#039;&#039; enthält&lt;br /&gt;
* Erstelle aus den schwarzen Pixeln des folgenden Labyrinths einen Graphen&lt;br /&gt;
&lt;br /&gt;
[[Datei:Labyrinth.png|150px|mini|none|Ein Labyrinth]]&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Dijkstra ===&lt;br /&gt;
&lt;br /&gt;
Zeige deinen Graphen in einem {{JSL|JPanel}} an. Es soll nun der Start und das Ziel angeklickt werden können. Finde mittels Dijkstra Algorithmus[https://de.wikipedia.org/wiki/Dijkstra-Algorithmus] den kürzesten Weg vom Start zum Ziel. Illustriere dabei alle durchwanderten Knoten.&lt;br /&gt;
&lt;br /&gt;
=== Schule: Volksschule Rotkreuz (Lustenau) ===&lt;br /&gt;
&lt;br /&gt;
Es gibt eine &#039;&#039;&#039;Schule&#039;&#039;&#039;. In der Schule sind verschiedene Räume, so wie &#039;&#039;&#039;KlassenRaum&#039;&#039;&#039;, &#039;&#039;&#039;SportHalle&#039;&#039;&#039;, &#039;&#039;&#039;Handwerk &amp;amp; Technik Raum&#039;&#039;&#039;. Die Schule hat ein &#039;&#039;&#039;Schuldirektor&#039;&#039;&#039; und viele &#039;&#039;&#039;Lehrer&#039;&#039;&#039;.  Die &#039;&#039;&#039;Schüler&#039;&#039;&#039;, die die Schule besuchen, gehören zu einer &#039;&#039;&#039;SchuleKlasse&#039;&#039;&#039;. Jede SchuleKlasse hat einen fixen Tagesablauf, die im &#039;&#039;&#039;Kursplan&#039;&#039;&#039; festgelegt ist. Der Kursplan beinhaltet, das Thema, den Lehrer und den Raum, wo es stattfindet.&lt;br /&gt;
&lt;br /&gt;
==== Simulation 0.1 ====&lt;br /&gt;
&lt;br /&gt;
Morgen kommen alle Lehrer und alle Schüler in die Schule. Die Schüler, die zu spät erscheinen, müssen zu dem Direktor.&lt;br /&gt;
&lt;br /&gt;
==== Simulation 0.2 ====&lt;br /&gt;
&lt;br /&gt;
Die Schüler haben einen fixen Tagesablauf. 45 Minuten Stunden, 15 Minuten Pause, 45 Minuten Stunde, ....&lt;br /&gt;
Am Beginn jeder Unterrichtsstunde gehen die Schüler in den entsprechenden Kursraum, wie es im Stundenplan vorgesehen ist.&lt;br /&gt;
&lt;br /&gt;
==== Simulation 0.3 ====&lt;br /&gt;
&lt;br /&gt;
Die Lehrer gehen in den Kursraum, wo sie gebraucht sind. Nach der Stunde kommen sie in dem Lehrerzimmer zurück. Falls sie keine Kursstunde haben, bleiben sie im Lehrerzimmer und korrigieren Hausaufgaben und Tests.&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Objekt_Orientierte_Programmierung_%C3%9Cbungen&amp;diff=3710</id>
		<title>DCV 2024 09/Objekt Orientierte Programmierung Übungen</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Objekt_Orientierte_Programmierung_%C3%9Cbungen&amp;diff=3710"/>
		<updated>2024-11-07T08:25:54Z</updated>

		<summary type="html">&lt;p&gt;Sandro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im folgenden sollen diese Begriffe verstanden und angewandt werden. Diese sind nicht chronologisch geordnet.&lt;br /&gt;
 &#039;&#039;&#039;Tip:&#039;&#039;&#039; Für weitere Informationen: [[Objektorientierte_Programmierung|Objektorientierte Programmierung]]&lt;br /&gt;
* Klasse&lt;br /&gt;
** Instanz- vs. Klassenmethode&lt;br /&gt;
** Instanz- vs. Klassenattribut&lt;br /&gt;
** Innere Klassen (statisch vs. nicht statisch)&lt;br /&gt;
* Enumeration (enum)&lt;br /&gt;
* Collections (Liste, Set, Map)&lt;br /&gt;
* Vererbung&lt;br /&gt;
* Abstrakte Klasse&lt;br /&gt;
* Interface&lt;br /&gt;
* Polymorphismus&lt;br /&gt;
* Beziehungen&lt;br /&gt;
** Has-A vs. Is-A&lt;br /&gt;
** Implementierung von Interfaces&lt;br /&gt;
* Generics&lt;br /&gt;
* Designpatterns&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Person ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Klasse&#039;&#039;&#039; welche die typischen Werte eines Menschen speichern kann.&lt;br /&gt;
* Größe&lt;br /&gt;
* Alter&lt;br /&gt;
* Name&lt;br /&gt;
* Gewicht&lt;br /&gt;
Erstelle weiters eine {{JSL|toString()}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und erstelle einen schönen {{JSL|String}} mit den gegebenen Werten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Türkische Serie ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Klasse&#039;&#039;&#039; welche die typischen Werte einer TV-Serie speichern kann.&lt;br /&gt;
* Title&lt;br /&gt;
* Genre&lt;br /&gt;
* Jahr&lt;br /&gt;
* Originalsprache&lt;br /&gt;
&lt;br /&gt;
Erstelle weiters eine {{JSL|toString()}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und erstelle einen schönen {{JSL|String}} mit den gegebenen Werten.&lt;br /&gt;
&lt;br /&gt;
Erstelle weiterhin 2-3 Objekten, als typische türkische Serien.&lt;br /&gt;
&lt;br /&gt;
Erweitere deine &#039;&#039;&#039;Klasse&#039;&#039;&#039; mit den Attributen&lt;br /&gt;
* Regisseur&lt;br /&gt;
* Produzent&lt;br /&gt;
&lt;br /&gt;
Verwende hierfür die bereits bestehende Klasse &#039;&#039;&#039;Person&#039;&#039;&#039;, aus dem vorherigen Beispiel.&lt;br /&gt;
&lt;br /&gt;
Erstelle &#039;&#039;&#039;Funktionen&#039;&#039;&#039; die sowohl diese Personen zu der Serie hinzufügen als auch wieder löschen kann!&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Datenklasse ===&lt;br /&gt;
Es soll eine &#039;&#039;&#039;Methode&#039;&#039;&#039; erstellt werden, welche das &#039;&#039;&#039;kleinste&#039;&#039;&#039; und das &#039;&#039;&#039;größte Element&#039;&#039;&#039; sowie den &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; eines {{JSL|int[]}} ermittelt und zurückgibt. Alle  ermittelten Werten sollen in einem Datenobjekt zurückgegeben werden. Erstelle dazu eine Datenklasse welche die entsprechenden Werte enthält. Teste diese &#039;&#039;&#039;Methode&#039;&#039;&#039; ausgiebig mit verschiedenen {{JSL|int[]}}, verwende auch ein zufallsgeneriertes {{JSL|int[]}} mit negativen und positiven Werten.&lt;br /&gt;
* Erstelle die Datenklasse mit einem Sinnvollen Klassennamen und entsprechenden &#039;&#039;&#039;Attributen&#039;&#039;&#039;. Achte hierbei auch auf die Korrekte Sichtbarkeit&lt;br /&gt;
* Erstelle in in der Datenklasse einen &#039;&#039;&#039;Konstruktor&#039;&#039;&#039; welcher alle Werte entgegennimmt und erstelle &#039;&#039;&#039;getter&#039;&#039;&#039; für alle Werte&lt;br /&gt;
* Überschreibe die {{JSL|toString()}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und erstelle einen schönen {{JSL|String}} mit den gegebenen Werten.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Fotoapparat ===&lt;br /&gt;
Erstelle eine Fotoapparat &#039;&#039;&#039;Klasse&#039;&#039;&#039;.&lt;br /&gt;
* Mit zumindest folgenden Attributen (es dürfen auch gerne mehr sein), &#039;&#039;&#039;Brennweite min/max&#039;&#039;&#039;, &#039;&#039;&#039;Model&#039;&#039;&#039;, &#039;&#039;&#039;Hersteller&#039;&#039;&#039; und &#039;&#039;&#039;Megapixel&#039;&#039;&#039;.&lt;br /&gt;
* Erstelle für die Attribute &#039;&#039;&#039;getter&#039;&#039;&#039; und &#039;&#039;&#039;setter&#039;&#039;&#039;&lt;br /&gt;
* Erstelle weiters die &#039;&#039;&#039;Methode&#039;&#039;&#039; {{JSL|takePhoto()}}, die ein Foto schießt (Mach einfach eine nette Ausgabe)&lt;br /&gt;
* Überschreibe die {{JSL|toString()}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und gib die relevanten Daten als {{JSL|String}} zurück&lt;br /&gt;
&lt;br /&gt;
Erstelle verschiedene &#039;&#039;&#039;Instanzen&#039;&#039;&#039; der Fotoapparat &#039;&#039;&#039;Klasse&#039;&#039;&#039; und Teste diese ausgiebig.&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Bonusaufgabe: Fotoapparat &amp;amp; Objektiv &amp;amp; Speicherkarte&#039;&#039;&#039; ===&lt;br /&gt;
Erweitere das vorhergehende Beispiel um die Klassen Objektiv und Speicherkarte. Die Brennweite der Kamera fällt demnach weg.&lt;br /&gt;
Das Objektiv und die Speicherkarte sollen getauscht werden können.&lt;br /&gt;
Erstelle Methoden um zu erfragen wieviele Fotos bereits aufgenommen wurden und wieviel Speicher noch frei ist. Für die Berechnung speicherplatz pro bild, kann ein wert von 0.3mb pro Megapixel angenommen werden.[https://www.mvorganizing.org/what-is-the-average-size-of-a-jpg/#What_is_the_average_size_of_a_JPG]&lt;br /&gt;
&lt;br /&gt;
== Handhabung von dynamischen Datenstrukturen (ArrayList, Vector, LinkedList, HashSet, HashMap) ==&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Vector erstellen ===&lt;br /&gt;
Erstelle einen Vector mit 20 Zufallszahlen zwischen 0 und 99.&lt;br /&gt;
&lt;br /&gt;
Gib den Vector mit {{JSL|System.out.println()}} aus.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Vector erstellen ===&lt;br /&gt;
Erstelle einen Vector mit 20 Zufallszahlen zwischen 0 und 99.&lt;br /&gt;
&lt;br /&gt;
Erstelle jeweils eine Funktionen für:&lt;br /&gt;
# Zählen der geraden Zahlen&lt;br /&gt;
# Suche nach der kleinsten Zahl&lt;br /&gt;
# Suche nach der größten Zahl&lt;br /&gt;
# Sortiere die Elementen absteigend&lt;br /&gt;
# Lösche alle Ungerade Zahlen&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Zwei Vectoren zusammenführen ===&lt;br /&gt;
Es gibt zwei Vectoren mit 20 Elementen, die nach Größe sortiert sind.&lt;br /&gt;
&lt;br /&gt;
Erstelle einen dritten Vector, in dem du die Elemente der vorhergehenden Vectoren zusammenfügst, der neu erstellte Vector soll immer noch sortiert sein.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Person 2.0 ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Klasse&#039;&#039;&#039; welche die typischen Werte eines Menschen speichern kann.&lt;br /&gt;
* Größe&lt;br /&gt;
* Alter&lt;br /&gt;
* Name&lt;br /&gt;
* Gewicht&lt;br /&gt;
Erstelle weiters eine Methode welche eine {{JSL|List}} von Personen erhält und bezüglich &#039;&#039;&#039;Größe&#039;&#039;&#039;, &#039;&#039;&#039;Alter&#039;&#039;&#039;, &#039;&#039;&#039;Gewicht&#039;&#039;&#039;, das &#039;&#039;&#039;kleinste&#039;&#039;&#039; und das &#039;&#039;&#039;größte Element&#039;&#039;&#039; sowie den &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; berechnet und wie in der vorhergehenden Aufgabe in einer eigenen Klasse zurückgibt.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Person Sortiert ===&lt;br /&gt;
Verwende die erstellte &#039;&#039;&#039;Klasse&#039;&#039;&#039; aus dem vorhergehenden Beispiel und erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche eine {{JSL|List}} von Personen nach entweder nach &#039;&#039;&#039;Größe&#039;&#039;&#039;, &#039;&#039;&#039;Alter&#039;&#039;&#039;, &#039;&#039;&#039;Gewicht&#039;&#039;&#039;, oder &#039;&#039;&#039;Name&#039;&#039;&#039; sortiert. Hierfür kann ein &#039;&#039;&#039;enum&#039;&#039;&#039; verwendet werden, oder auch einfach ein {{JSL|int}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Türkische Serie 2.0 ===&lt;br /&gt;
Erweitere die bestehende &#039;&#039;&#039;Klasse&#039;&#039;&#039; &amp;quot;Serie&amp;quot; mit neuen Attributen.&lt;br /&gt;
* Title&lt;br /&gt;
* Genre&lt;br /&gt;
* Jahr&lt;br /&gt;
* Originalsprache&lt;br /&gt;
* Regisseur&lt;br /&gt;
* Direktor&lt;br /&gt;
NEU!&lt;br /&gt;
* ScoutListe (Liste mit Vector)&lt;br /&gt;
* CastListe (Liste mit Vector)&lt;br /&gt;
&lt;br /&gt;
Erstelle mit Hilfe einer neuen Klasse (Schauspieler) ein Objekt, ähnlich wie eine Person, mit sinnvollen Attribute.&lt;br /&gt;
* Vorname&lt;br /&gt;
* Nachname&lt;br /&gt;
* Alter&lt;br /&gt;
* Gage&lt;br /&gt;
&lt;br /&gt;
Erstelle dann in der &#039;&#039;&#039;Klasse&#039;&#039;&#039; &amp;quot;Serie&amp;quot; Funktionen die Schauspieler(Objekt) zu einer Liste hinzufügen und löschen können.&lt;br /&gt;
Erstelle in der Main, mind. 5 Schauspieler und füge diese dann zu der ScoutingListe dazu.&lt;br /&gt;
Erstelle ein Methode, die Schauspieler auf die CastingListe bringt und dabei aber auch von der ScoutingListe entfernt!&lt;br /&gt;
&lt;br /&gt;
Erweitere dann die Simulation der Serie.&lt;br /&gt;
* Es müssen mindestens 2 Schauspieler angeheuert sein, um die Produktion zu starten.&lt;br /&gt;
* Erstelle Events, wo du Schauspieler aus dem aktuellen Cast löschst und/oder neue dazu fügst.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zoo-Simulation ==&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Zoo ===&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Main&#039;&#039;&#039; Klasse, die zuständig ist für&lt;br /&gt;
* die Initialisierung des Zoos und aller seiner Bestandteile&lt;br /&gt;
* Initiieren des nächsten Simulationsschrittes&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Zoo&#039;&#039;&#039; Klasse mit &#039;&#039;Name&#039;&#039; und &#039;&#039;Gründungsjahr&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Gehege&#039;&#039;&#039; Klasse mit &#039;&#039;Name&#039;&#039; der als Beschreibung des Geheges dient.&lt;br /&gt;
&lt;br /&gt;
Erweitere deinen Zoo, sodass Gehege dynamisch hinzugefügt und entfernt werden können.&lt;br /&gt;
&lt;br /&gt;
Erweitere dein Programm um eine Funktion, die die Struktur des Zoos ausgibt. Der erwartete Ausdruck sieht folgendermaßen aus.&lt;br /&gt;
&lt;br /&gt;
{{BML|code= &lt;br /&gt;
├── Zoo: Tiergarten Dornbirn, gegründet 2022&lt;br /&gt;
│   ├── Gehege: Alpenwiese&lt;br /&gt;
│   ├── Gehege: Ried&lt;br /&gt;
│   ├── Gehege: Terrarium (warm)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Tiere ===&lt;br /&gt;
&lt;br /&gt;
Erweitere dein Zooprogramm mit Tiere.&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Tier&#039;&#039;&#039; Klasse mit einem &#039;&#039;Name&#039;&#039; und einer &#039;&#039;Gattung&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Erweitere die Gehege, um Tiere dynamisch zufügen und entfernen zu können.&lt;br /&gt;
&lt;br /&gt;
Erweitere den Struktur-Ausdruck von Zoo, dass es auch die Tiere ausdrückt.&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
├── Zoo: Tiergarten Dornbirn, gegründet 2022&lt;br /&gt;
│   ├── Gehege: Alpenwiese&lt;br /&gt;
│       ├── Rijska, Kuh&lt;br /&gt;
│   ├── Gehege: Ried&lt;br /&gt;
│       ├── Garmond, Storch&lt;br /&gt;
│       ├── Hugo, Storch&lt;br /&gt;
│       ├── Idaxis, Storch&lt;br /&gt;
│   ├── Gehege: Terrarium (warm)&lt;br /&gt;
│       ├── (leer)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Bonusaufgabe: Tierfutter&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Erweitere dein Zooprogramm mit Futter-Bedarfsanalyse.&lt;br /&gt;
&lt;br /&gt;
Erstelle eine Klasse für &#039;&#039;&#039;Futter&#039;&#039;&#039; mit einen &#039;&#039;Name&#039;&#039;, &#039;&#039;Einheit&#039;&#039; und &#039;&#039;Einheitspreis&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Jedes Tier hat einen Futterbedarf, die beinhaltet den &#039;&#039;Futter&#039;&#039; und eine &#039;&#039;Menge&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstelle eine Statistik, was den Futterbedarf von Zoo ist, und wie viel die Tagesversorgung sich kostet. Für diese Aufgabe kann man {{JSL|HashMap}} gut brauchen.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Pfleger ===&lt;br /&gt;
&lt;br /&gt;
Erweitere dein Zooprogramm um Tierpfleger.&lt;br /&gt;
&lt;br /&gt;
Erstelle eine Klasse &#039;&#039;&#039;Pfleger&#039;&#039;&#039; mit einem &#039;&#039;Namen&#039;&#039; und mit einer dynamischen Liste von &#039;&#039;Gehegen&#039;&#039;, wofür der Pfleger zuständig ist. Erweitere die Klasse &#039;&#039;Zoo&#039;&#039;, dass die eine Liste der &#039;&#039;Pfleger&#039;&#039; beinhaltet.&lt;br /&gt;
&lt;br /&gt;
Erweitere den Struktur-Ausdruck um die neu eingeführten Pfleger.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Simulation 0.1 ===&lt;br /&gt;
&lt;br /&gt;
Erweitere das Programm mit einer Tagessimulation.&lt;br /&gt;
&lt;br /&gt;
# An jedem Tag gehen die Pfleger los und kümmern sich um die Gehege in deren Zuständigkeitsbereich.&lt;br /&gt;
## Falls ein Pfleger ein Gehege findet, welche schon bearbeitet wurde, überspringt er das Gehege und nimmt das nächste&lt;br /&gt;
# Wenn ein Pfleger zu einem Gehege kommt, wird er zuerst die Tiere füttern&lt;br /&gt;
# Nach dem Füttern wird er ein Zufälliges Tier länger beobachten.&lt;br /&gt;
## Mit einer Erweiterung der Pfleger mit den &#039;&#039;Lieblings-Tier-Gattung&#039;&#039;, kann der Pfleger das Tier bewundern.&lt;br /&gt;
&lt;br /&gt;
Lass auf der Konsole ausdrucken, wer-was macht...&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Bonusaufgabe: Simulation 0.2&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Erweitere die Simulation&lt;br /&gt;
&lt;br /&gt;
# Jedes Tier hat eine &#039;&#039;Gesundheit&#039;&#039;, ein &#039;&#039;MaxGesundheit&#039;&#039; und einen &#039;&#039;Biss&#039;&#039;&lt;br /&gt;
# Jedes Tier versucht mit 40% Wahrscheinlichkeit, ein Nachbar von ihm aus dem gleichen Gehege zu beißen.&lt;br /&gt;
# Falls ein Tier gebissen wird, wird seine Gesundheit mit dem Biss von Angreifer reduziert&lt;br /&gt;
# &amp;quot;toten Tiere&amp;quot; beißen nicht.&lt;br /&gt;
# Am Ende des Tages werden &amp;quot;toten Tiere&amp;quot; aus dem Gehege entfernt&lt;br /&gt;
&lt;br /&gt;
Lass auf der Konsole ausdrucken, wer-was macht...&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Bonusaufgabe: Simulation 0.3&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Erweitere den Zoo mit Tierärzte, die die verletzte Tiere behandeln und heilen. Erstelle eine Klasse &#039;&#039;&#039;TierArzt&#039;&#039;&#039; mit einem &#039;&#039;Name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Erweitere die Simulation&lt;br /&gt;
&lt;br /&gt;
# Jeder Tierarzt wird an jedem Tag - genau 1 Tier behandeln&lt;br /&gt;
# Der Tierarzt wählt das Tier mit der geringsten relativen Gesundheit&lt;br /&gt;
## Zum Beispiel: 10 Gesundheit mit 100 Maximum ist 10% und so dringender als 1 Gesundheit aus 2 ergo 50%.&lt;br /&gt;
# Der Tierarzt wird zufällig zwischen 30 und 100% der Gesundheit wiederherstellen&lt;br /&gt;
# Kein Tier kann über die maximale Gesundheit geboostet werden.&lt;br /&gt;
&lt;br /&gt;
Lass auf der Konsole ausdrucken, wer-was macht...&lt;br /&gt;
&lt;br /&gt;
== Übungen Zur Modellierung ==&lt;br /&gt;
&lt;br /&gt;
Die folgenden Übungen haben das Ziel, schnell ein Model zu erfassen, das die folgenden Aspekte beinhaltet:&lt;br /&gt;
# Klassen&lt;br /&gt;
# Kompositionen&lt;br /&gt;
# Vererbungen&lt;br /&gt;
# Methoden / Funktionen&lt;br /&gt;
# Variablen / Attribute&lt;br /&gt;
&lt;br /&gt;
[[Datei:Uml-class-diagram-cheat-sheet.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine ausführliche Erklärung dazu findet sich beim Klick auf diesen Verweis: [https://ccwiki.digitalcampusvorarlberg.at/index.php/UML_Klassendiagramm].&lt;br /&gt;
&lt;br /&gt;
=== Schwarzwald Klinik ===&lt;br /&gt;
&lt;br /&gt;
Es gibt ein &#039;&#039;&#039;Krankenhaus&#039;&#039;&#039; mit unterschiedlichen &#039;&#039;&#039;Abteilungen&#039;&#039;&#039;. Manche Abteilungen sind &#039;&#039;&#039;Ambulanz&#039;&#039;&#039;en anderen sind &#039;&#039;&#039;Station&#039;&#039;&#039;en. Ambulanzen haben eine Öffnungszeit sowie einen Warteraum mit einer definierten Anzahl von Plätzen. Stationen beinhalten &#039;&#039;&#039;Zimmer&#039;&#039;&#039; in denen sich &#039;&#039;&#039;Betten&#039;&#039;&#039; befinden.&lt;br /&gt;
Wenn ein Patient ins Krankenhaus kommt, besucht dieser entsprechend seiner Erkrankung eine Ambulanz. Falls der Fall schwerwiegender ist, muss er in einer Station aufgenommen werden. Patienten werden untersucht, behandelt und eventuell gepflegt. Aus der Ambulanzen dürfen die Patienten nach kurzer Zeit wieder nach Hause gehen. Patienten die in Stationen behandelt werden, müssen solange da bleiben, bis sie vollständig geheilt sind.&lt;br /&gt;
&lt;br /&gt;
=== Restaurant &#039;&#039;Dolce Vita&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Es gibt ein &#039;&#039;&#039;Restaurant&#039;&#039;&#039;, das aus mehreren Räumen besteht. Jeder &#039;&#039;&#039;Raum&#039;&#039;&#039; hat einen zuständigen &#039;&#039;&#039;Kellner&#039;&#039;&#039;. In jedem &#039;&#039;&#039;Raum&#039;&#039;&#039; befinden sich unterschiedliche Tische. Manche sind groß, andere sind winzig klein. Wenn eine &#039;&#039;&#039;Gruppe&#039;&#039;&#039; eintrifft, werden sie vom &#039;&#039;&#039;Hauptkellner&#039;&#039;&#039; begrüßt. Der Hauptkellner führt sie zu einem Tisch und übergibt die Gruppe an den im jeweiligen Raum zuständigen Kellner. Die Gruppe der Gäste bekommt eine &#039;&#039;&#039;Speisekarte&#039;&#039;&#039; mit den Speisen und Getränken. Der Kellner nimmt die Bestellungen auf und serviert diese anschließend. Nach dem Essen fragt die Gruppe nach der &#039;&#039;&#039;Rechnung&#039;&#039;&#039; und bezahlt diese.&lt;br /&gt;
&lt;br /&gt;
Am Ende des Tages macht der Hauptkellner eine Gesamtabrechnung und eine Analyse:&lt;br /&gt;
* Welcher Kellner hat die meisten Gäste bedient?&lt;br /&gt;
* Welcher Kellner hat den Höchsten Umsatz generiert?&lt;br /&gt;
* Welcher Kellner hat den größten Gewinnn erwirtschaftet? (Dazu braucht man die Selbstkosten pro Speise/Getränk)&lt;br /&gt;
* Was war die beliebteste Speise?&lt;br /&gt;
* Was war das beliebteste Getränk?&lt;br /&gt;
&lt;br /&gt;
=== Museum: Neue Pinakothek ===&lt;br /&gt;
&lt;br /&gt;
Ein &#039;&#039;&#039;Museum&#039;&#039;&#039; besteht aus Gängen und Ausstellungsräume. Jeder &#039;&#039;&#039;Gang&#039;&#039;&#039; und &#039;&#039;&#039;Ausstellungsraum&#039;&#039;&#039; kennt über die benachbarten Räume. In jedem Ausstellungsraum sind &#039;&#039;&#039;Kunststücke&#039;&#039;&#039; ausgestellt. Ein Kunststück kann ein Zeichen, Gemälde, Statue, oder ein Kunstobjekt sein.&lt;br /&gt;
Es gibt einen besonderen Gang im Museum, der als Eingang für Gäste dient. Ab dem Zeitpunkt der Öffnung dürfen Gäste ins Museum kommen. Ein Gast in einem Gang wählt einen zufälligen Raum, den er betritt. Falls sich ein Gast in einem Ausstellungsraum befindet, kann er ein zufälliges Kunststück beobachten oder in den nächsten Raum gehen. Falls ein Gast nach einer Zeit müde wird, geht er nach Hause. Zwischen den Gästen sind einige mit bösen Absichten. Ein &#039;&#039;&#039;Dieb&#039;&#039;&#039; stiehlt den beobachteten Gegenstand, falls er sich allein in einem Raum befindet. Um die Diebstähle zu verhindern sind einige &#039;&#039;&#039;Wächter&#039;&#039;&#039; im Museum unterwegs. Die Wächter beobachten keine Kunstobjekte, sondern sie versuchen sich in Räumen zu befinden in denen auch anderen Gäste präsent sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Geometry ===&lt;br /&gt;
 Zeichne zuerst für die Aufgabe ein entsprechendes Klassendiagramm&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Abstrakte Klasse&#039;&#039;&#039; {{JSL|Geometry}}. Diese enthält folgende &#039;&#039;&#039;Methoden&#039;&#039;&#039;:&lt;br /&gt;
* {{JSL|getCircumference()}} und gibt einen {{JSL|double}} zurück&lt;br /&gt;
* {{JSL|getArea()}} und gibt einen {{JSL|double}} zurück&lt;br /&gt;
&lt;br /&gt;
Erstelle nun einige &#039;&#039;&#039;Klassen&#039;&#039;&#039; die von {{JSL|Geometry}} erben (Circle, Square, Rectangle, Triangle,...). Jede &#039;&#039;&#039;Klasse&#039;&#039;&#039; soll in ihrem Konstruktor die entsprechenden Werte erhalten.&lt;br /&gt;
&lt;br /&gt;
Erstelle nun verschiedene &#039;&#039;&#039;Instanzen&#039;&#039;&#039; von {{JSL|Geometry}}, speichere diese in einer {{JSL|List}}. Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die den Gesamtumfang und die Gesamtfläche aller {{JSL|Geometry}} &#039;&#039;&#039;Objekte&#039;&#039;&#039; in der {{JSL|List}} ausgibt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teste deine Implementierung ausgiebig&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Datei:Geometry.png|mini|ohne]]&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Geometry Interface ===&lt;br /&gt;
Gleiche Aufgabe wie zuvor, verwende jedoch ein &#039;&#039;&#039;Interface&#039;&#039;&#039; anstatt eine &#039;&#039;&#039;Abstrakte Klasse&#039;&#039;&#039; für die Geometry.&lt;br /&gt;
 Welche möglichen Vorteile ergeben sich dadurch?&lt;br /&gt;
&lt;br /&gt;
[[Datei:Geometry Interface.png|mini|ohne]]&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Geometry Enhanced Version ===&lt;br /&gt;
  Zeichne zuerst für die Aufgabe ein entsprechendes Klassendiagramm (kann wiederverwendet werden)&lt;br /&gt;
&lt;br /&gt;
Erweitere das vorhergehende Beispiel um die Geometrische Form Stern und Haus vom Nikolaus. Verwende soviel Code wie möglich wieder.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Datei:Hausvomnikolaus.png|mini|none|Haus vom Nikolaus|150px]] || [[Datei:Kompass Stern.png|mini|Kompass Stern|150px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Simulationen ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Carsimulation ===&lt;br /&gt;
Erstelle eine {{JSL|Car}} &#039;&#039;&#039;Klasse&#039;&#039;&#039;. Diese enthält alle gängigen Attribute die für ein Auto benötigt werden. Zumindest sollte die &#039;&#039;&#039;Klasse&#039;&#039;&#039; folgende Attribute enthalten:&lt;br /&gt;
* Hersteller&lt;br /&gt;
* Modell&lt;br /&gt;
* kW (Leistung)&lt;br /&gt;
* Tankinhalt&lt;br /&gt;
* Antriebsart (erstelle dafür eine Enumeration &#039;&#039;Benzin&#039;&#039;, &#039;&#039;Diesel&#039;&#039;, &#039;&#039;Gas&#039;&#039;, &#039;&#039;Strom&#039;&#039;)&lt;br /&gt;
* Gewicht&lt;br /&gt;
Überlege welche Attribute du im &#039;&#039;&#039;Konstruktor&#039;&#039;&#039; als Parameter erhalten willst. Ohne welche kann eine Auto &#039;&#039;&#039;Instanz&#039;&#039;&#039; nicht existieren?&lt;br /&gt;
Erstelle nun die &#039;&#039;&#039;Methode&#039;&#039;&#039; {{JSL|drive(int kilometer)}} welche einen {{JSL|int}} zurückgibt. Diese &#039;&#039;&#039;Methode&#039;&#039;&#039; soll, wenn es der Tankinhalt zulässt, die gegebene Strecke zurücklegen. Wenn der Tank leer ist, soll nur die Strecke zurückgegeben werden, die zurückgelegt werden konnte, ansonsten die gesamte Strecke. Um den Verbrauch zu berechnen und den Tankinhalt zu reduzieren, verwende das &#039;&#039;&#039;Gewicht&#039;&#039;&#039; und die &#039;&#039;&#039;kW (Leistung)&#039;&#039;&#039; des Autos.&lt;br /&gt;
&lt;br /&gt;
Wenn der Tank leer ist, soll der Tank über eine &#039;&#039;&#039;Methode&#039;&#039;&#039; mit einer gewissen Menge an Kraftstoff aufgefüllt werden. Erstelle dazu eine entsprechende &#039;&#039;&#039;Methode&#039;&#039;&#039; und fahr weiter.&lt;br /&gt;
&lt;br /&gt;
Erstelle nun eine Carsimulation welche eine gewisse Anzahl von Autoinstanzen erstellt und diese fahren lässt und wenn nötig wieder betankt.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Wunsch:&#039;&#039;&#039; Die Methoden sollen zu ihrer eigentlichen Funktion auch eine schöne Ausgabe erstellen&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Carsimulation Extended ===&lt;br /&gt;
Erweitere das vorhergende Beispiel um die &#039;&#039;&#039;Klassen&#039;&#039;&#039;&lt;br /&gt;
* {{JSL|Engine}} (Motor)&lt;br /&gt;
* {{JSL|Tank}}&lt;br /&gt;
* {{JSL|GasStation}}&lt;br /&gt;
* {{JSL|RepairStation}}&lt;br /&gt;
Sowohl {{JSL|Tank}} und {{JSL|Motor}} sollen in {{JSL|Car}} als Attribute existieren und durch die {{JSL|RepairStation}} austauschbar sein.&lt;br /&gt;
&lt;br /&gt;
Eine {{JSL|Engine}} soll nach einer zufälligen Wahrscheinlichkeit einen Defekt haben und in der {{JSL|RepairStation}} getauscht werden. Je mehr Kilometer gefahren wurden, desto höher ist die Wahrscheinlichkeit, dass die {{JSL|Engine}} kaputt geht.&lt;br /&gt;
&lt;br /&gt;
Wenn die {{JSL|Car}} nicht die gewünschten Kilometer fährt, so ist entweder der Tank leer, oder der Motor kaputt. Erstelle &#039;&#039;&#039;Methoden&#039;&#039;&#039; der {{JSL|Car}} &#039;&#039;&#039;Klasse&#039;&#039;&#039; die den Tankinhalt und den Zustand des &#039;&#039;&#039;Motors&#039;&#039;&#039; (defekt oder ganz) zurückgeben.&lt;br /&gt;
&lt;br /&gt;
Wird die {{JSL|drive(int kilometers)}} &#039;&#039;&#039;Methode&#039;&#039;&#039; ausgeführt, so soll nun eine Methode im Motor aufgerufen werden, die diesen startet, und nach den gefahrenen Kilomtern wieder stoppt. Auch der Treibstoffverbrauch soll mit dem Motor zusammenhängen. Vielleicht ist es eine gute Idee beim Starten den Tank an den Motor zu übergeben?&lt;br /&gt;
&lt;br /&gt;
==== Erstelle folgende &#039;&#039;&#039;Subklassen&#039;&#039;&#039; von &#039;&#039;&#039;Tank&#039;&#039;&#039; ====&lt;br /&gt;
* Battery&lt;br /&gt;
* FuelTank&lt;br /&gt;
&lt;br /&gt;
 Überlege welche &#039;&#039;&#039;Methoden&#039;&#039;&#039; in der &#039;&#039;&#039;Superklasse&#039;&#039;&#039; &#039;&#039;&#039;Tank&#039;&#039;&#039; Sinn machen.&lt;br /&gt;
&lt;br /&gt;
==== Erstelle folgende &#039;&#039;&#039;Subklassen&#039;&#039;&#039; von &#039;&#039;&#039;Car&#039;&#039;&#039; ====&lt;br /&gt;
* SelfRepairingCar (hat der Motor einen Schaden, so soll dieser automatisch repariert und weitergefahren werden)&lt;br /&gt;
* AeroDynamicCar (reduziert den Treibstoffverbrauch um 50%)&lt;br /&gt;
* CrapCar (erhöht die Wahrscheinlichkeit dass der Motor kaputt geht um 50%)&lt;br /&gt;
&lt;br /&gt;
 Überlege welche &#039;&#039;&#039;Methoden&#039;&#039;&#039; in der &#039;&#039;&#039;Superklasse&#039;&#039;&#039; &#039;&#039;&#039;Car&#039;&#039;&#039; sinn machen. Eine eigene Methode in der &#039;&#039;&#039;Superklasse&#039;&#039;&#039; welche den Treibstoffverbrauch pro Kilometer ausrechnet, macht wahrscheinlich sinn. Diese kann dann in den &#039;&#039;&#039;Subklassen&#039;&#039;&#039; überschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teste deine Autosimulation ausgiebig.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Bank ===&lt;br /&gt;
Ein Bankinstitut hat verschiedene Schalter. Ein Kunde geht in ein Bankinstitut um sein Bankgeschäft zu verrichten. Zuerst geht der Kunde ins Institut und geht zum nächsten freien Schalter. Wenn der Kunde den Schalter wieder verlässt, wird der Schalter zu einer Wahrscheinlichkeit von 20% für eine Pause geschlossen (die Pause eines Schalters endet nach dem 3 weitere Kunden die Bank betreten und verlassen haben). Hat ein Schalter kein Geld mehr so muss dieser wieder aufgefüllt werden und der Schalter ist für die Dauer eines Kunden geschlossen.&lt;br /&gt;
 * Das Bankgeschäft eines Kunden ist entweder eine Einzahlung bzw. eine Auszahlung.&lt;br /&gt;
 * Kann ein Schalter eine gewisse Geldmenge nicht bedienen geht der Kunde zum nächsten Schalter und der Ursprüngliche Schalter wird aufgefüllt.&lt;br /&gt;
 * Es soll nachvollzogen werden können welcher Schalter welche Kunden bedient hat und was für ein Betrag eingezahlt oder ausgezahlt wurde (&#039;&#039;&#039;ACHTUNG&#039;&#039;&#039; keine {{JSL|HashMap}}).&lt;br /&gt;
&lt;br /&gt;
# Erstelle ein UML Diagramm für dein Banksystem (Dia)&lt;br /&gt;
# Erstelle die notwendingen Klassen und Methoden.&lt;br /&gt;
# Erstelle nun eine Bank mit einigen Schaltern und erstelle weiters einige Kunden.&lt;br /&gt;
# Simuliere nun das Bankgeschäft. Die Kunden gehen der reihe nach in die Bank. Am Ende der Simulation soll für jeden Schalter eine Statistik ausgegeben werden (welche Kunden waren dort, welche Beträge wurden verarbeitet).&lt;br /&gt;
# Erstelle Unit Tests für deine Banksimulation&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Filesystem traversal ===&lt;br /&gt;
 Das wurde schonmal gemacht, einfach nochmal machen, das schadet nicht :-)&lt;br /&gt;
Erstelle eine Methode welche durch das Dateisystem ab einem gegebenen Pfad navigiert (Ob der Pfad als {{JSL|String}} oder {{JSL|File}} übergeben wird ist egal). Wird der Pfad nicht gefunden, so soll eine {{JSL|FileNotFoundException}} geworfen werden. Die Navigation soll dabei &#039;&#039;&#039;Rekursiv&#039;&#039;&#039; erfolgen. Gib den Pfad mit entsprechender Einrückung aus.&lt;br /&gt;
 &#039;&#039;&#039;Tip zur Rekursion:&#039;&#039;&#039; Iteriere in einer Methode durch alle Kinder einer Datei. Handelt es sich um einen Ordner so rufe für jedes Kind dieses Ordners die Methode wieder auf und erhöhe die Einrückung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe (muss nicht genau so aussehen):&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
├── otherPackageInvocationTest&lt;br /&gt;
│   └── Test.java&lt;br /&gt;
├── week1&lt;br /&gt;
│   ├── tag3&lt;br /&gt;
│   │   ├── Aufgabe1.java&lt;br /&gt;
│   │   ├── Aufgabe2.java&lt;br /&gt;
│   │   └── Loops.java&lt;br /&gt;
│   ├── tag4&lt;br /&gt;
│   │   ├── Christbaum2.java&lt;br /&gt;
│   │   ├── Christbaum.java&lt;br /&gt;
│   │   ├── Loops.java&lt;br /&gt;
│   │   ├── Traingle2.java&lt;br /&gt;
│   │   └── Triangle.java&lt;br /&gt;
│   ├── tag5&lt;br /&gt;
│   │   ├── Circle2.java&lt;br /&gt;
│   │   ├── Circle3.java&lt;br /&gt;
│   │   ├── Circle.java&lt;br /&gt;
│   │   └── Methods.java&lt;br /&gt;
│   └── tag5a&lt;br /&gt;
│       └── UseMethods.java&lt;br /&gt;
├── week2&lt;br /&gt;
│   ├── day3&lt;br /&gt;
│   │   ├── Calendar.java&lt;br /&gt;
│   │   ├── LogicPuzzle.java&lt;br /&gt;
│   │   ├── Recursion2.java&lt;br /&gt;
│   │   └── Recursion.java&lt;br /&gt;
│   └── day4&lt;br /&gt;
│       ├── Menu.java&lt;br /&gt;
│       └── UserInput.java&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Filesystem traversal usefull ===&lt;br /&gt;
Erstelle eine Methode welche durch das Dateisystem ab einem gegebenen Pfad navigiert. Die Methode erhält weiters eine Klasse {{JSL|FileReceiver}}. Diese Klasse hat eine Methode {{JSL|onFileReceived(int depth, File file)}} welche zur Verarbeitung jeder einzelnen Datei, bzw. jedes einzelnen Ordners aufgerufen wird. Erstelle verschiedene weitere Klassen die von {{JSL|FileReceiver}} erben und {{JSL|onFileReceived(int depth, File file)}} überschreiben und folgende Aufgaben erfüllen sollen:&lt;br /&gt;
* Größe aller Dateien berechnen&lt;br /&gt;
* Anzahl der Dateien mit einer bestimmten Endung zählen&lt;br /&gt;
* Alle Dateiendungen Zählen. Tip.: {{JSL|HashMap}}&lt;br /&gt;
* Die größe jedes Ordners ermitteln. Tip.: Hier wird die &#039;&#039;&#039;depth&#039;&#039;&#039; und ein Stapel benötigt ({{JSL|List}}, oder {{JSL|Stack}}).&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Filesystem traversal usefull &amp;amp; extended ===&lt;br /&gt;
Wie in der vorhergehenden Aufgabe, jedoch soll nicht nur ein {{JSL|FileReceiver}} übergeben werden können, sondern eine {{JSL|List}} von {{JSL|FileReceiver}}.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: JUnit ===&lt;br /&gt;
Wähle drei Beispiele aus deiner Sammlung und teste diese mit &#039;&#039;&#039;JUnit&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Geometry ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Abstrakte Klasse&#039;&#039;&#039; {{JSL|Geometry}}. Diese enthält folgende &#039;&#039;&#039;Methoden&#039;&#039;&#039;:&lt;br /&gt;
* {{JSL|getCircumference()}} und gibt einen {{JSL|double}} zurück&lt;br /&gt;
* {{JSL|getArea()}} und gibt einen {{JSL|double}} zurück&lt;br /&gt;
&lt;br /&gt;
Erstelle nun einige &#039;&#039;&#039;Klassen&#039;&#039;&#039; die von {{JSL|Geometry}} erben (Circle, Square, Rectangle, Triangle,...). Jede &#039;&#039;&#039;Klasse&#039;&#039;&#039; soll in ihrem Konstruktor die entsprechenden Werte erhalten.&lt;br /&gt;
&lt;br /&gt;
Erstelle nun verschiedene &#039;&#039;&#039;Instanzen&#039;&#039;&#039; von {{JSL|Geometry}}, speichere diese in einer {{JSL|List}}. Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die den Gesamtumfang und die Gesamtfläche aller {{JSL|Geometry}} &#039;&#039;&#039;Objekte&#039;&#039;&#039; in der {{JSL|List}} ausgibt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teste deine Implementierung ausgibig&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Verhalten ===&lt;br /&gt;
Wie in [[Protokoll#19._November_2021|Protokoll 19.11]] gezeigt, soll nun das &#039;&#039;&#039;Schwimmverhalten&#039;&#039;&#039; implementiert werden. Erstelle endweder die Bestehende Klassenhierarchie als Übung in deinem eigenen Paket, oder kopiere diese.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Graph === &lt;br /&gt;
&lt;br /&gt;
Ein Graph ist eine Datenstruktur die aus mehreren Knoten (Nodes besteht). Eine Node kann mehrere Nodes als Nachbarn haben, das heißt, sie hat eine Verbindung zu diesen Nachbarn.&lt;br /&gt;
[[Datei:Graph.png|mini|Ein einfacher Graph|150px]]&lt;br /&gt;
&lt;br /&gt;
* Erstelle eine Datenstruktur für die &#039;&#039;&#039;Node&#039;&#039;&#039; mit (X/Y Koordinaten), verwende für die Nachbarn eine {{JSL|List}} in der jeweiligen &#039;&#039;&#039;Node&#039;&#039;&#039;&lt;br /&gt;
* Erstelle weiters eine Datenstruktur für den Graphen, welche eine {{JSL|List}} von &#039;&#039;&#039;Nodes&#039;&#039;&#039; enthält&lt;br /&gt;
* Erstelle aus den schwarzen Pixeln des folgenden Labyrinths einen Graphen&lt;br /&gt;
&lt;br /&gt;
[[Datei:Labyrinth.png|150px|mini|none|Ein Labyrinth]]&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Dijkstra ===&lt;br /&gt;
&lt;br /&gt;
Zeige deinen Graphen in einem {{JSL|JPanel}} an. Es soll nun der Start und das Ziel angeklickt werden können. Finde mittels Dijkstra Algorithmus[https://de.wikipedia.org/wiki/Dijkstra-Algorithmus] den kürzesten Weg vom Start zum Ziel. Illustriere dabei alle durchwanderten Knoten.&lt;br /&gt;
&lt;br /&gt;
=== Schule: Volksschule Rotkreuz (Lustenau) ===&lt;br /&gt;
&lt;br /&gt;
Es gibt eine &#039;&#039;&#039;Schule&#039;&#039;&#039;. In der Schule sind verschiedene Räume, so wie &#039;&#039;&#039;KlassenRaum&#039;&#039;&#039;, &#039;&#039;&#039;SportHalle&#039;&#039;&#039;, &#039;&#039;&#039;Handwerk &amp;amp; Technik Raum&#039;&#039;&#039;. Die Schule hat ein &#039;&#039;&#039;Schuldirektor&#039;&#039;&#039; und viele &#039;&#039;&#039;Lehrer&#039;&#039;&#039;.  Die &#039;&#039;&#039;Schüler&#039;&#039;&#039;, die die Schule besuchen, gehören zu einer &#039;&#039;&#039;SchuleKlasse&#039;&#039;&#039;. Jede SchuleKlasse hat einen fixen Tagesablauf, die im &#039;&#039;&#039;Kursplan&#039;&#039;&#039; festgelegt ist. Der Kursplan beinhaltet, das Thema, den Lehrer und den Raum, wo es stattfindet.&lt;br /&gt;
&lt;br /&gt;
==== Simulation 0.1 ====&lt;br /&gt;
&lt;br /&gt;
Morgen kommen alle Lehrer und alle Schüler in die Schule. Die Schüler, die zu spät erscheinen, müssen zu dem Direktor.&lt;br /&gt;
&lt;br /&gt;
==== Simulation 0.2 ====&lt;br /&gt;
&lt;br /&gt;
Die Schüler haben einen fixen Tagesablauf. 45 Minuten Stunden, 15 Minuten Pause, 45 Minuten Stunde, ....&lt;br /&gt;
Am Beginn jeder Unterrichtsstunde gehen die Schüler in den entsprechenden Kursraum, wie es im Stundenplan vorgesehen ist.&lt;br /&gt;
&lt;br /&gt;
==== Simulation 0.3 ====&lt;br /&gt;
&lt;br /&gt;
Die Lehrer gehen in den Kursraum, wo sie gebraucht sind. Nach der Stunde kommen sie in dem Lehrerzimmer zurück. Falls sie keine Kursstunde haben, bleiben sie im Lehrerzimmer und korrigieren Hausaufgaben und Tests.&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Objekt_Orientierte_Programmierung_%C3%9Cbungen&amp;diff=3709</id>
		<title>DCV 2024 09/Objekt Orientierte Programmierung Übungen</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Objekt_Orientierte_Programmierung_%C3%9Cbungen&amp;diff=3709"/>
		<updated>2024-11-07T08:13:16Z</updated>

		<summary type="html">&lt;p&gt;Sandro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im folgenden sollen diese Begriffe verstanden und angewandt werden. Diese sind nicht chronologisch geordnet.&lt;br /&gt;
 &#039;&#039;&#039;Tip:&#039;&#039;&#039; Für weitere Informationen: [[Objektorientierte_Programmierung|Objektorientierte Programmierung]]&lt;br /&gt;
* Klasse&lt;br /&gt;
** Instanz- vs. Klassenmethode&lt;br /&gt;
** Instanz- vs. Klassenattribut&lt;br /&gt;
** Innere Klassen (statisch vs. nicht statisch)&lt;br /&gt;
* Enumeration (enum)&lt;br /&gt;
* Collections (Liste, Set, Map)&lt;br /&gt;
* Vererbung&lt;br /&gt;
* Abstrakte Klasse&lt;br /&gt;
* Interface&lt;br /&gt;
* Polymorphismus&lt;br /&gt;
* Beziehungen&lt;br /&gt;
** Has-A vs. Is-A&lt;br /&gt;
** Implementierung von Interfaces&lt;br /&gt;
* Generics&lt;br /&gt;
* Designpatterns&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Person ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Klasse&#039;&#039;&#039; welche die typischen Werte eines Menschen speichern kann.&lt;br /&gt;
* Größe&lt;br /&gt;
* Alter&lt;br /&gt;
* Name&lt;br /&gt;
* Gewicht&lt;br /&gt;
Erstelle weiters eine {{JSL|toString()}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und erstelle einen schönen {{JSL|String}} mit den gegebenen Werten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Türkische Serie ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Klasse&#039;&#039;&#039; welche die typischen Werte einer TV-Serie speichern kann.&lt;br /&gt;
* Title&lt;br /&gt;
* Genre&lt;br /&gt;
* Jahr&lt;br /&gt;
* Originalsprache&lt;br /&gt;
&lt;br /&gt;
Erstelle weiters eine {{JSL|toString()}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und erstelle einen schönen {{JSL|String}} mit den gegebenen Werten.&lt;br /&gt;
&lt;br /&gt;
Erstelle weiterhin 2-3 Objekten, als typische türkische Serien.&lt;br /&gt;
&lt;br /&gt;
Erweitere deine &#039;&#039;&#039;Klasse&#039;&#039;&#039; mit den Attributen&lt;br /&gt;
* Regisseur&lt;br /&gt;
* Produzent&lt;br /&gt;
&lt;br /&gt;
Verwende hierfür die bereits bestehende Klasse &#039;&#039;&#039;Person&#039;&#039;&#039;, aus dem vorherigen Beispiel.&lt;br /&gt;
&lt;br /&gt;
Erstelle &#039;&#039;&#039;Funktionen&#039;&#039;&#039; die sowohl diese Personen zu der Serie hinzufügen als auch wieder löschen!&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Datenklasse ===&lt;br /&gt;
Es soll eine &#039;&#039;&#039;Methode&#039;&#039;&#039; erstellt werden, welche das &#039;&#039;&#039;kleinste&#039;&#039;&#039; und das &#039;&#039;&#039;größte Element&#039;&#039;&#039; sowie den &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; eines {{JSL|int[]}} ermittelt und zurückgibt. Alle  ermittelten Werten sollen in einem Datenobjekt zurückgegeben werden. Erstelle dazu eine Datenklasse welche die entsprechenden Werte enthält. Teste diese &#039;&#039;&#039;Methode&#039;&#039;&#039; ausgiebig mit verschiedenen {{JSL|int[]}}, verwende auch ein zufallsgeneriertes {{JSL|int[]}} mit negativen und positiven Werten.&lt;br /&gt;
* Erstelle die Datenklasse mit einem Sinnvollen Klassennamen und entsprechenden &#039;&#039;&#039;Attributen&#039;&#039;&#039;. Achte hierbei auch auf die Korrekte Sichtbarkeit&lt;br /&gt;
* Erstelle in in der Datenklasse einen &#039;&#039;&#039;Konstruktor&#039;&#039;&#039; welcher alle Werte entgegennimmt und erstelle &#039;&#039;&#039;getter&#039;&#039;&#039; für alle Werte&lt;br /&gt;
* Überschreibe die {{JSL|toString()}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und erstelle einen schönen {{JSL|String}} mit den gegebenen Werten.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Fotoapparat ===&lt;br /&gt;
Erstelle eine Fotoapparat &#039;&#039;&#039;Klasse&#039;&#039;&#039;.&lt;br /&gt;
* Mit zumindest folgenden Attributen (es dürfen auch gerne mehr sein), &#039;&#039;&#039;Brennweite min/max&#039;&#039;&#039;, &#039;&#039;&#039;Model&#039;&#039;&#039;, &#039;&#039;&#039;Hersteller&#039;&#039;&#039; und &#039;&#039;&#039;Megapixel&#039;&#039;&#039;.&lt;br /&gt;
* Erstelle für die Attribute &#039;&#039;&#039;getter&#039;&#039;&#039; und &#039;&#039;&#039;setter&#039;&#039;&#039;&lt;br /&gt;
* Erstelle weiters die &#039;&#039;&#039;Methode&#039;&#039;&#039; {{JSL|takePhoto()}}, die ein Foto schießt (Mach einfach eine nette Ausgabe)&lt;br /&gt;
* Überschreibe die {{JSL|toString()}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und gib die relevanten Daten als {{JSL|String}} zurück&lt;br /&gt;
&lt;br /&gt;
Erstelle verschiedene &#039;&#039;&#039;Instanzen&#039;&#039;&#039; der Fotoapparat &#039;&#039;&#039;Klasse&#039;&#039;&#039; und Teste diese ausgiebig.&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Bonusaufgabe: Fotoapparat &amp;amp; Objektiv &amp;amp; Speicherkarte&#039;&#039;&#039; ===&lt;br /&gt;
Erweitere das vorhergehende Beispiel um die Klassen Objektiv und Speicherkarte. Die Brennweite der Kamera fällt demnach weg.&lt;br /&gt;
Das Objektiv und die Speicherkarte sollen getauscht werden können.&lt;br /&gt;
Erstelle Methoden um zu erfragen wieviele Fotos bereits aufgenommen wurden und wieviel Speicher noch frei ist. Für die Berechnung speicherplatz pro bild, kann ein wert von 0.3mb pro Megapixel angenommen werden.[https://www.mvorganizing.org/what-is-the-average-size-of-a-jpg/#What_is_the_average_size_of_a_JPG]&lt;br /&gt;
&lt;br /&gt;
== Handhabung von dynamischen Datenstrukturen (ArrayList, Vector, LinkedList, HashSet, HashMap) ==&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Vector erstellen ===&lt;br /&gt;
Erstelle einen Vector mit 20 Zufallszahlen zwischen 0 und 99.&lt;br /&gt;
&lt;br /&gt;
Gib den Vector mit {{JSL|System.out.println()}} aus.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Vector erstellen ===&lt;br /&gt;
Erstelle einen Vector mit 20 Zufallszahlen zwischen 0 und 99.&lt;br /&gt;
&lt;br /&gt;
Erstelle jeweils eine Funktionen für:&lt;br /&gt;
# Zählen der geraden Zahlen&lt;br /&gt;
# Suche nach der kleinsten Zahl&lt;br /&gt;
# Suche nach der größten Zahl&lt;br /&gt;
# Sortiere die Elementen absteigend&lt;br /&gt;
# Lösche alle Ungerade Zahlen&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Zwei Vectoren zusammenführen ===&lt;br /&gt;
Es gibt zwei Vectoren mit 20 Elementen, die nach Größe sortiert sind.&lt;br /&gt;
&lt;br /&gt;
Erstelle einen dritten Vector, in dem du die Elemente der vorhergehenden Vectoren zusammenfügst, der neu erstellte Vector soll immer noch sortiert sein.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Person 2.0 ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Klasse&#039;&#039;&#039; welche die typischen Werte eines Menschen speichern kann.&lt;br /&gt;
* Größe&lt;br /&gt;
* Alter&lt;br /&gt;
* Name&lt;br /&gt;
* Gewicht&lt;br /&gt;
Erstelle weiters eine Methode welche eine {{JSL|List}} von Personen erhält und bezüglich &#039;&#039;&#039;Größe&#039;&#039;&#039;, &#039;&#039;&#039;Alter&#039;&#039;&#039;, &#039;&#039;&#039;Gewicht&#039;&#039;&#039;, das &#039;&#039;&#039;kleinste&#039;&#039;&#039; und das &#039;&#039;&#039;größte Element&#039;&#039;&#039; sowie den &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; berechnet und wie in der vorhergehenden Aufgabe in einer eigenen Klasse zurückgibt.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Person Sortiert ===&lt;br /&gt;
Verwende die erstellte &#039;&#039;&#039;Klasse&#039;&#039;&#039; aus dem vorhergehenden Beispiel und erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche eine {{JSL|List}} von Personen nach entweder nach &#039;&#039;&#039;Größe&#039;&#039;&#039;, &#039;&#039;&#039;Alter&#039;&#039;&#039;, &#039;&#039;&#039;Gewicht&#039;&#039;&#039;, oder &#039;&#039;&#039;Name&#039;&#039;&#039; sortiert. Hierfür kann ein &#039;&#039;&#039;enum&#039;&#039;&#039; verwendet werden, oder auch einfach ein {{JSL|int}}.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zoo-Simulation ==&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Zoo ===&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Main&#039;&#039;&#039; Klasse, die zuständig ist für&lt;br /&gt;
* die Initialisierung des Zoos und aller seiner Bestandteile&lt;br /&gt;
* Initiieren des nächsten Simulationsschrittes&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Zoo&#039;&#039;&#039; Klasse mit &#039;&#039;Name&#039;&#039; und &#039;&#039;Gründungsjahr&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Gehege&#039;&#039;&#039; Klasse mit &#039;&#039;Name&#039;&#039; der als Beschreibung des Geheges dient.&lt;br /&gt;
&lt;br /&gt;
Erweitere deinen Zoo, sodass Gehege dynamisch hinzugefügt und entfernt werden können.&lt;br /&gt;
&lt;br /&gt;
Erweitere dein Programm um eine Funktion, die die Struktur des Zoos ausgibt. Der erwartete Ausdruck sieht folgendermaßen aus.&lt;br /&gt;
&lt;br /&gt;
{{BML|code= &lt;br /&gt;
├── Zoo: Tiergarten Dornbirn, gegründet 2022&lt;br /&gt;
│   ├── Gehege: Alpenwiese&lt;br /&gt;
│   ├── Gehege: Ried&lt;br /&gt;
│   ├── Gehege: Terrarium (warm)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Tiere ===&lt;br /&gt;
&lt;br /&gt;
Erweitere dein Zooprogramm mit Tiere.&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Tier&#039;&#039;&#039; Klasse mit einem &#039;&#039;Name&#039;&#039; und einer &#039;&#039;Gattung&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Erweitere die Gehege, um Tiere dynamisch zufügen und entfernen zu können.&lt;br /&gt;
&lt;br /&gt;
Erweitere den Struktur-Ausdruck von Zoo, dass es auch die Tiere ausdrückt.&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
├── Zoo: Tiergarten Dornbirn, gegründet 2022&lt;br /&gt;
│   ├── Gehege: Alpenwiese&lt;br /&gt;
│       ├── Rijska, Kuh&lt;br /&gt;
│   ├── Gehege: Ried&lt;br /&gt;
│       ├── Garmond, Storch&lt;br /&gt;
│       ├── Hugo, Storch&lt;br /&gt;
│       ├── Idaxis, Storch&lt;br /&gt;
│   ├── Gehege: Terrarium (warm)&lt;br /&gt;
│       ├── (leer)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Bonusaufgabe: Tierfutter&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Erweitere dein Zooprogramm mit Futter-Bedarfsanalyse.&lt;br /&gt;
&lt;br /&gt;
Erstelle eine Klasse für &#039;&#039;&#039;Futter&#039;&#039;&#039; mit einen &#039;&#039;Name&#039;&#039;, &#039;&#039;Einheit&#039;&#039; und &#039;&#039;Einheitspreis&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Jedes Tier hat einen Futterbedarf, die beinhaltet den &#039;&#039;Futter&#039;&#039; und eine &#039;&#039;Menge&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erstelle eine Statistik, was den Futterbedarf von Zoo ist, und wie viel die Tagesversorgung sich kostet. Für diese Aufgabe kann man {{JSL|HashMap}} gut brauchen.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Pfleger ===&lt;br /&gt;
&lt;br /&gt;
Erweitere dein Zooprogramm um Tierpfleger.&lt;br /&gt;
&lt;br /&gt;
Erstelle eine Klasse &#039;&#039;&#039;Pfleger&#039;&#039;&#039; mit einem &#039;&#039;Namen&#039;&#039; und mit einer dynamischen Liste von &#039;&#039;Gehegen&#039;&#039;, wofür der Pfleger zuständig ist. Erweitere die Klasse &#039;&#039;Zoo&#039;&#039;, dass die eine Liste der &#039;&#039;Pfleger&#039;&#039; beinhaltet.&lt;br /&gt;
&lt;br /&gt;
Erweitere den Struktur-Ausdruck um die neu eingeführten Pfleger.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Simulation 0.1 ===&lt;br /&gt;
&lt;br /&gt;
Erweitere das Programm mit einer Tagessimulation.&lt;br /&gt;
&lt;br /&gt;
# An jedem Tag gehen die Pfleger los und kümmern sich um die Gehege in deren Zuständigkeitsbereich.&lt;br /&gt;
## Falls ein Pfleger ein Gehege findet, welche schon bearbeitet wurde, überspringt er das Gehege und nimmt das nächste&lt;br /&gt;
# Wenn ein Pfleger zu einem Gehege kommt, wird er zuerst die Tiere füttern&lt;br /&gt;
# Nach dem Füttern wird er ein Zufälliges Tier länger beobachten.&lt;br /&gt;
## Mit einer Erweiterung der Pfleger mit den &#039;&#039;Lieblings-Tier-Gattung&#039;&#039;, kann der Pfleger das Tier bewundern.&lt;br /&gt;
&lt;br /&gt;
Lass auf der Konsole ausdrucken, wer-was macht...&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Bonusaufgabe: Simulation 0.2&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Erweitere die Simulation&lt;br /&gt;
&lt;br /&gt;
# Jedes Tier hat eine &#039;&#039;Gesundheit&#039;&#039;, ein &#039;&#039;MaxGesundheit&#039;&#039; und einen &#039;&#039;Biss&#039;&#039;&lt;br /&gt;
# Jedes Tier versucht mit 40% Wahrscheinlichkeit, ein Nachbar von ihm aus dem gleichen Gehege zu beißen.&lt;br /&gt;
# Falls ein Tier gebissen wird, wird seine Gesundheit mit dem Biss von Angreifer reduziert&lt;br /&gt;
# &amp;quot;toten Tiere&amp;quot; beißen nicht.&lt;br /&gt;
# Am Ende des Tages werden &amp;quot;toten Tiere&amp;quot; aus dem Gehege entfernt&lt;br /&gt;
&lt;br /&gt;
Lass auf der Konsole ausdrucken, wer-was macht...&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Bonusaufgabe: Simulation 0.3&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Erweitere den Zoo mit Tierärzte, die die verletzte Tiere behandeln und heilen. Erstelle eine Klasse &#039;&#039;&#039;TierArzt&#039;&#039;&#039; mit einem &#039;&#039;Name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Erweitere die Simulation&lt;br /&gt;
&lt;br /&gt;
# Jeder Tierarzt wird an jedem Tag - genau 1 Tier behandeln&lt;br /&gt;
# Der Tierarzt wählt das Tier mit der geringsten relativen Gesundheit&lt;br /&gt;
## Zum Beispiel: 10 Gesundheit mit 100 Maximum ist 10% und so dringender als 1 Gesundheit aus 2 ergo 50%.&lt;br /&gt;
# Der Tierarzt wird zufällig zwischen 30 und 100% der Gesundheit wiederherstellen&lt;br /&gt;
# Kein Tier kann über die maximale Gesundheit geboostet werden.&lt;br /&gt;
&lt;br /&gt;
Lass auf der Konsole ausdrucken, wer-was macht...&lt;br /&gt;
&lt;br /&gt;
== Übungen Zur Modellierung ==&lt;br /&gt;
&lt;br /&gt;
Die folgenden Übungen haben das Ziel, schnell ein Model zu erfassen, das die folgenden Aspekte beinhaltet:&lt;br /&gt;
# Klassen&lt;br /&gt;
# Kompositionen&lt;br /&gt;
# Vererbungen&lt;br /&gt;
# Methoden / Funktionen&lt;br /&gt;
# Variablen / Attribute&lt;br /&gt;
&lt;br /&gt;
[[Datei:Uml-class-diagram-cheat-sheet.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine ausführliche Erklärung dazu findet sich beim Klick auf diesen Verweis: [https://ccwiki.digitalcampusvorarlberg.at/index.php/UML_Klassendiagramm].&lt;br /&gt;
&lt;br /&gt;
=== Schwarzwald Klinik ===&lt;br /&gt;
&lt;br /&gt;
Es gibt ein &#039;&#039;&#039;Krankenhaus&#039;&#039;&#039; mit unterschiedlichen &#039;&#039;&#039;Abteilungen&#039;&#039;&#039;. Manche Abteilungen sind &#039;&#039;&#039;Ambulanz&#039;&#039;&#039;en anderen sind &#039;&#039;&#039;Station&#039;&#039;&#039;en. Ambulanzen haben eine Öffnungszeit sowie einen Warteraum mit einer definierten Anzahl von Plätzen. Stationen beinhalten &#039;&#039;&#039;Zimmer&#039;&#039;&#039; in denen sich &#039;&#039;&#039;Betten&#039;&#039;&#039; befinden.&lt;br /&gt;
Wenn ein Patient ins Krankenhaus kommt, besucht dieser entsprechend seiner Erkrankung eine Ambulanz. Falls der Fall schwerwiegender ist, muss er in einer Station aufgenommen werden. Patienten werden untersucht, behandelt und eventuell gepflegt. Aus der Ambulanzen dürfen die Patienten nach kurzer Zeit wieder nach Hause gehen. Patienten die in Stationen behandelt werden, müssen solange da bleiben, bis sie vollständig geheilt sind.&lt;br /&gt;
&lt;br /&gt;
=== Restaurant &#039;&#039;Dolce Vita&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Es gibt ein &#039;&#039;&#039;Restaurant&#039;&#039;&#039;, das aus mehreren Räumen besteht. Jeder &#039;&#039;&#039;Raum&#039;&#039;&#039; hat einen zuständigen &#039;&#039;&#039;Kellner&#039;&#039;&#039;. In jedem &#039;&#039;&#039;Raum&#039;&#039;&#039; befinden sich unterschiedliche Tische. Manche sind groß, andere sind winzig klein. Wenn eine &#039;&#039;&#039;Gruppe&#039;&#039;&#039; eintrifft, werden sie vom &#039;&#039;&#039;Hauptkellner&#039;&#039;&#039; begrüßt. Der Hauptkellner führt sie zu einem Tisch und übergibt die Gruppe an den im jeweiligen Raum zuständigen Kellner. Die Gruppe der Gäste bekommt eine &#039;&#039;&#039;Speisekarte&#039;&#039;&#039; mit den Speisen und Getränken. Der Kellner nimmt die Bestellungen auf und serviert diese anschließend. Nach dem Essen fragt die Gruppe nach der &#039;&#039;&#039;Rechnung&#039;&#039;&#039; und bezahlt diese.&lt;br /&gt;
&lt;br /&gt;
Am Ende des Tages macht der Hauptkellner eine Gesamtabrechnung und eine Analyse:&lt;br /&gt;
* Welcher Kellner hat die meisten Gäste bedient?&lt;br /&gt;
* Welcher Kellner hat den Höchsten Umsatz generiert?&lt;br /&gt;
* Welcher Kellner hat den größten Gewinnn erwirtschaftet? (Dazu braucht man die Selbstkosten pro Speise/Getränk)&lt;br /&gt;
* Was war die beliebteste Speise?&lt;br /&gt;
* Was war das beliebteste Getränk?&lt;br /&gt;
&lt;br /&gt;
=== Museum: Neue Pinakothek ===&lt;br /&gt;
&lt;br /&gt;
Ein &#039;&#039;&#039;Museum&#039;&#039;&#039; besteht aus Gängen und Ausstellungsräume. Jeder &#039;&#039;&#039;Gang&#039;&#039;&#039; und &#039;&#039;&#039;Ausstellungsraum&#039;&#039;&#039; kennt über die benachbarten Räume. In jedem Ausstellungsraum sind &#039;&#039;&#039;Kunststücke&#039;&#039;&#039; ausgestellt. Ein Kunststück kann ein Zeichen, Gemälde, Statue, oder ein Kunstobjekt sein.&lt;br /&gt;
Es gibt einen besonderen Gang im Museum, der als Eingang für Gäste dient. Ab dem Zeitpunkt der Öffnung dürfen Gäste ins Museum kommen. Ein Gast in einem Gang wählt einen zufälligen Raum, den er betritt. Falls sich ein Gast in einem Ausstellungsraum befindet, kann er ein zufälliges Kunststück beobachten oder in den nächsten Raum gehen. Falls ein Gast nach einer Zeit müde wird, geht er nach Hause. Zwischen den Gästen sind einige mit bösen Absichten. Ein &#039;&#039;&#039;Dieb&#039;&#039;&#039; stiehlt den beobachteten Gegenstand, falls er sich allein in einem Raum befindet. Um die Diebstähle zu verhindern sind einige &#039;&#039;&#039;Wächter&#039;&#039;&#039; im Museum unterwegs. Die Wächter beobachten keine Kunstobjekte, sondern sie versuchen sich in Räumen zu befinden in denen auch anderen Gäste präsent sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Geometry ===&lt;br /&gt;
 Zeichne zuerst für die Aufgabe ein entsprechendes Klassendiagramm&lt;br /&gt;
&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Abstrakte Klasse&#039;&#039;&#039; {{JSL|Geometry}}. Diese enthält folgende &#039;&#039;&#039;Methoden&#039;&#039;&#039;:&lt;br /&gt;
* {{JSL|getCircumference()}} und gibt einen {{JSL|double}} zurück&lt;br /&gt;
* {{JSL|getArea()}} und gibt einen {{JSL|double}} zurück&lt;br /&gt;
&lt;br /&gt;
Erstelle nun einige &#039;&#039;&#039;Klassen&#039;&#039;&#039; die von {{JSL|Geometry}} erben (Circle, Square, Rectangle, Triangle,...). Jede &#039;&#039;&#039;Klasse&#039;&#039;&#039; soll in ihrem Konstruktor die entsprechenden Werte erhalten.&lt;br /&gt;
&lt;br /&gt;
Erstelle nun verschiedene &#039;&#039;&#039;Instanzen&#039;&#039;&#039; von {{JSL|Geometry}}, speichere diese in einer {{JSL|List}}. Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die den Gesamtumfang und die Gesamtfläche aller {{JSL|Geometry}} &#039;&#039;&#039;Objekte&#039;&#039;&#039; in der {{JSL|List}} ausgibt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teste deine Implementierung ausgiebig&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Datei:Geometry.png|mini|ohne]]&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Geometry Interface ===&lt;br /&gt;
Gleiche Aufgabe wie zuvor, verwende jedoch ein &#039;&#039;&#039;Interface&#039;&#039;&#039; anstatt eine &#039;&#039;&#039;Abstrakte Klasse&#039;&#039;&#039; für die Geometry.&lt;br /&gt;
 Welche möglichen Vorteile ergeben sich dadurch?&lt;br /&gt;
&lt;br /&gt;
[[Datei:Geometry Interface.png|mini|ohne]]&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Geometry Enhanced Version ===&lt;br /&gt;
  Zeichne zuerst für die Aufgabe ein entsprechendes Klassendiagramm (kann wiederverwendet werden)&lt;br /&gt;
&lt;br /&gt;
Erweitere das vorhergehende Beispiel um die Geometrische Form Stern und Haus vom Nikolaus. Verwende soviel Code wie möglich wieder.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Datei:Hausvomnikolaus.png|mini|none|Haus vom Nikolaus|150px]] || [[Datei:Kompass Stern.png|mini|Kompass Stern|150px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Simulationen ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Carsimulation ===&lt;br /&gt;
Erstelle eine {{JSL|Car}} &#039;&#039;&#039;Klasse&#039;&#039;&#039;. Diese enthält alle gängigen Attribute die für ein Auto benötigt werden. Zumindest sollte die &#039;&#039;&#039;Klasse&#039;&#039;&#039; folgende Attribute enthalten:&lt;br /&gt;
* Hersteller&lt;br /&gt;
* Modell&lt;br /&gt;
* kW (Leistung)&lt;br /&gt;
* Tankinhalt&lt;br /&gt;
* Antriebsart (erstelle dafür eine Enumeration &#039;&#039;Benzin&#039;&#039;, &#039;&#039;Diesel&#039;&#039;, &#039;&#039;Gas&#039;&#039;, &#039;&#039;Strom&#039;&#039;)&lt;br /&gt;
* Gewicht&lt;br /&gt;
Überlege welche Attribute du im &#039;&#039;&#039;Konstruktor&#039;&#039;&#039; als Parameter erhalten willst. Ohne welche kann eine Auto &#039;&#039;&#039;Instanz&#039;&#039;&#039; nicht existieren?&lt;br /&gt;
Erstelle nun die &#039;&#039;&#039;Methode&#039;&#039;&#039; {{JSL|drive(int kilometer)}} welche einen {{JSL|int}} zurückgibt. Diese &#039;&#039;&#039;Methode&#039;&#039;&#039; soll, wenn es der Tankinhalt zulässt, die gegebene Strecke zurücklegen. Wenn der Tank leer ist, soll nur die Strecke zurückgegeben werden, die zurückgelegt werden konnte, ansonsten die gesamte Strecke. Um den Verbrauch zu berechnen und den Tankinhalt zu reduzieren, verwende das &#039;&#039;&#039;Gewicht&#039;&#039;&#039; und die &#039;&#039;&#039;kW (Leistung)&#039;&#039;&#039; des Autos.&lt;br /&gt;
&lt;br /&gt;
Wenn der Tank leer ist, soll der Tank über eine &#039;&#039;&#039;Methode&#039;&#039;&#039; mit einer gewissen Menge an Kraftstoff aufgefüllt werden. Erstelle dazu eine entsprechende &#039;&#039;&#039;Methode&#039;&#039;&#039; und fahr weiter.&lt;br /&gt;
&lt;br /&gt;
Erstelle nun eine Carsimulation welche eine gewisse Anzahl von Autoinstanzen erstellt und diese fahren lässt und wenn nötig wieder betankt.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Wunsch:&#039;&#039;&#039; Die Methoden sollen zu ihrer eigentlichen Funktion auch eine schöne Ausgabe erstellen&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Carsimulation Extended ===&lt;br /&gt;
Erweitere das vorhergende Beispiel um die &#039;&#039;&#039;Klassen&#039;&#039;&#039;&lt;br /&gt;
* {{JSL|Engine}} (Motor)&lt;br /&gt;
* {{JSL|Tank}}&lt;br /&gt;
* {{JSL|GasStation}}&lt;br /&gt;
* {{JSL|RepairStation}}&lt;br /&gt;
Sowohl {{JSL|Tank}} und {{JSL|Motor}} sollen in {{JSL|Car}} als Attribute existieren und durch die {{JSL|RepairStation}} austauschbar sein.&lt;br /&gt;
&lt;br /&gt;
Eine {{JSL|Engine}} soll nach einer zufälligen Wahrscheinlichkeit einen Defekt haben und in der {{JSL|RepairStation}} getauscht werden. Je mehr Kilometer gefahren wurden, desto höher ist die Wahrscheinlichkeit, dass die {{JSL|Engine}} kaputt geht.&lt;br /&gt;
&lt;br /&gt;
Wenn die {{JSL|Car}} nicht die gewünschten Kilometer fährt, so ist entweder der Tank leer, oder der Motor kaputt. Erstelle &#039;&#039;&#039;Methoden&#039;&#039;&#039; der {{JSL|Car}} &#039;&#039;&#039;Klasse&#039;&#039;&#039; die den Tankinhalt und den Zustand des &#039;&#039;&#039;Motors&#039;&#039;&#039; (defekt oder ganz) zurückgeben.&lt;br /&gt;
&lt;br /&gt;
Wird die {{JSL|drive(int kilometers)}} &#039;&#039;&#039;Methode&#039;&#039;&#039; ausgeführt, so soll nun eine Methode im Motor aufgerufen werden, die diesen startet, und nach den gefahrenen Kilomtern wieder stoppt. Auch der Treibstoffverbrauch soll mit dem Motor zusammenhängen. Vielleicht ist es eine gute Idee beim Starten den Tank an den Motor zu übergeben?&lt;br /&gt;
&lt;br /&gt;
==== Erstelle folgende &#039;&#039;&#039;Subklassen&#039;&#039;&#039; von &#039;&#039;&#039;Tank&#039;&#039;&#039; ====&lt;br /&gt;
* Battery&lt;br /&gt;
* FuelTank&lt;br /&gt;
&lt;br /&gt;
 Überlege welche &#039;&#039;&#039;Methoden&#039;&#039;&#039; in der &#039;&#039;&#039;Superklasse&#039;&#039;&#039; &#039;&#039;&#039;Tank&#039;&#039;&#039; Sinn machen.&lt;br /&gt;
&lt;br /&gt;
==== Erstelle folgende &#039;&#039;&#039;Subklassen&#039;&#039;&#039; von &#039;&#039;&#039;Car&#039;&#039;&#039; ====&lt;br /&gt;
* SelfRepairingCar (hat der Motor einen Schaden, so soll dieser automatisch repariert und weitergefahren werden)&lt;br /&gt;
* AeroDynamicCar (reduziert den Treibstoffverbrauch um 50%)&lt;br /&gt;
* CrapCar (erhöht die Wahrscheinlichkeit dass der Motor kaputt geht um 50%)&lt;br /&gt;
&lt;br /&gt;
 Überlege welche &#039;&#039;&#039;Methoden&#039;&#039;&#039; in der &#039;&#039;&#039;Superklasse&#039;&#039;&#039; &#039;&#039;&#039;Car&#039;&#039;&#039; sinn machen. Eine eigene Methode in der &#039;&#039;&#039;Superklasse&#039;&#039;&#039; welche den Treibstoffverbrauch pro Kilometer ausrechnet, macht wahrscheinlich sinn. Diese kann dann in den &#039;&#039;&#039;Subklassen&#039;&#039;&#039; überschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teste deine Autosimulation ausgiebig.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Bank ===&lt;br /&gt;
Ein Bankinstitut hat verschiedene Schalter. Ein Kunde geht in ein Bankinstitut um sein Bankgeschäft zu verrichten. Zuerst geht der Kunde ins Institut und geht zum nächsten freien Schalter. Wenn der Kunde den Schalter wieder verlässt, wird der Schalter zu einer Wahrscheinlichkeit von 20% für eine Pause geschlossen (die Pause eines Schalters endet nach dem 3 weitere Kunden die Bank betreten und verlassen haben). Hat ein Schalter kein Geld mehr so muss dieser wieder aufgefüllt werden und der Schalter ist für die Dauer eines Kunden geschlossen.&lt;br /&gt;
 * Das Bankgeschäft eines Kunden ist entweder eine Einzahlung bzw. eine Auszahlung.&lt;br /&gt;
 * Kann ein Schalter eine gewisse Geldmenge nicht bedienen geht der Kunde zum nächsten Schalter und der Ursprüngliche Schalter wird aufgefüllt.&lt;br /&gt;
 * Es soll nachvollzogen werden können welcher Schalter welche Kunden bedient hat und was für ein Betrag eingezahlt oder ausgezahlt wurde (&#039;&#039;&#039;ACHTUNG&#039;&#039;&#039; keine {{JSL|HashMap}}).&lt;br /&gt;
&lt;br /&gt;
# Erstelle ein UML Diagramm für dein Banksystem (Dia)&lt;br /&gt;
# Erstelle die notwendingen Klassen und Methoden.&lt;br /&gt;
# Erstelle nun eine Bank mit einigen Schaltern und erstelle weiters einige Kunden.&lt;br /&gt;
# Simuliere nun das Bankgeschäft. Die Kunden gehen der reihe nach in die Bank. Am Ende der Simulation soll für jeden Schalter eine Statistik ausgegeben werden (welche Kunden waren dort, welche Beträge wurden verarbeitet).&lt;br /&gt;
# Erstelle Unit Tests für deine Banksimulation&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Filesystem traversal ===&lt;br /&gt;
 Das wurde schonmal gemacht, einfach nochmal machen, das schadet nicht :-)&lt;br /&gt;
Erstelle eine Methode welche durch das Dateisystem ab einem gegebenen Pfad navigiert (Ob der Pfad als {{JSL|String}} oder {{JSL|File}} übergeben wird ist egal). Wird der Pfad nicht gefunden, so soll eine {{JSL|FileNotFoundException}} geworfen werden. Die Navigation soll dabei &#039;&#039;&#039;Rekursiv&#039;&#039;&#039; erfolgen. Gib den Pfad mit entsprechender Einrückung aus.&lt;br /&gt;
 &#039;&#039;&#039;Tip zur Rekursion:&#039;&#039;&#039; Iteriere in einer Methode durch alle Kinder einer Datei. Handelt es sich um einen Ordner so rufe für jedes Kind dieses Ordners die Methode wieder auf und erhöhe die Einrückung.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe (muss nicht genau so aussehen):&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
├── otherPackageInvocationTest&lt;br /&gt;
│   └── Test.java&lt;br /&gt;
├── week1&lt;br /&gt;
│   ├── tag3&lt;br /&gt;
│   │   ├── Aufgabe1.java&lt;br /&gt;
│   │   ├── Aufgabe2.java&lt;br /&gt;
│   │   └── Loops.java&lt;br /&gt;
│   ├── tag4&lt;br /&gt;
│   │   ├── Christbaum2.java&lt;br /&gt;
│   │   ├── Christbaum.java&lt;br /&gt;
│   │   ├── Loops.java&lt;br /&gt;
│   │   ├── Traingle2.java&lt;br /&gt;
│   │   └── Triangle.java&lt;br /&gt;
│   ├── tag5&lt;br /&gt;
│   │   ├── Circle2.java&lt;br /&gt;
│   │   ├── Circle3.java&lt;br /&gt;
│   │   ├── Circle.java&lt;br /&gt;
│   │   └── Methods.java&lt;br /&gt;
│   └── tag5a&lt;br /&gt;
│       └── UseMethods.java&lt;br /&gt;
├── week2&lt;br /&gt;
│   ├── day3&lt;br /&gt;
│   │   ├── Calendar.java&lt;br /&gt;
│   │   ├── LogicPuzzle.java&lt;br /&gt;
│   │   ├── Recursion2.java&lt;br /&gt;
│   │   └── Recursion.java&lt;br /&gt;
│   └── day4&lt;br /&gt;
│       ├── Menu.java&lt;br /&gt;
│       └── UserInput.java&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Filesystem traversal usefull ===&lt;br /&gt;
Erstelle eine Methode welche durch das Dateisystem ab einem gegebenen Pfad navigiert. Die Methode erhält weiters eine Klasse {{JSL|FileReceiver}}. Diese Klasse hat eine Methode {{JSL|onFileReceived(int depth, File file)}} welche zur Verarbeitung jeder einzelnen Datei, bzw. jedes einzelnen Ordners aufgerufen wird. Erstelle verschiedene weitere Klassen die von {{JSL|FileReceiver}} erben und {{JSL|onFileReceived(int depth, File file)}} überschreiben und folgende Aufgaben erfüllen sollen:&lt;br /&gt;
* Größe aller Dateien berechnen&lt;br /&gt;
* Anzahl der Dateien mit einer bestimmten Endung zählen&lt;br /&gt;
* Alle Dateiendungen Zählen. Tip.: {{JSL|HashMap}}&lt;br /&gt;
* Die größe jedes Ordners ermitteln. Tip.: Hier wird die &#039;&#039;&#039;depth&#039;&#039;&#039; und ein Stapel benötigt ({{JSL|List}}, oder {{JSL|Stack}}).&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Filesystem traversal usefull &amp;amp; extended ===&lt;br /&gt;
Wie in der vorhergehenden Aufgabe, jedoch soll nicht nur ein {{JSL|FileReceiver}} übergeben werden können, sondern eine {{JSL|List}} von {{JSL|FileReceiver}}.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: JUnit ===&lt;br /&gt;
Wähle drei Beispiele aus deiner Sammlung und teste diese mit &#039;&#039;&#039;JUnit&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Geometry ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Abstrakte Klasse&#039;&#039;&#039; {{JSL|Geometry}}. Diese enthält folgende &#039;&#039;&#039;Methoden&#039;&#039;&#039;:&lt;br /&gt;
* {{JSL|getCircumference()}} und gibt einen {{JSL|double}} zurück&lt;br /&gt;
* {{JSL|getArea()}} und gibt einen {{JSL|double}} zurück&lt;br /&gt;
&lt;br /&gt;
Erstelle nun einige &#039;&#039;&#039;Klassen&#039;&#039;&#039; die von {{JSL|Geometry}} erben (Circle, Square, Rectangle, Triangle,...). Jede &#039;&#039;&#039;Klasse&#039;&#039;&#039; soll in ihrem Konstruktor die entsprechenden Werte erhalten.&lt;br /&gt;
&lt;br /&gt;
Erstelle nun verschiedene &#039;&#039;&#039;Instanzen&#039;&#039;&#039; von {{JSL|Geometry}}, speichere diese in einer {{JSL|List}}. Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die den Gesamtumfang und die Gesamtfläche aller {{JSL|Geometry}} &#039;&#039;&#039;Objekte&#039;&#039;&#039; in der {{JSL|List}} ausgibt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teste deine Implementierung ausgibig&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Verhalten ===&lt;br /&gt;
Wie in [[Protokoll#19._November_2021|Protokoll 19.11]] gezeigt, soll nun das &#039;&#039;&#039;Schwimmverhalten&#039;&#039;&#039; implementiert werden. Erstelle endweder die Bestehende Klassenhierarchie als Übung in deinem eigenen Paket, oder kopiere diese.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Graph === &lt;br /&gt;
&lt;br /&gt;
Ein Graph ist eine Datenstruktur die aus mehreren Knoten (Nodes besteht). Eine Node kann mehrere Nodes als Nachbarn haben, das heißt, sie hat eine Verbindung zu diesen Nachbarn.&lt;br /&gt;
[[Datei:Graph.png|mini|Ein einfacher Graph|150px]]&lt;br /&gt;
&lt;br /&gt;
* Erstelle eine Datenstruktur für die &#039;&#039;&#039;Node&#039;&#039;&#039; mit (X/Y Koordinaten), verwende für die Nachbarn eine {{JSL|List}} in der jeweiligen &#039;&#039;&#039;Node&#039;&#039;&#039;&lt;br /&gt;
* Erstelle weiters eine Datenstruktur für den Graphen, welche eine {{JSL|List}} von &#039;&#039;&#039;Nodes&#039;&#039;&#039; enthält&lt;br /&gt;
* Erstelle aus den schwarzen Pixeln des folgenden Labyrinths einen Graphen&lt;br /&gt;
&lt;br /&gt;
[[Datei:Labyrinth.png|150px|mini|none|Ein Labyrinth]]&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Dijkstra ===&lt;br /&gt;
&lt;br /&gt;
Zeige deinen Graphen in einem {{JSL|JPanel}} an. Es soll nun der Start und das Ziel angeklickt werden können. Finde mittels Dijkstra Algorithmus[https://de.wikipedia.org/wiki/Dijkstra-Algorithmus] den kürzesten Weg vom Start zum Ziel. Illustriere dabei alle durchwanderten Knoten.&lt;br /&gt;
&lt;br /&gt;
=== Schule: Volksschule Rotkreuz (Lustenau) ===&lt;br /&gt;
&lt;br /&gt;
Es gibt eine &#039;&#039;&#039;Schule&#039;&#039;&#039;. In der Schule sind verschiedene Räume, so wie &#039;&#039;&#039;KlassenRaum&#039;&#039;&#039;, &#039;&#039;&#039;SportHalle&#039;&#039;&#039;, &#039;&#039;&#039;Handwerk &amp;amp; Technik Raum&#039;&#039;&#039;. Die Schule hat ein &#039;&#039;&#039;Schuldirektor&#039;&#039;&#039; und viele &#039;&#039;&#039;Lehrer&#039;&#039;&#039;.  Die &#039;&#039;&#039;Schüler&#039;&#039;&#039;, die die Schule besuchen, gehören zu einer &#039;&#039;&#039;SchuleKlasse&#039;&#039;&#039;. Jede SchuleKlasse hat einen fixen Tagesablauf, die im &#039;&#039;&#039;Kursplan&#039;&#039;&#039; festgelegt ist. Der Kursplan beinhaltet, das Thema, den Lehrer und den Raum, wo es stattfindet.&lt;br /&gt;
&lt;br /&gt;
==== Simulation 0.1 ====&lt;br /&gt;
&lt;br /&gt;
Morgen kommen alle Lehrer und alle Schüler in die Schule. Die Schüler, die zu spät erscheinen, müssen zu dem Direktor.&lt;br /&gt;
&lt;br /&gt;
==== Simulation 0.2 ====&lt;br /&gt;
&lt;br /&gt;
Die Schüler haben einen fixen Tagesablauf. 45 Minuten Stunden, 15 Minuten Pause, 45 Minuten Stunde, ....&lt;br /&gt;
Am Beginn jeder Unterrichtsstunde gehen die Schüler in den entsprechenden Kursraum, wie es im Stundenplan vorgesehen ist.&lt;br /&gt;
&lt;br /&gt;
==== Simulation 0.3 ====&lt;br /&gt;
&lt;br /&gt;
Die Lehrer gehen in den Kursraum, wo sie gebraucht sind. Nach der Stunde kommen sie in dem Lehrerzimmer zurück. Falls sie keine Kursstunde haben, bleiben sie im Lehrerzimmer und korrigieren Hausaufgaben und Tests.&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbsttest&amp;diff=3708</id>
		<title>DCV 2024 09/Selbsttest</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbsttest&amp;diff=3708"/>
		<updated>2024-10-25T07:18:12Z</updated>

		<summary type="html">&lt;p&gt;Sandro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &#039;&#039;&#039;Wir wünschen euch schöne Ferien. Genießt die freie Zeit und nützt diese auch zum programmieren üben!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{TOC limit|4}}&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Selbstkontrolle ===&lt;br /&gt;
&#039;&#039;&#039;Die Selbstkontrolle, diese solltet ihr bearbeiten und ist eine gute Wiederholung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung|Selbstkontrolle]]&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Wiederholung Objektorientierte Programmierung ===&lt;br /&gt;
&#039;&#039;&#039;Wiederholung der Klassen Objekte&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[DCV_2024_09/Selbstkontrolle_Objektorientierte_Programmierung|Wiederholung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tipp des Tages: Hackerrank ===&lt;br /&gt;
Probiert es doch mal aus, macht spaß: https://hackerrank.com&lt;br /&gt;
&lt;br /&gt;
=== BonusAufgabe: GameOfLife ===&lt;br /&gt;
[[DCV_2023_03/Strukturierte_Programmierung_Uebungen/Arrays#Aufgabe:_Conways_Game_of_life|Conways Game of life]]&lt;br /&gt;
&lt;br /&gt;
=== BonusAufgabe: TicTacToe KI ===&lt;br /&gt;
Erweitere [[DCV_2023_03/Strukturierte_Programmierung_Uebungen/Arrays#Aufgabe:_TicTacToe|TicTacToe]], dass gegen den Computer gespielt werden kann. Siehe [https://www.geeksforgeeks.org/minimax-algorithm-in-game-theory-set-3-tic-tac-toe-ai-finding-optimal-move/ MiniMax Algorithmus].&lt;br /&gt;
&lt;br /&gt;
=== BonusAufgabe: Türme von Hanoi ===&lt;br /&gt;
Finde eine programmatische Lösung für die [https://de.wikipedia.org/wiki/T%C3%BCrme_von_Hanoi Türme von Hanoi].&lt;br /&gt;
&lt;br /&gt;
Als Datenstruktur wird ein 2-Dimensionales Array benötigt:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
int[][] hanoi = new int[3][Anzahl Scheiben]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Jede Scheibe wird durch eine Zahl reprästentiert, die dessen Größe beschreibt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Folgende Methoden werden benötigt&#039;&#039;&#039;:&lt;br /&gt;
* Spielfeld ausgeben&lt;br /&gt;
* Spielfeld initialisieren&lt;br /&gt;
* hanoiMove(int from, int to, int using, int count)&lt;br /&gt;
  * count == 1 // direct move&lt;br /&gt;
  * ansonstens 3 Schritte&lt;br /&gt;
      * hanoiMove(from, using, to, count - 1)&lt;br /&gt;
      * hanoiMove(from, to, using, 1) // Wirkliche Bewegung &lt;br /&gt;
      * hanoiMove(using, to, from, count - 1)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Tip:&#039;&#039;&#039; [https://de.wikipedia.org/wiki/Fibonacci-Folge Fibonacci]&lt;br /&gt;
&lt;br /&gt;
=== BonusAufgabe: Blackjack ===&lt;br /&gt;
&lt;br /&gt;
Regeln: http://www.hitorstand.net/strategy.php (Wir machen ohne Split)&lt;br /&gt;
&lt;br /&gt;
{{JML|code=&lt;br /&gt;
int[] deck = new int[52]; (initialisiert von 0, 1, 2 bis 51.)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Methoden:&#039;&#039;&#039;&lt;br /&gt;
* Mischen mit swap&lt;br /&gt;
* getColor() auf Basis value / 13&lt;br /&gt;
* getFigure() auf Basis value % 13&lt;br /&gt;
* getValue()&lt;br /&gt;
* getValueHand() // zB: Summe von 3 Karten&lt;br /&gt;
&lt;br /&gt;
Strategie für die Bank: Zieht bis &amp;lt; 17&lt;br /&gt;
&lt;br /&gt;
Achte auf eine schöne Ausgabe!&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09&amp;diff=3707</id>
		<title>DCV 2024 09</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09&amp;diff=3707"/>
		<updated>2024-10-25T07:17:40Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Strukturierte Programmierung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== [[DCV_2024_09/Allgemeines|Allgemeines]] ==&lt;br /&gt;
&lt;br /&gt;
== [[DCV_2024_09/Protokoll|Protokoll]] ==&lt;br /&gt;
&lt;br /&gt;
== Strukturierte Programmierung ==&lt;br /&gt;
* [[DCV_2024_09/Strukturierte_Programmierung_Uebungen|Übungen zur strukturierten Programmierung]]&lt;br /&gt;
* [[DCV_2024_09/Selbsttest|Selbsttest Herbstferien]]&lt;br /&gt;
&lt;br /&gt;
== Objektorientierte Programmierung ==&lt;br /&gt;
* [[DCV_2024_09/Objekt_Orientierte_Programmierung_Übungen|Übungen objektorientierte]]&lt;br /&gt;
* [[DCV_2024_09/OOP_Selbsttest|OOP Selbsttest für den 1. Mai]]&lt;br /&gt;
&lt;br /&gt;
== Datenbanken ==&lt;br /&gt;
* [[DCV_2024_09/DB_Übungen|Datenbank Übungen]]&lt;br /&gt;
&lt;br /&gt;
== GIT ==&lt;br /&gt;
* [[DCV_2024_09/Git|Git]]&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Objektorientierte_Programmierung&amp;diff=3706</id>
		<title>DCV 2024 09/Selbstkontrolle Objektorientierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Objektorientierte_Programmierung&amp;diff=3706"/>
		<updated>2024-10-25T07:16:48Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Aufgabe: Auto */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Aufgabe: Person ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Klasse&#039;&#039;&#039; welche die typischen Werte eines Menschen speichern kann.&lt;br /&gt;
* Vorname&lt;br /&gt;
* Nachname&lt;br /&gt;
* Alter&lt;br /&gt;
* Gewicht&lt;br /&gt;
* Größe&lt;br /&gt;
* Gender&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Auto ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Klasse&#039;&#039;&#039; welche die typischen Werte eines Autos speichern kann.&lt;br /&gt;
* Marke&lt;br /&gt;
* Typ&lt;br /&gt;
* Farbe&lt;br /&gt;
* PS&lt;br /&gt;
* Baujahr&lt;br /&gt;
... usw ...&lt;br /&gt;
&lt;br /&gt;
Erstelle eine PrintFunktion (damit ist nicht eine @Override gemeint) und gib damit einen Typenschein aus, mit allen wichtigen Informationen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
*******************************************&lt;br /&gt;
*     Marke: .....                        *&lt;br /&gt;
*     Type:  .....                        *&lt;br /&gt;
*     Farbe: .....                        *&lt;br /&gt;
*     PS:    .....                        *&lt;br /&gt;
*******************************************&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Teste diese Funktion und deine Klasse in einer Main mit verschiedenen &#039;&#039;&#039;Autos&#039;&#039;&#039; aus.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Auto 2.0 ===&lt;br /&gt;
Erweitere die Klasse um das Attribut &#039;&#039;&#039;Fahrer&#039;&#039;&#039;&lt;br /&gt;
Dieser soll selbst ein Objekt sein, dass du mit Hilfe der vorherigen Personen-Klasse erstellen kannst und dann als Attribut der Klasse Auto hinzufügst.&lt;br /&gt;
(Tipp: Wie wir den Regisseur zu Serie hinzufügt haben!)&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Objektorientierte_Programmierung&amp;diff=3705</id>
		<title>DCV 2024 09/Selbstkontrolle Objektorientierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Objektorientierte_Programmierung&amp;diff=3705"/>
		<updated>2024-10-25T07:16:26Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Aufgabe: Auto */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Aufgabe: Person ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Klasse&#039;&#039;&#039; welche die typischen Werte eines Menschen speichern kann.&lt;br /&gt;
* Vorname&lt;br /&gt;
* Nachname&lt;br /&gt;
* Alter&lt;br /&gt;
* Gewicht&lt;br /&gt;
* Größe&lt;br /&gt;
* Gender&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Auto ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Klasse&#039;&#039;&#039; welche die typischen Werte eines Autos speichern kann.&lt;br /&gt;
* Marke&lt;br /&gt;
* Typ&lt;br /&gt;
* Farbe&lt;br /&gt;
* PS&lt;br /&gt;
* Baujahr&lt;br /&gt;
... usw ...&lt;br /&gt;
&lt;br /&gt;
Erstelle eine PrintFunktion (damit ist nicht eine @Override gemeint) und gib damit einen Typenschein aus, mit allen wichtigen Informationen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
*******************************************&lt;br /&gt;
* Marke: .....                            *&lt;br /&gt;
* Type:  .....                            *&lt;br /&gt;
* Farbe: .....                            *&lt;br /&gt;
* PS:    .....                            *&lt;br /&gt;
*******************************************&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Teste diese Funktion und deine Klasse in einer Main mit verschiedenen &#039;&#039;&#039;Autos&#039;&#039;&#039; aus.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Auto 2.0 ===&lt;br /&gt;
Erweitere die Klasse um das Attribut &#039;&#039;&#039;Fahrer&#039;&#039;&#039;&lt;br /&gt;
Dieser soll selbst ein Objekt sein, dass du mit Hilfe der vorherigen Personen-Klasse erstellen kannst und dann als Attribut der Klasse Auto hinzufügst.&lt;br /&gt;
(Tipp: Wie wir den Regisseur zu Serie hinzufügt haben!)&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Objektorientierte_Programmierung&amp;diff=3704</id>
		<title>DCV 2024 09/Selbstkontrolle Objektorientierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Objektorientierte_Programmierung&amp;diff=3704"/>
		<updated>2024-10-25T07:13:28Z</updated>

		<summary type="html">&lt;p&gt;Sandro: Die Seite wurde neu angelegt: „=== Aufgabe: Person === Erstelle eine &amp;#039;&amp;#039;&amp;#039;Klasse&amp;#039;&amp;#039;&amp;#039; welche die typischen Werte eines Menschen speichern kann. * Vorname * Nachname * Alter * Gewicht * Größe * Gender   === Aufgabe: Auto === Erstelle eine &amp;#039;&amp;#039;&amp;#039;Klasse&amp;#039;&amp;#039;&amp;#039; welche die typischen Werte eines Autos speichern kann. * Marke * Typ * Farbe * PS * Baujahr ... usw ...  Erstelle eine PrintFunktion (damit ist nicht eine @Override gemeint) und gib damit einen Typenschein aus, mit allen wichtigen Informatio…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Aufgabe: Person ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Klasse&#039;&#039;&#039; welche die typischen Werte eines Menschen speichern kann.&lt;br /&gt;
* Vorname&lt;br /&gt;
* Nachname&lt;br /&gt;
* Alter&lt;br /&gt;
* Gewicht&lt;br /&gt;
* Größe&lt;br /&gt;
* Gender&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Auto ===&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Klasse&#039;&#039;&#039; welche die typischen Werte eines Autos speichern kann.&lt;br /&gt;
* Marke&lt;br /&gt;
* Typ&lt;br /&gt;
* Farbe&lt;br /&gt;
* PS&lt;br /&gt;
* Baujahr&lt;br /&gt;
... usw ...&lt;br /&gt;
&lt;br /&gt;
Erstelle eine PrintFunktion (damit ist nicht eine @Override gemeint) und gib damit einen Typenschein aus, mit allen wichtigen Informationen.&lt;br /&gt;
Teste diese Funktion und deine Klasse in einer Main mit verschiedenen &#039;&#039;&#039;Autos&#039;&#039;&#039; aus.&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Auto 2.0 ===&lt;br /&gt;
Erweitere die Klasse um das Attribut &#039;&#039;&#039;Fahrer&#039;&#039;&#039;&lt;br /&gt;
Dieser soll selbst ein Objekt sein, dass du mit Hilfe der vorherigen Personen-Klasse erstellen kannst und dann als Attribut der Klasse Auto hinzufügst.&lt;br /&gt;
(Tipp: Wie wir den Regisseur zu Serie hinzufügt haben!)&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbsttest&amp;diff=3703</id>
		<title>DCV 2024 09/Selbsttest</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbsttest&amp;diff=3703"/>
		<updated>2024-10-25T07:03:27Z</updated>

		<summary type="html">&lt;p&gt;Sandro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &#039;&#039;&#039;Wir wünschen euch schöne Ferien. Genießt die freie Zeit und nützt diese auch zum programmieren üben!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{TOC limit|4}}&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Selbstkontrolle ===&lt;br /&gt;
&#039;&#039;&#039;Die Selbstkontrolle, diese solltet ihr bearbeiten und ist eine gute Wiederholung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung|Selbstkontrolle]]&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Wiederholung Objektorientierte Programmierung ===&lt;br /&gt;
&#039;&#039;&#039;Wiederholung der Klassen Objekte&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[DCV_2024_09/Selbstkontrolle_Objektorientierte_Programmierung|Selbstkontrolle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tipp des Tages: Hackerrank ===&lt;br /&gt;
Probiert es doch mal aus, macht spaß: https://hackerrank.com&lt;br /&gt;
&lt;br /&gt;
=== BonusAufgabe: GameOfLife ===&lt;br /&gt;
[[DCV_2023_03/Strukturierte_Programmierung_Uebungen/Arrays#Aufgabe:_Conways_Game_of_life|Conways Game of life]]&lt;br /&gt;
&lt;br /&gt;
=== BonusAufgabe: TicTacToe KI ===&lt;br /&gt;
Erweitere [[DCV_2023_03/Strukturierte_Programmierung_Uebungen/Arrays#Aufgabe:_TicTacToe|TicTacToe]], dass gegen den Computer gespielt werden kann. Siehe [https://www.geeksforgeeks.org/minimax-algorithm-in-game-theory-set-3-tic-tac-toe-ai-finding-optimal-move/ MiniMax Algorithmus].&lt;br /&gt;
&lt;br /&gt;
=== BonusAufgabe: Türme von Hanoi ===&lt;br /&gt;
Finde eine programmatische Lösung für die [https://de.wikipedia.org/wiki/T%C3%BCrme_von_Hanoi Türme von Hanoi].&lt;br /&gt;
&lt;br /&gt;
Als Datenstruktur wird ein 2-Dimensionales Array benötigt:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
int[][] hanoi = new int[3][Anzahl Scheiben]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Jede Scheibe wird durch eine Zahl reprästentiert, die dessen Größe beschreibt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Folgende Methoden werden benötigt&#039;&#039;&#039;:&lt;br /&gt;
* Spielfeld ausgeben&lt;br /&gt;
* Spielfeld initialisieren&lt;br /&gt;
* hanoiMove(int from, int to, int using, int count)&lt;br /&gt;
  * count == 1 // direct move&lt;br /&gt;
  * ansonstens 3 Schritte&lt;br /&gt;
      * hanoiMove(from, using, to, count - 1)&lt;br /&gt;
      * hanoiMove(from, to, using, 1) // Wirkliche Bewegung &lt;br /&gt;
      * hanoiMove(using, to, from, count - 1)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Tip:&#039;&#039;&#039; [https://de.wikipedia.org/wiki/Fibonacci-Folge Fibonacci]&lt;br /&gt;
&lt;br /&gt;
=== BonusAufgabe: Blackjack ===&lt;br /&gt;
&lt;br /&gt;
Regeln: http://www.hitorstand.net/strategy.php (Wir machen ohne Split)&lt;br /&gt;
&lt;br /&gt;
{{JML|code=&lt;br /&gt;
int[] deck = new int[52]; (initialisiert von 0, 1, 2 bis 51.)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Methoden:&#039;&#039;&#039;&lt;br /&gt;
* Mischen mit swap&lt;br /&gt;
* getColor() auf Basis value / 13&lt;br /&gt;
* getFigure() auf Basis value % 13&lt;br /&gt;
* getValue()&lt;br /&gt;
* getValueHand() // zB: Summe von 3 Karten&lt;br /&gt;
&lt;br /&gt;
Strategie für die Bank: Zieht bis &amp;lt; 17&lt;br /&gt;
&lt;br /&gt;
Achte auf eine schöne Ausgabe!&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbsttest&amp;diff=3702</id>
		<title>DCV 2024 09/Selbsttest</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbsttest&amp;diff=3702"/>
		<updated>2024-10-25T07:01:07Z</updated>

		<summary type="html">&lt;p&gt;Sandro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &#039;&#039;&#039;Wir wünschen euch schöne Ferien. Genießt die freie Zeit und nützt diese auch zum programmieren üben!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{TOC limit|4}}&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Selbstkontrolle ===&lt;br /&gt;
&#039;&#039;&#039;Die Selbstkontrolle, diese solltet ihr bearbeiten und ist eine gute Wiederholung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung|Selbstkontrolle]]&lt;br /&gt;
&lt;br /&gt;
 Der Punkt Datenströme ist &#039;&#039;&#039;optional&#039;&#039;&#039;, da dieser noch nicht behandelt wurde. Man kann es natürlich trotzdem erledigen!&lt;br /&gt;
&lt;br /&gt;
=== Tipp des Tages: Hackerrank ===&lt;br /&gt;
Probiert es doch mal aus, macht spaß: https://hackerrank.com&lt;br /&gt;
&lt;br /&gt;
=== BonusAufgabe: GameOfLife ===&lt;br /&gt;
[[DCV_2023_03/Strukturierte_Programmierung_Uebungen/Arrays#Aufgabe:_Conways_Game_of_life|Conways Game of life]]&lt;br /&gt;
&lt;br /&gt;
=== BonusAufgabe: TicTacToe KI ===&lt;br /&gt;
Erweitere [[DCV_2023_03/Strukturierte_Programmierung_Uebungen/Arrays#Aufgabe:_TicTacToe|TicTacToe]], dass gegen den Computer gespielt werden kann. Siehe [https://www.geeksforgeeks.org/minimax-algorithm-in-game-theory-set-3-tic-tac-toe-ai-finding-optimal-move/ MiniMax Algorithmus].&lt;br /&gt;
&lt;br /&gt;
=== BonusAufgabe: Türme von Hanoi ===&lt;br /&gt;
Finde eine programmatische Lösung für die [https://de.wikipedia.org/wiki/T%C3%BCrme_von_Hanoi Türme von Hanoi].&lt;br /&gt;
&lt;br /&gt;
Als Datenstruktur wird ein 2-Dimensionales Array benötigt:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
int[][] hanoi = new int[3][Anzahl Scheiben]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Jede Scheibe wird durch eine Zahl reprästentiert, die dessen Größe beschreibt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Folgende Methoden werden benötigt&#039;&#039;&#039;:&lt;br /&gt;
* Spielfeld ausgeben&lt;br /&gt;
* Spielfeld initialisieren&lt;br /&gt;
* hanoiMove(int from, int to, int using, int count)&lt;br /&gt;
  * count == 1 // direct move&lt;br /&gt;
  * ansonstens 3 Schritte&lt;br /&gt;
      * hanoiMove(from, using, to, count - 1)&lt;br /&gt;
      * hanoiMove(from, to, using, 1) // Wirkliche Bewegung &lt;br /&gt;
      * hanoiMove(using, to, from, count - 1)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Tip:&#039;&#039;&#039; [https://de.wikipedia.org/wiki/Fibonacci-Folge Fibonacci]&lt;br /&gt;
&lt;br /&gt;
=== BonusAufgabe: Blackjack ===&lt;br /&gt;
&lt;br /&gt;
Regeln: http://www.hitorstand.net/strategy.php (Wir machen ohne Split)&lt;br /&gt;
&lt;br /&gt;
{{JML|code=&lt;br /&gt;
int[] deck = new int[52]; (initialisiert von 0, 1, 2 bis 51.)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Methoden:&#039;&#039;&#039;&lt;br /&gt;
* Mischen mit swap&lt;br /&gt;
* getColor() auf Basis value / 13&lt;br /&gt;
* getFigure() auf Basis value % 13&lt;br /&gt;
* getValue()&lt;br /&gt;
* getValueHand() // zB: Summe von 3 Karten&lt;br /&gt;
&lt;br /&gt;
Strategie für die Bank: Zieht bis &amp;lt; 17&lt;br /&gt;
&lt;br /&gt;
Achte auf eine schöne Ausgabe!&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3701</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3701"/>
		<updated>2024-10-25T06:59:15Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Zeitlicher Ablauf */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 4-6 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&#039;&#039;&#039;...wer es schneller schafft = GUT, wer noch länger daran arbeitet = UM SO BESSER!...&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle eine Methode welche einen Rhombus von variabler Größe und mit angegebene Zeichen ausgibt. Die Größe soll dabei die Höhe des Rhombus sein.&lt;br /&gt;
# Löse das Problem wie es dir gefällt&lt;br /&gt;
# Löse das Problem mit nur zwei ineinander verschachtelten Schleifen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf:&#039;&#039;&#039;&lt;br /&gt;
{{JSL|printRhombus(&amp;quot;x&amp;quot;, 7);}}&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
{{NoLine}}&lt;br /&gt;
......X......&lt;br /&gt;
.....X.X.....&lt;br /&gt;
....X...X....&lt;br /&gt;
...X.....X...&lt;br /&gt;
..X.......X..&lt;br /&gt;
.X.........X.&lt;br /&gt;
X...........X&lt;br /&gt;
.X.........X.&lt;br /&gt;
..X.......X..&lt;br /&gt;
...X.....X...&lt;br /&gt;
....X...X....&lt;br /&gt;
.....X.X.....&lt;br /&gt;
......X......&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erweitere das Ratespiel so, dass die Parameter über die Konsole eingegeben werden können.&lt;br /&gt;
Wie zum Beispiel die Min und Max Value der Zahlen des random.nextInt(), oder die Versuche die der User hat bis das Spiel zu Ende ist.&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2024}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle eine neue {{JSL|Calendar}} Instanz und gib das Datum des nächsten &#039;&#039;&#039;Sonntags&#039;&#039;&#039; aus.&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Verwende den gegebenen {{JSL|String[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere die Namen nach Länge aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen nach Länge absteigend (Descending)&lt;br /&gt;
# Sortiere die Namen lexikographisch aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen lexikographisch absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
 Tip.: Strings können mit der Instanz Methode {{JSL|compareTo}} der {{JSL|String}} Klasse verglichen werden: {{JSL|&amp;quot;a&amp;quot;.compareTo(&amp;quot;b&amp;quot;)}}&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] names = new String[]{&amp;quot;Furkan&amp;quot;, &amp;quot;Aylin&amp;quot;, &amp;quot;Thiemo&amp;quot;, &amp;quot;Erik&amp;quot;, &amp;quot;Akif&amp;quot;, &amp;quot;Sandro&amp;quot;, &amp;quot;Gyula&amp;quot;, &amp;quot;Ölaf&amp;quot;, &amp;quot;Ümit&amp;quot; };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür {{JSL|text.toCharArray()}} für das Aufsplitten und {{JSL|new String(charArray)}} zum Zusammenfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen zum Reverseprogramm!!!111&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;Hallo&lt;br /&gt;
ollaH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufagabe) ====&lt;br /&gt;
Erstelle einen schönen tabellarischen Ausgabe aus den folgenden Arrays:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] firstName = {&amp;quot;Alfonso&amp;quot;, &amp;quot;Beatrix-Eleonor&amp;quot;, &amp;quot;Cecil&amp;quot;, &amp;quot;Daniel&amp;quot;, &amp;quot;Elmar&amp;quot;};&lt;br /&gt;
String[] lastName = {&amp;quot;Klein&amp;quot;, &amp;quot;Kinderdorfer&amp;quot;, &amp;quot;Al Elmenar&amp;quot;, &amp;quot;Schmidt&amp;quot;, &amp;quot;Simma&amp;quot;};&lt;br /&gt;
int[] age = {40, 78, 5, 18, 81};&lt;br /&gt;
String[] place = {&amp;quot;Wien&amp;quot;, &amp;quot;Schwarzach&amp;quot;, &amp;quot;Wiener Neudorf&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;};&lt;br /&gt;
float[] distanceFromCapital = {0f, 654.4f, 12.457634366f, 120.0f, 119.9999f};&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 Denke daran, dass eine Tabelle eine Kopfzeile und Trennzeichen haben kann.&lt;br /&gt;
&lt;br /&gt;
== Datenströme/Files  ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} soll der Inhalt eines bestimmten Verzeichnisses ausgegeben werden. Gib hierfür eine Liste aller Dateien aus.&lt;br /&gt;
&lt;br /&gt;
[https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html Dokumentation von File]&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Liste die Dateien in folgender Rheinfolge auf.&lt;br /&gt;
* Unterverzeichnisse&lt;br /&gt;
* Dateien nach Größe absteigend&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} soll der Inhalt eines bestimmten Verzeichnisses &#039;&#039;&#039;und aller Unterverzeichnisse&#039;&#039;&#039; verarbeitet und in der Konsole ausgedrückt werden.&lt;br /&gt;
Verwende eine Funktion rekursiv und achte beim Ausdruck darauf, dass für jedes Unterverzeichnis die Einrückung größer wird.&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3700</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3700"/>
		<updated>2024-10-25T06:57:47Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Datenströme/Files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle eine Methode welche einen Rhombus von variabler Größe und mit angegebene Zeichen ausgibt. Die Größe soll dabei die Höhe des Rhombus sein.&lt;br /&gt;
# Löse das Problem wie es dir gefällt&lt;br /&gt;
# Löse das Problem mit nur zwei ineinander verschachtelten Schleifen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf:&#039;&#039;&#039;&lt;br /&gt;
{{JSL|printRhombus(&amp;quot;x&amp;quot;, 7);}}&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
{{NoLine}}&lt;br /&gt;
......X......&lt;br /&gt;
.....X.X.....&lt;br /&gt;
....X...X....&lt;br /&gt;
...X.....X...&lt;br /&gt;
..X.......X..&lt;br /&gt;
.X.........X.&lt;br /&gt;
X...........X&lt;br /&gt;
.X.........X.&lt;br /&gt;
..X.......X..&lt;br /&gt;
...X.....X...&lt;br /&gt;
....X...X....&lt;br /&gt;
.....X.X.....&lt;br /&gt;
......X......&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erweitere das Ratespiel so, dass die Parameter über die Konsole eingegeben werden können.&lt;br /&gt;
Wie zum Beispiel die Min und Max Value der Zahlen des random.nextInt(), oder die Versuche die der User hat bis das Spiel zu Ende ist.&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2024}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle eine neue {{JSL|Calendar}} Instanz und gib das Datum des nächsten &#039;&#039;&#039;Sonntags&#039;&#039;&#039; aus.&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Verwende den gegebenen {{JSL|String[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere die Namen nach Länge aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen nach Länge absteigend (Descending)&lt;br /&gt;
# Sortiere die Namen lexikographisch aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen lexikographisch absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
 Tip.: Strings können mit der Instanz Methode {{JSL|compareTo}} der {{JSL|String}} Klasse verglichen werden: {{JSL|&amp;quot;a&amp;quot;.compareTo(&amp;quot;b&amp;quot;)}}&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] names = new String[]{&amp;quot;Furkan&amp;quot;, &amp;quot;Aylin&amp;quot;, &amp;quot;Thiemo&amp;quot;, &amp;quot;Erik&amp;quot;, &amp;quot;Akif&amp;quot;, &amp;quot;Sandro&amp;quot;, &amp;quot;Gyula&amp;quot;, &amp;quot;Ölaf&amp;quot;, &amp;quot;Ümit&amp;quot; };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür {{JSL|text.toCharArray()}} für das Aufsplitten und {{JSL|new String(charArray)}} zum Zusammenfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen zum Reverseprogramm!!!111&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;Hallo&lt;br /&gt;
ollaH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufagabe) ====&lt;br /&gt;
Erstelle einen schönen tabellarischen Ausgabe aus den folgenden Arrays:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] firstName = {&amp;quot;Alfonso&amp;quot;, &amp;quot;Beatrix-Eleonor&amp;quot;, &amp;quot;Cecil&amp;quot;, &amp;quot;Daniel&amp;quot;, &amp;quot;Elmar&amp;quot;};&lt;br /&gt;
String[] lastName = {&amp;quot;Klein&amp;quot;, &amp;quot;Kinderdorfer&amp;quot;, &amp;quot;Al Elmenar&amp;quot;, &amp;quot;Schmidt&amp;quot;, &amp;quot;Simma&amp;quot;};&lt;br /&gt;
int[] age = {40, 78, 5, 18, 81};&lt;br /&gt;
String[] place = {&amp;quot;Wien&amp;quot;, &amp;quot;Schwarzach&amp;quot;, &amp;quot;Wiener Neudorf&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;};&lt;br /&gt;
float[] distanceFromCapital = {0f, 654.4f, 12.457634366f, 120.0f, 119.9999f};&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 Denke daran, dass eine Tabelle eine Kopfzeile und Trennzeichen haben kann.&lt;br /&gt;
&lt;br /&gt;
== Datenströme/Files  ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} soll der Inhalt eines bestimmten Verzeichnisses ausgegeben werden. Gib hierfür eine Liste aller Dateien aus.&lt;br /&gt;
&lt;br /&gt;
[https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html Dokumentation von File]&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Liste die Dateien in folgender Rheinfolge auf.&lt;br /&gt;
* Unterverzeichnisse&lt;br /&gt;
* Dateien nach Größe absteigend&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} soll der Inhalt eines bestimmten Verzeichnisses &#039;&#039;&#039;und aller Unterverzeichnisse&#039;&#039;&#039; verarbeitet und in der Konsole ausgedrückt werden.&lt;br /&gt;
Verwende eine Funktion rekursiv und achte beim Ausdruck darauf, dass für jedes Unterverzeichnis die Einrückung größer wird.&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3699</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3699"/>
		<updated>2024-10-25T06:55:29Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Kalender */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle eine Methode welche einen Rhombus von variabler Größe und mit angegebene Zeichen ausgibt. Die Größe soll dabei die Höhe des Rhombus sein.&lt;br /&gt;
# Löse das Problem wie es dir gefällt&lt;br /&gt;
# Löse das Problem mit nur zwei ineinander verschachtelten Schleifen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf:&#039;&#039;&#039;&lt;br /&gt;
{{JSL|printRhombus(&amp;quot;x&amp;quot;, 7);}}&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
{{NoLine}}&lt;br /&gt;
......X......&lt;br /&gt;
.....X.X.....&lt;br /&gt;
....X...X....&lt;br /&gt;
...X.....X...&lt;br /&gt;
..X.......X..&lt;br /&gt;
.X.........X.&lt;br /&gt;
X...........X&lt;br /&gt;
.X.........X.&lt;br /&gt;
..X.......X..&lt;br /&gt;
...X.....X...&lt;br /&gt;
....X...X....&lt;br /&gt;
.....X.X.....&lt;br /&gt;
......X......&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erweitere das Ratespiel so, dass die Parameter über die Konsole eingegeben werden können.&lt;br /&gt;
Wie zum Beispiel die Min und Max Value der Zahlen des random.nextInt(), oder die Versuche die der User hat bis das Spiel zu Ende ist.&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2024}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle eine neue {{JSL|Calendar}} Instanz und gib das Datum des nächsten &#039;&#039;&#039;Sonntags&#039;&#039;&#039; aus.&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Verwende den gegebenen {{JSL|String[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere die Namen nach Länge aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen nach Länge absteigend (Descending)&lt;br /&gt;
# Sortiere die Namen lexikographisch aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen lexikographisch absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
 Tip.: Strings können mit der Instanz Methode {{JSL|compareTo}} der {{JSL|String}} Klasse verglichen werden: {{JSL|&amp;quot;a&amp;quot;.compareTo(&amp;quot;b&amp;quot;)}}&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] names = new String[]{&amp;quot;Furkan&amp;quot;, &amp;quot;Aylin&amp;quot;, &amp;quot;Thiemo&amp;quot;, &amp;quot;Erik&amp;quot;, &amp;quot;Akif&amp;quot;, &amp;quot;Sandro&amp;quot;, &amp;quot;Gyula&amp;quot;, &amp;quot;Ölaf&amp;quot;, &amp;quot;Ümit&amp;quot; };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür {{JSL|text.toCharArray()}} für das Aufsplitten und {{JSL|new String(charArray)}} zum Zusammenfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen zum Reverseprogramm!!!111&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;Hallo&lt;br /&gt;
ollaH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufagabe) ====&lt;br /&gt;
Erstelle einen schönen tabellarischen Ausgabe aus den folgenden Arrays:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] firstName = {&amp;quot;Alfonso&amp;quot;, &amp;quot;Beatrix-Eleonor&amp;quot;, &amp;quot;Cecil&amp;quot;, &amp;quot;Daniel&amp;quot;, &amp;quot;Elmar&amp;quot;};&lt;br /&gt;
String[] lastName = {&amp;quot;Klein&amp;quot;, &amp;quot;Kinderdorfer&amp;quot;, &amp;quot;Al Elmenar&amp;quot;, &amp;quot;Schmidt&amp;quot;, &amp;quot;Simma&amp;quot;};&lt;br /&gt;
int[] age = {40, 78, 5, 18, 81};&lt;br /&gt;
String[] place = {&amp;quot;Wien&amp;quot;, &amp;quot;Schwarzach&amp;quot;, &amp;quot;Wiener Neudorf&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;};&lt;br /&gt;
float[] distanceFromCapital = {0f, 654.4f, 12.457634366f, 120.0f, 119.9999f};&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 Denke daran, dass eine Tabelle eine Kopfzeile und Trennzeichen haben kann.&lt;br /&gt;
&lt;br /&gt;
== Datenströme/Files  ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} soll der Inhalt eines bestimmten Verzeichnisses ausgegeben werden. Gib hierfür eine Liste aller Dateien aus.&lt;br /&gt;
&lt;br /&gt;
[https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html Dokumentation von File]&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Liste die Dateien in folgender Rheinfolge auf.&lt;br /&gt;
* Unterverzeichnisse&lt;br /&gt;
* Dateien nach Größe absteigend&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3698</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3698"/>
		<updated>2024-10-25T06:54:30Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Aufgabe 3) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle eine Methode welche einen Rhombus von variabler Größe und mit angegebene Zeichen ausgibt. Die Größe soll dabei die Höhe des Rhombus sein.&lt;br /&gt;
# Löse das Problem wie es dir gefällt&lt;br /&gt;
# Löse das Problem mit nur zwei ineinander verschachtelten Schleifen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf:&#039;&#039;&#039;&lt;br /&gt;
{{JSL|printRhombus(&amp;quot;x&amp;quot;, 7);}}&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
{{NoLine}}&lt;br /&gt;
......X......&lt;br /&gt;
.....X.X.....&lt;br /&gt;
....X...X....&lt;br /&gt;
...X.....X...&lt;br /&gt;
..X.......X..&lt;br /&gt;
.X.........X.&lt;br /&gt;
X...........X&lt;br /&gt;
.X.........X.&lt;br /&gt;
..X.......X..&lt;br /&gt;
...X.....X...&lt;br /&gt;
....X...X....&lt;br /&gt;
.....X.X.....&lt;br /&gt;
......X......&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erweitere das Ratespiel so, dass die Parameter über die Konsole eingegeben werden können.&lt;br /&gt;
Wie zum Beispiel die Min und Max Value der Zahlen des random.nextInt(), oder die Versuche die der User hat bis das Spiel zu Ende ist.&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2024}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Verwende den gegebenen {{JSL|String[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere die Namen nach Länge aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen nach Länge absteigend (Descending)&lt;br /&gt;
# Sortiere die Namen lexikographisch aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen lexikographisch absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
 Tip.: Strings können mit der Instanz Methode {{JSL|compareTo}} der {{JSL|String}} Klasse verglichen werden: {{JSL|&amp;quot;a&amp;quot;.compareTo(&amp;quot;b&amp;quot;)}}&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] names = new String[]{&amp;quot;Furkan&amp;quot;, &amp;quot;Aylin&amp;quot;, &amp;quot;Thiemo&amp;quot;, &amp;quot;Erik&amp;quot;, &amp;quot;Akif&amp;quot;, &amp;quot;Sandro&amp;quot;, &amp;quot;Gyula&amp;quot;, &amp;quot;Ölaf&amp;quot;, &amp;quot;Ümit&amp;quot; };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür {{JSL|text.toCharArray()}} für das Aufsplitten und {{JSL|new String(charArray)}} zum Zusammenfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen zum Reverseprogramm!!!111&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;Hallo&lt;br /&gt;
ollaH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufagabe) ====&lt;br /&gt;
Erstelle einen schönen tabellarischen Ausgabe aus den folgenden Arrays:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] firstName = {&amp;quot;Alfonso&amp;quot;, &amp;quot;Beatrix-Eleonor&amp;quot;, &amp;quot;Cecil&amp;quot;, &amp;quot;Daniel&amp;quot;, &amp;quot;Elmar&amp;quot;};&lt;br /&gt;
String[] lastName = {&amp;quot;Klein&amp;quot;, &amp;quot;Kinderdorfer&amp;quot;, &amp;quot;Al Elmenar&amp;quot;, &amp;quot;Schmidt&amp;quot;, &amp;quot;Simma&amp;quot;};&lt;br /&gt;
int[] age = {40, 78, 5, 18, 81};&lt;br /&gt;
String[] place = {&amp;quot;Wien&amp;quot;, &amp;quot;Schwarzach&amp;quot;, &amp;quot;Wiener Neudorf&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;};&lt;br /&gt;
float[] distanceFromCapital = {0f, 654.4f, 12.457634366f, 120.0f, 119.9999f};&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 Denke daran, dass eine Tabelle eine Kopfzeile und Trennzeichen haben kann.&lt;br /&gt;
&lt;br /&gt;
== Datenströme/Files  ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} soll der Inhalt eines bestimmten Verzeichnisses ausgegeben werden. Gib hierfür eine Liste aller Dateien aus.&lt;br /&gt;
&lt;br /&gt;
[https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html Dokumentation von File]&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Liste die Dateien in folgender Rheinfolge auf.&lt;br /&gt;
* Unterverzeichnisse&lt;br /&gt;
* Dateien nach Größe absteigend&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3697</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3697"/>
		<updated>2024-10-25T06:54:14Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Methoden */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle eine Methode welche einen Rhombus von variabler Größe und mit angegebene Zeichen ausgibt. Die Größe soll dabei die Höhe des Rhombus sein.&lt;br /&gt;
# Löse das Problem wie es dir gefällt&lt;br /&gt;
# Löse das Problem mit nur zwei ineinander verschachtelten Schleifen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf:&#039;&#039;&#039;&lt;br /&gt;
{{JSL|printRhombus(&amp;quot;x&amp;quot;, 7);}}&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
{{NoLine}}&lt;br /&gt;
......X......&lt;br /&gt;
.....X.X.....&lt;br /&gt;
....X...X....&lt;br /&gt;
...X.....X...&lt;br /&gt;
..X.......X..&lt;br /&gt;
.X.........X.&lt;br /&gt;
X...........X&lt;br /&gt;
.X.........X.&lt;br /&gt;
..X.......X..&lt;br /&gt;
...X.....X...&lt;br /&gt;
....X...X....&lt;br /&gt;
.....X.X.....&lt;br /&gt;
......X......&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erweitere das Ratespiel so, dass die Parameter über die Konsole eingegeben werden können.&lt;br /&gt;
Wie zum Beispiel die Min und Max Value der Zahlen des random.nextInt(), oder die Versuche die der User hat bis das Spiel zu Ende ist.&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2024}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Verwende den gegebenen {{JSL|String[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere die Namen nach Länge aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen nach Länge absteigend (Descending)&lt;br /&gt;
# Sortiere die Namen lexikographisch aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen lexikographisch absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
 Tip.: Strings können mit der Instanz Methode {{JSL|compareTo}} der {{JSL|String}} Klasse verglichen werden: {{JSL|&amp;quot;a&amp;quot;.compareTo(&amp;quot;b&amp;quot;)}}&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] names = new String[]{&amp;quot;Furkan&amp;quot;, &amp;quot;Aylin&amp;quot;, &amp;quot;Thiemo&amp;quot;, &amp;quot;Erik&amp;quot;, &amp;quot;Akif&amp;quot;, &amp;quot;Sandro&amp;quot;, &amp;quot;Gyula&amp;quot;, &amp;quot;Ölaf&amp;quot;, &amp;quot;Ümit&amp;quot; };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür {{JSL|text.toCharArray()}} für das Aufsplitten und {{JSL|new String(charArray)}} zum Zusammenfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen zum Reverseprogramm!!!111&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;Hallo&lt;br /&gt;
ollaH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufagabe) ====&lt;br /&gt;
Erstelle einen schönen tabellarischen Ausgabe aus den folgenden Arrays:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] firstName = {&amp;quot;Alfonso&amp;quot;, &amp;quot;Beatrix-Eleonor&amp;quot;, &amp;quot;Cecil&amp;quot;, &amp;quot;Daniel&amp;quot;, &amp;quot;Elmar&amp;quot;};&lt;br /&gt;
String[] lastName = {&amp;quot;Klein&amp;quot;, &amp;quot;Kinderdorfer&amp;quot;, &amp;quot;Al Elmenar&amp;quot;, &amp;quot;Schmidt&amp;quot;, &amp;quot;Simma&amp;quot;};&lt;br /&gt;
int[] age = {40, 78, 5, 18, 81};&lt;br /&gt;
String[] place = {&amp;quot;Wien&amp;quot;, &amp;quot;Schwarzach&amp;quot;, &amp;quot;Wiener Neudorf&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;};&lt;br /&gt;
float[] distanceFromCapital = {0f, 654.4f, 12.457634366f, 120.0f, 119.9999f};&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 Denke daran, dass eine Tabelle eine Kopfzeile und Trennzeichen haben kann.&lt;br /&gt;
&lt;br /&gt;
== Datenströme/Files  ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} soll der Inhalt eines bestimmten Verzeichnisses ausgegeben werden. Gib hierfür eine Liste aller Dateien aus.&lt;br /&gt;
&lt;br /&gt;
[https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html Dokumentation von File]&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Liste die Dateien in folgender Rheinfolge auf.&lt;br /&gt;
* Unterverzeichnisse&lt;br /&gt;
* Dateien nach Größe absteigend&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3696</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3696"/>
		<updated>2024-10-25T06:53:30Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Aufgabe 3) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erweitere das Ratespiel so, dass die Parameter über die Konsole eingegeben werden können.&lt;br /&gt;
Wie zum Beispiel die Min und Max Value der Zahlen des random.nextInt(), oder die Versuche die der User hat bis das Spiel zu Ende ist.&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2024}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Verwende den gegebenen {{JSL|String[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere die Namen nach Länge aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen nach Länge absteigend (Descending)&lt;br /&gt;
# Sortiere die Namen lexikographisch aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen lexikographisch absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
 Tip.: Strings können mit der Instanz Methode {{JSL|compareTo}} der {{JSL|String}} Klasse verglichen werden: {{JSL|&amp;quot;a&amp;quot;.compareTo(&amp;quot;b&amp;quot;)}}&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] names = new String[]{&amp;quot;Furkan&amp;quot;, &amp;quot;Aylin&amp;quot;, &amp;quot;Thiemo&amp;quot;, &amp;quot;Erik&amp;quot;, &amp;quot;Akif&amp;quot;, &amp;quot;Sandro&amp;quot;, &amp;quot;Gyula&amp;quot;, &amp;quot;Ölaf&amp;quot;, &amp;quot;Ümit&amp;quot; };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür {{JSL|text.toCharArray()}} für das Aufsplitten und {{JSL|new String(charArray)}} zum Zusammenfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen zum Reverseprogramm!!!111&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;Hallo&lt;br /&gt;
ollaH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufagabe) ====&lt;br /&gt;
Erstelle einen schönen tabellarischen Ausgabe aus den folgenden Arrays:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] firstName = {&amp;quot;Alfonso&amp;quot;, &amp;quot;Beatrix-Eleonor&amp;quot;, &amp;quot;Cecil&amp;quot;, &amp;quot;Daniel&amp;quot;, &amp;quot;Elmar&amp;quot;};&lt;br /&gt;
String[] lastName = {&amp;quot;Klein&amp;quot;, &amp;quot;Kinderdorfer&amp;quot;, &amp;quot;Al Elmenar&amp;quot;, &amp;quot;Schmidt&amp;quot;, &amp;quot;Simma&amp;quot;};&lt;br /&gt;
int[] age = {40, 78, 5, 18, 81};&lt;br /&gt;
String[] place = {&amp;quot;Wien&amp;quot;, &amp;quot;Schwarzach&amp;quot;, &amp;quot;Wiener Neudorf&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;};&lt;br /&gt;
float[] distanceFromCapital = {0f, 654.4f, 12.457634366f, 120.0f, 119.9999f};&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 Denke daran, dass eine Tabelle eine Kopfzeile und Trennzeichen haben kann.&lt;br /&gt;
&lt;br /&gt;
== Datenströme/Files  ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} soll der Inhalt eines bestimmten Verzeichnisses ausgegeben werden. Gib hierfür eine Liste aller Dateien aus.&lt;br /&gt;
&lt;br /&gt;
[https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html Dokumentation von File]&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Liste die Dateien in folgender Rheinfolge auf.&lt;br /&gt;
* Unterverzeichnisse&lt;br /&gt;
* Dateien nach Größe absteigend&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3695</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3695"/>
		<updated>2024-10-25T06:53:22Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Aufgabe 2) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erweitere das Ratespiel so, dass die Parameter über die Konsole eingegeben werden können.&lt;br /&gt;
Wie zum Beispiel die Min und Max Value der Zahlen des random.nextInt(), oder die Versuche die der User hat bis das Spiel zu Ende ist.&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2024}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Verwende den gegebenen {{JSL|String[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere die Namen nach Länge aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen nach Länge absteigend (Descending)&lt;br /&gt;
# Sortiere die Namen lexikographisch aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen lexikographisch absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
 Tip.: Strings können mit der Instanz Methode {{JSL|compareTo}} der {{JSL|String}} Klasse verglichen werden: {{JSL|&amp;quot;a&amp;quot;.compareTo(&amp;quot;b&amp;quot;)}}&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] names = new String[]{&amp;quot;Furkan&amp;quot;, &amp;quot;Aylin&amp;quot;, &amp;quot;Thiemo&amp;quot;, &amp;quot;Erik&amp;quot;, &amp;quot;Akif&amp;quot;, &amp;quot;Sandro&amp;quot;, &amp;quot;Gyula&amp;quot;, &amp;quot;Ölaf&amp;quot;, &amp;quot;Ümit&amp;quot; };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür {{JSL|text.toCharArray()}} für das Aufsplitten und {{JSL|new String(charArray)}} zum Zusammenfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen zum Reverseprogramm!!!111&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;Hallo&lt;br /&gt;
ollaH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufagabe) ====&lt;br /&gt;
Erstelle einen schönen tabellarischen Ausgabe aus den folgenden Arrays:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] firstName = {&amp;quot;Alfonso&amp;quot;, &amp;quot;Beatrix-Eleonor&amp;quot;, &amp;quot;Cecil&amp;quot;, &amp;quot;Daniel&amp;quot;, &amp;quot;Elmar&amp;quot;};&lt;br /&gt;
String[] lastName = {&amp;quot;Klein&amp;quot;, &amp;quot;Kinderdorfer&amp;quot;, &amp;quot;Al Elmenar&amp;quot;, &amp;quot;Schmidt&amp;quot;, &amp;quot;Simma&amp;quot;};&lt;br /&gt;
int[] age = {40, 78, 5, 18, 81};&lt;br /&gt;
String[] place = {&amp;quot;Wien&amp;quot;, &amp;quot;Schwarzach&amp;quot;, &amp;quot;Wiener Neudorf&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;};&lt;br /&gt;
float[] distanceFromCapital = {0f, 654.4f, 12.457634366f, 120.0f, 119.9999f};&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 Denke daran, dass eine Tabelle eine Kopfzeile und Trennzeichen haben kann.&lt;br /&gt;
&lt;br /&gt;
== Datenströme/Files  ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} soll der Inhalt eines bestimmten Verzeichnisses ausgegeben werden. Gib hierfür eine Liste aller Dateien aus.&lt;br /&gt;
&lt;br /&gt;
[https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html Dokumentation von File]&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Liste die Dateien in folgender Rheinfolge auf.&lt;br /&gt;
* Unterverzeichnisse&lt;br /&gt;
* Dateien nach Größe absteigend&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3694</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3694"/>
		<updated>2024-10-25T06:52:55Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Aufgabe 3) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erweitere das Ratespiel so, dass die Parameter über die Konsole eingegeben werden können.&lt;br /&gt;
Wie zum Beispiel die Min und Max Value der Zahlen des random.nextInt(), oder die Versuche die der User hat bis das Spiel zu Ende ist.&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2024}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Verwende den gegebenen {{JSL|String[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere die Namen nach Länge aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen nach Länge absteigend (Descending)&lt;br /&gt;
# Sortiere die Namen lexikographisch aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen lexikographisch absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
 Tip.: Strings können mit der Instanz Methode {{JSL|compareTo}} der {{JSL|String}} Klasse verglichen werden: {{JSL|&amp;quot;a&amp;quot;.compareTo(&amp;quot;b&amp;quot;)}}&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] names = new String[]{&amp;quot;Furkan&amp;quot;, &amp;quot;Aylin&amp;quot;, &amp;quot;Thiemo&amp;quot;, &amp;quot;Erik&amp;quot;, &amp;quot;Akif&amp;quot;, &amp;quot;Sandro&amp;quot;, &amp;quot;Gyula&amp;quot;, &amp;quot;Ölaf&amp;quot;, &amp;quot;Ümit&amp;quot; };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür {{JSL|text.toCharArray()}} für das Aufsplitten und {{JSL|new String(charArray)}} zum Zusammenfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen zum Reverseprogramm!!!111&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;Hallo&lt;br /&gt;
ollaH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufagabe) ====&lt;br /&gt;
Erstelle einen schönen tabellarischen Ausgabe aus den folgenden Arrays:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] firstName = {&amp;quot;Alfonso&amp;quot;, &amp;quot;Beatrix-Eleonor&amp;quot;, &amp;quot;Cecil&amp;quot;, &amp;quot;Daniel&amp;quot;, &amp;quot;Elmar&amp;quot;};&lt;br /&gt;
String[] lastName = {&amp;quot;Klein&amp;quot;, &amp;quot;Kinderdorfer&amp;quot;, &amp;quot;Al Elmenar&amp;quot;, &amp;quot;Schmidt&amp;quot;, &amp;quot;Simma&amp;quot;};&lt;br /&gt;
int[] age = {40, 78, 5, 18, 81};&lt;br /&gt;
String[] place = {&amp;quot;Wien&amp;quot;, &amp;quot;Schwarzach&amp;quot;, &amp;quot;Wiener Neudorf&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;};&lt;br /&gt;
float[] distanceFromCapital = {0f, 654.4f, 12.457634366f, 120.0f, 119.9999f};&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 Denke daran, dass eine Tabelle eine Kopfzeile und Trennzeichen haben kann.&lt;br /&gt;
&lt;br /&gt;
== Datenströme/Files  ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} soll der Inhalt eines bestimmten Verzeichnisses ausgegeben werden. Gib hierfür eine Liste aller Dateien aus.&lt;br /&gt;
&lt;br /&gt;
[https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html Dokumentation von File]&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Liste die Dateien in folgender Rheinfolge auf.&lt;br /&gt;
* Unterverzeichnisse&lt;br /&gt;
* Dateien nach Größe absteigend&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3693</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3693"/>
		<updated>2024-10-25T06:52:25Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Bonus Aufagabe ) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erweitere das Ratespiel so, dass die Parameter über die Konsole eingegeben werden können.&lt;br /&gt;
Wie zum Beispiel die Min und Max Value der Zahlen des random.nextInt(), oder die Versuche die der User hat bis das Spiel zu Ende ist.&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2024}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Verwende den gegebenen {{JSL|String[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere die Namen nach Länge aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen nach Länge absteigend (Descending)&lt;br /&gt;
# Sortiere die Namen lexikographisch aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen lexikographisch absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
 Tip.: Strings können mit der Instanz Methode {{JSL|compareTo}} der {{JSL|String}} Klasse verglichen werden: {{JSL|&amp;quot;a&amp;quot;.compareTo(&amp;quot;b&amp;quot;)}}&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] names = new String[]{&amp;quot;Furkan&amp;quot;, &amp;quot;Aylin&amp;quot;, &amp;quot;Thiemo&amp;quot;, &amp;quot;Erik&amp;quot;, &amp;quot;Akif&amp;quot;, &amp;quot;Sandro&amp;quot;, &amp;quot;Gyula&amp;quot;, &amp;quot;Ölaf&amp;quot;, &amp;quot;Ümit&amp;quot; };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür {{JSL|text.toCharArray()}} für das Aufsplitten und {{JSL|new String(charArray)}} zum Zusammenfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen zum Reverseprogramm!!!111&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;Hallo&lt;br /&gt;
ollaH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufagabe) ====&lt;br /&gt;
Erstelle einen schönen tabellarischen Ausgabe aus den folgenden Arrays:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] firstName = {&amp;quot;Alfonso&amp;quot;, &amp;quot;Beatrix-Eleonor&amp;quot;, &amp;quot;Cecil&amp;quot;, &amp;quot;Daniel&amp;quot;, &amp;quot;Elmar&amp;quot;};&lt;br /&gt;
String[] lastName = {&amp;quot;Klein&amp;quot;, &amp;quot;Kinderdorfer&amp;quot;, &amp;quot;Al Elmenar&amp;quot;, &amp;quot;Schmidt&amp;quot;, &amp;quot;Simma&amp;quot;};&lt;br /&gt;
int[] age = {40, 78, 5, 18, 81};&lt;br /&gt;
String[] place = {&amp;quot;Wien&amp;quot;, &amp;quot;Schwarzach&amp;quot;, &amp;quot;Wiener Neudorf&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;};&lt;br /&gt;
float[] distanceFromCapital = {0f, 654.4f, 12.457634366f, 120.0f, 119.9999f};&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 Denke daran, dass eine Tabelle eine Kopfzeile und Trennzeichen haben kann.&lt;br /&gt;
&lt;br /&gt;
== Datenströme/Files  ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} soll der Inhalt eines bestimmten Verzeichnisses ausgegeben werden. Gib hierfür eine Liste aller Dateien aus.&lt;br /&gt;
&lt;br /&gt;
[https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html Dokumentation von File]&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Liste die Dateien in folgender Rheinfolge auf.&lt;br /&gt;
* Unterverzeichnisse&lt;br /&gt;
* Dateien nach Größe absteigend&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3692</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3692"/>
		<updated>2024-10-25T06:52:14Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Aufgabe 3) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erweitere das Ratespiel so, dass die Parameter über die Konsole eingegeben werden können.&lt;br /&gt;
Wie zum Beispiel die Min und Max Value der Zahlen des random.nextInt(), oder die Versuche die der User hat bis das Spiel zu Ende ist.&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2024}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Verwende den gegebenen {{JSL|String[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere die Namen nach Länge aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen nach Länge absteigend (Descending)&lt;br /&gt;
# Sortiere die Namen lexikographisch aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen lexikographisch absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
 Tip.: Strings können mit der Instanz Methode {{JSL|compareTo}} der {{JSL|String}} Klasse verglichen werden: {{JSL|&amp;quot;a&amp;quot;.compareTo(&amp;quot;b&amp;quot;)}}&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] names = new String[]{&amp;quot;Furkan&amp;quot;, &amp;quot;Aylin&amp;quot;, &amp;quot;Thiemo&amp;quot;, &amp;quot;Erik&amp;quot;, &amp;quot;Akif&amp;quot;, &amp;quot;Sandro&amp;quot;, &amp;quot;Gyula&amp;quot;, &amp;quot;Ölaf&amp;quot;, &amp;quot;Ümit&amp;quot; };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür {{JSL|text.toCharArray()}} für das Aufsplitten und {{JSL|new String(charArray)}} zum Zusammenfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen zum Reverseprogramm!!!111&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;Hallo&lt;br /&gt;
ollaH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufagabe ) ====&lt;br /&gt;
Erstelle einen schönen tabellarischen Ausgabe aus den folgenden Arrays:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] firstName = {&amp;quot;Alfonso&amp;quot;, &amp;quot;Beatrix-Eleonor&amp;quot;, &amp;quot;Cecil&amp;quot;, &amp;quot;Daniel&amp;quot;, &amp;quot;Elmar&amp;quot;};&lt;br /&gt;
String[] lastName = {&amp;quot;Klein&amp;quot;, &amp;quot;Kinderdorfer&amp;quot;, &amp;quot;Al Elmenar&amp;quot;, &amp;quot;Schmidt&amp;quot;, &amp;quot;Simma&amp;quot;};&lt;br /&gt;
int[] age = {40, 78, 5, 18, 81};&lt;br /&gt;
String[] place = {&amp;quot;Wien&amp;quot;, &amp;quot;Schwarzach&amp;quot;, &amp;quot;Wiener Neudorf&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;};&lt;br /&gt;
float[] distanceFromCapital = {0f, 654.4f, 12.457634366f, 120.0f, 119.9999f};&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 Denke daran, dass eine Tabelle eine Kopfzeile und Trennzeichen haben kann.&lt;br /&gt;
&lt;br /&gt;
== Datenströme/Files  ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} soll der Inhalt eines bestimmten Verzeichnisses ausgegeben werden. Gib hierfür eine Liste aller Dateien aus.&lt;br /&gt;
&lt;br /&gt;
[https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html Dokumentation von File]&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Liste die Dateien in folgender Rheinfolge auf.&lt;br /&gt;
* Unterverzeichnisse&lt;br /&gt;
* Dateien nach Größe absteigend&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3691</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3691"/>
		<updated>2024-10-25T06:51:58Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Aufagabe 3) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erweitere das Ratespiel so, dass die Parameter über die Konsole eingegeben werden können.&lt;br /&gt;
Wie zum Beispiel die Min und Max Value der Zahlen des random.nextInt(), oder die Versuche die der User hat bis das Spiel zu Ende ist.&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2024}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Verwende den gegebenen {{JSL|String[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere die Namen nach Länge aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen nach Länge absteigend (Descending)&lt;br /&gt;
# Sortiere die Namen lexikographisch aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen lexikographisch absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
 Tip.: Strings können mit der Instanz Methode {{JSL|compareTo}} der {{JSL|String}} Klasse verglichen werden: {{JSL|&amp;quot;a&amp;quot;.compareTo(&amp;quot;b&amp;quot;)}}&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] names = new String[]{&amp;quot;Furkan&amp;quot;, &amp;quot;Aylin&amp;quot;, &amp;quot;Thiemo&amp;quot;, &amp;quot;Erik&amp;quot;, &amp;quot;Akif&amp;quot;, &amp;quot;Sandro&amp;quot;, &amp;quot;Gyula&amp;quot;, &amp;quot;Ölaf&amp;quot;, &amp;quot;Ümit&amp;quot; };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür {{JSL|text.toCharArray()}} für das Aufsplitten und {{JSL|new String(charArray)}} zum Zusammenfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen zum Reverseprogramm!!!111&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;Hallo&lt;br /&gt;
ollaH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufagabe ) ====&lt;br /&gt;
Erstelle einen schönen tabellarischen Ausgabe aus den folgenden Arrays:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] firstName = {&amp;quot;Alfonso&amp;quot;, &amp;quot;Beatrix-Eleonor&amp;quot;, &amp;quot;Cecil&amp;quot;, &amp;quot;Daniel&amp;quot;, &amp;quot;Elmar&amp;quot;};&lt;br /&gt;
String[] lastName = {&amp;quot;Klein&amp;quot;, &amp;quot;Kinderdorfer&amp;quot;, &amp;quot;Al Elmenar&amp;quot;, &amp;quot;Schmidt&amp;quot;, &amp;quot;Simma&amp;quot;};&lt;br /&gt;
int[] age = {40, 78, 5, 18, 81};&lt;br /&gt;
String[] place = {&amp;quot;Wien&amp;quot;, &amp;quot;Schwarzach&amp;quot;, &amp;quot;Wiener Neudorf&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;};&lt;br /&gt;
float[] distanceFromCapital = {0f, 654.4f, 12.457634366f, 120.0f, 119.9999f};&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 Denke daran, dass eine Tabelle eine Kopfzeile und Trennzeichen haben kann.&lt;br /&gt;
&lt;br /&gt;
== Datenströme/Files  ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} soll der Inhalt eines bestimmten Verzeichnisses ausgegeben werden. Gib hierfür eine Liste aller Dateien aus.&lt;br /&gt;
&lt;br /&gt;
[https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html Dokumentation von File]&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Liste die Dateien in folgender Rheinfolge auf.&lt;br /&gt;
* Unterverzeichnisse&lt;br /&gt;
* Dateien nach Größe absteigend&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3690</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3690"/>
		<updated>2024-10-25T06:51:23Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Aufgabe 1) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erweitere das Ratespiel so, dass die Parameter über die Konsole eingegeben werden können.&lt;br /&gt;
Wie zum Beispiel die Min und Max Value der Zahlen des random.nextInt(), oder die Versuche die der User hat bis das Spiel zu Ende ist.&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2024}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Verwende den gegebenen {{JSL|String[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere die Namen nach Länge aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen nach Länge absteigend (Descending)&lt;br /&gt;
# Sortiere die Namen lexikographisch aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen lexikographisch absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
 Tip.: Strings können mit der Instanz Methode {{JSL|compareTo}} der {{JSL|String}} Klasse verglichen werden: {{JSL|&amp;quot;a&amp;quot;.compareTo(&amp;quot;b&amp;quot;)}}&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] names = new String[]{&amp;quot;Furkan&amp;quot;, &amp;quot;Aylin&amp;quot;, &amp;quot;Thiemo&amp;quot;, &amp;quot;Erik&amp;quot;, &amp;quot;Akif&amp;quot;, &amp;quot;Sandro&amp;quot;, &amp;quot;Gyula&amp;quot;, &amp;quot;Ölaf&amp;quot;, &amp;quot;Ümit&amp;quot; };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür {{JSL|text.toCharArray()}} für das Aufsplitten und {{JSL|new String(charArray)}} zum Zusammenfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen zum Reverseprogramm!!!111&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;Hallo&lt;br /&gt;
ollaH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufagabe 3) ====&lt;br /&gt;
Erstelle einen schönen tabellarischen Ausgabe aus den folgenden Arrays:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] firstName = {&amp;quot;Alfonso&amp;quot;, &amp;quot;Beatrix-Eleonor&amp;quot;, &amp;quot;Cecil&amp;quot;, &amp;quot;Daniel&amp;quot;, &amp;quot;Elmar&amp;quot;};&lt;br /&gt;
String[] lastName = {&amp;quot;Klein&amp;quot;, &amp;quot;Kinderdorfer&amp;quot;, &amp;quot;Al Elmenar&amp;quot;, &amp;quot;Schmidt&amp;quot;, &amp;quot;Simma&amp;quot;};&lt;br /&gt;
int[] age = {40, 78, 5, 18, 81};&lt;br /&gt;
String[] place = {&amp;quot;Wien&amp;quot;, &amp;quot;Schwarzach&amp;quot;, &amp;quot;Wiener Neudorf&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;};&lt;br /&gt;
float[] distanceFromCapital = {0f, 654.4f, 12.457634366f, 120.0f, 119.9999f};&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 Denke daran, dass eine Tabelle eine Kopfzeile und Trennzeichen haben kann.&lt;br /&gt;
&lt;br /&gt;
== Datenströme/Files  ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} soll der Inhalt eines bestimmten Verzeichnisses ausgegeben werden. Gib hierfür eine Liste aller Dateien aus.&lt;br /&gt;
&lt;br /&gt;
[https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html Dokumentation von File]&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Liste die Dateien in folgender Rheinfolge auf.&lt;br /&gt;
* Unterverzeichnisse&lt;br /&gt;
* Dateien nach Größe absteigend&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3689</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3689"/>
		<updated>2024-10-25T06:50:40Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Input */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erweitere das Ratespiel so, dass die Parameter über die Konsole eingegeben werden können.&lt;br /&gt;
Wie zum Beispiel die Min und Max Value der Zahlen des random.nextInt(), oder die Versuche die der User hat bis das Spiel zu Ende ist.&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2021}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Verwende den gegebenen {{JSL|String[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere die Namen nach Länge aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen nach Länge absteigend (Descending)&lt;br /&gt;
# Sortiere die Namen lexikographisch aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen lexikographisch absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
 Tip.: Strings können mit der Instanz Methode {{JSL|compareTo}} der {{JSL|String}} Klasse verglichen werden: {{JSL|&amp;quot;a&amp;quot;.compareTo(&amp;quot;b&amp;quot;)}}&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] names = new String[]{&amp;quot;Furkan&amp;quot;, &amp;quot;Aylin&amp;quot;, &amp;quot;Thiemo&amp;quot;, &amp;quot;Erik&amp;quot;, &amp;quot;Akif&amp;quot;, &amp;quot;Sandro&amp;quot;, &amp;quot;Gyula&amp;quot;, &amp;quot;Ölaf&amp;quot;, &amp;quot;Ümit&amp;quot; };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür {{JSL|text.toCharArray()}} für das Aufsplitten und {{JSL|new String(charArray)}} zum Zusammenfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen zum Reverseprogramm!!!111&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;Hallo&lt;br /&gt;
ollaH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufagabe 3) ====&lt;br /&gt;
Erstelle einen schönen tabellarischen Ausgabe aus den folgenden Arrays:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] firstName = {&amp;quot;Alfonso&amp;quot;, &amp;quot;Beatrix-Eleonor&amp;quot;, &amp;quot;Cecil&amp;quot;, &amp;quot;Daniel&amp;quot;, &amp;quot;Elmar&amp;quot;};&lt;br /&gt;
String[] lastName = {&amp;quot;Klein&amp;quot;, &amp;quot;Kinderdorfer&amp;quot;, &amp;quot;Al Elmenar&amp;quot;, &amp;quot;Schmidt&amp;quot;, &amp;quot;Simma&amp;quot;};&lt;br /&gt;
int[] age = {40, 78, 5, 18, 81};&lt;br /&gt;
String[] place = {&amp;quot;Wien&amp;quot;, &amp;quot;Schwarzach&amp;quot;, &amp;quot;Wiener Neudorf&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;};&lt;br /&gt;
float[] distanceFromCapital = {0f, 654.4f, 12.457634366f, 120.0f, 119.9999f};&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 Denke daran, dass eine Tabelle eine Kopfzeile und Trennzeichen haben kann.&lt;br /&gt;
&lt;br /&gt;
== Datenströme/Files  ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} soll der Inhalt eines bestimmten Verzeichnisses ausgegeben werden. Gib hierfür eine Liste aller Dateien aus.&lt;br /&gt;
&lt;br /&gt;
[https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html Dokumentation von File]&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Liste die Dateien in folgender Rheinfolge auf.&lt;br /&gt;
* Unterverzeichnisse&lt;br /&gt;
* Dateien nach Größe absteigend&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3688</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3688"/>
		<updated>2024-10-25T06:44:32Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Aufgabe 4) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2021}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Verwende den gegebenen {{JSL|String[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere die Namen nach Länge aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen nach Länge absteigend (Descending)&lt;br /&gt;
# Sortiere die Namen lexikographisch aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen lexikographisch absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
 Tip.: Strings können mit der Instanz Methode {{JSL|compareTo}} der {{JSL|String}} Klasse verglichen werden: {{JSL|&amp;quot;a&amp;quot;.compareTo(&amp;quot;b&amp;quot;)}}&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] names = new String[]{&amp;quot;Furkan&amp;quot;, &amp;quot;Aylin&amp;quot;, &amp;quot;Thiemo&amp;quot;, &amp;quot;Erik&amp;quot;, &amp;quot;Akif&amp;quot;, &amp;quot;Sandro&amp;quot;, &amp;quot;Gyula&amp;quot;, &amp;quot;Ölaf&amp;quot;, &amp;quot;Ümit&amp;quot; };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür {{JSL|text.toCharArray()}} für das Aufsplitten und {{JSL|new String(charArray)}} zum Zusammenfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen zum Reverseprogramm!!!111&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;Hallo&lt;br /&gt;
ollaH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufagabe 3) ====&lt;br /&gt;
Erstelle einen schönen tabellarischen Ausgabe aus den folgenden Arrays:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] firstName = {&amp;quot;Alfonso&amp;quot;, &amp;quot;Beatrix-Eleonor&amp;quot;, &amp;quot;Cecil&amp;quot;, &amp;quot;Daniel&amp;quot;, &amp;quot;Elmar&amp;quot;};&lt;br /&gt;
String[] lastName = {&amp;quot;Klein&amp;quot;, &amp;quot;Kinderdorfer&amp;quot;, &amp;quot;Al Elmenar&amp;quot;, &amp;quot;Schmidt&amp;quot;, &amp;quot;Simma&amp;quot;};&lt;br /&gt;
int[] age = {40, 78, 5, 18, 81};&lt;br /&gt;
String[] place = {&amp;quot;Wien&amp;quot;, &amp;quot;Schwarzach&amp;quot;, &amp;quot;Wiener Neudorf&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;};&lt;br /&gt;
float[] distanceFromCapital = {0f, 654.4f, 12.457634366f, 120.0f, 119.9999f};&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 Denke daran, dass eine Tabelle eine Kopfzeile und Trennzeichen haben kann.&lt;br /&gt;
&lt;br /&gt;
== Datenströme/Files  ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} soll der Inhalt eines bestimmten Verzeichnisses ausgegeben werden. Gib hierfür eine Liste aller Dateien aus.&lt;br /&gt;
&lt;br /&gt;
[https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html Dokumentation von File]&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Liste die Dateien in folgender Rheinfolge auf.&lt;br /&gt;
* Unterverzeichnisse&lt;br /&gt;
* Dateien nach Größe absteigend&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3687</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3687"/>
		<updated>2024-10-25T06:44:17Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Aufgabe 3) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2021}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Verwende den gegebenen {{JSL|String[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere die Namen nach Länge aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen nach Länge absteigend (Descending)&lt;br /&gt;
# Sortiere die Namen lexikographisch aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen lexikographisch absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
 Tip.: Strings können mit der Instanz Methode {{JSL|compareTo}} der {{JSL|String}} Klasse verglichen werden: {{JSL|&amp;quot;a&amp;quot;.compareTo(&amp;quot;b&amp;quot;)}}&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] names = new String[]{&amp;quot;Furkan&amp;quot;, &amp;quot;Aylin&amp;quot;, &amp;quot;Thiemo&amp;quot;, &amp;quot;Erik&amp;quot;, &amp;quot;Akif&amp;quot;, &amp;quot;Sandro&amp;quot;, &amp;quot;Gyula&amp;quot;, &amp;quot;Ölaf&amp;quot;, &amp;quot;Ümit&amp;quot; };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür {{JSL|text.toCharArray()}} für das Aufsplitten und {{JSL|new String(charArray)}} zum Zusammenfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen zum Reverseprogramm!!!111&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;Hallo&lt;br /&gt;
ollaH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufagabe 3) ====&lt;br /&gt;
Erstelle einen schönen tabellarischen Ausgabe aus den folgenden Arrays:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] firstName = {&amp;quot;Alfonso&amp;quot;, &amp;quot;Beatrix-Eleonor&amp;quot;, &amp;quot;Cecil&amp;quot;, &amp;quot;Daniel&amp;quot;, &amp;quot;Elmar&amp;quot;};&lt;br /&gt;
String[] lastName = {&amp;quot;Klein&amp;quot;, &amp;quot;Kinderdorfer&amp;quot;, &amp;quot;Al Elmenar&amp;quot;, &amp;quot;Schmidt&amp;quot;, &amp;quot;Simma&amp;quot;};&lt;br /&gt;
int[] age = {40, 78, 5, 18, 81};&lt;br /&gt;
String[] place = {&amp;quot;Wien&amp;quot;, &amp;quot;Schwarzach&amp;quot;, &amp;quot;Wiener Neudorf&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;};&lt;br /&gt;
float[] distanceFromCapital = {0f, 654.4f, 12.457634366f, 120.0f, 119.9999f};&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 Denke daran, dass eine Tabelle eine Kopfzeile und Trennzeichen haben kann.&lt;br /&gt;
&lt;br /&gt;
== Datenströme/Files  ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} soll der Inhalt eines bestimmten Verzeichnisses ausgegeben werden. Gib hierfür eine Liste aller Dateien aus.&lt;br /&gt;
&lt;br /&gt;
[https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html Dokumentation von File]&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Liste die Dateien in folgender Rheinfolge auf.&lt;br /&gt;
* Unterverzeichnisse&lt;br /&gt;
* Dateien nach Größe absteigend&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3686</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3686"/>
		<updated>2024-10-25T06:44:05Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Aufgabe 2) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2021}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Verwende den gegebenen {{JSL|String[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere die Namen nach Länge aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen nach Länge absteigend (Descending)&lt;br /&gt;
# Sortiere die Namen lexikographisch aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen lexikographisch absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
 Tip.: Strings können mit der Instanz Methode {{JSL|compareTo}} der {{JSL|String}} Klasse verglichen werden: {{JSL|&amp;quot;a&amp;quot;.compareTo(&amp;quot;b&amp;quot;)}}&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] names = new String[]{&amp;quot;Furkan&amp;quot;, &amp;quot;Aylin&amp;quot;, &amp;quot;Thiemo&amp;quot;, &amp;quot;Erik&amp;quot;, &amp;quot;Akif&amp;quot;, &amp;quot;Sandro&amp;quot;, &amp;quot;Gyula&amp;quot;, &amp;quot;Ölaf&amp;quot;, &amp;quot;Ümit&amp;quot; };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür {{JSL|text.toCharArray()}} für das Aufsplitten und {{JSL|new String(charArray)}} zum Zusammenfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen zum Reverseprogramm!!!111&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;Hallo&lt;br /&gt;
ollaH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufagabe 3) ====&lt;br /&gt;
Erstelle einen schönen tabellarischen Ausgabe aus den folgenden Arrays:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] firstName = {&amp;quot;Alfonso&amp;quot;, &amp;quot;Beatrix-Eleonor&amp;quot;, &amp;quot;Cecil&amp;quot;, &amp;quot;Daniel&amp;quot;, &amp;quot;Elmar&amp;quot;};&lt;br /&gt;
String[] lastName = {&amp;quot;Klein&amp;quot;, &amp;quot;Kinderdorfer&amp;quot;, &amp;quot;Al Elmenar&amp;quot;, &amp;quot;Schmidt&amp;quot;, &amp;quot;Simma&amp;quot;};&lt;br /&gt;
int[] age = {40, 78, 5, 18, 81};&lt;br /&gt;
String[] place = {&amp;quot;Wien&amp;quot;, &amp;quot;Schwarzach&amp;quot;, &amp;quot;Wiener Neudorf&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;};&lt;br /&gt;
float[] distanceFromCapital = {0f, 654.4f, 12.457634366f, 120.0f, 119.9999f};&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 Denke daran, dass eine Tabelle eine Kopfzeile und Trennzeichen haben kann.&lt;br /&gt;
&lt;br /&gt;
== Datenströme/Files  ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} soll der Inhalt eines bestimmten Verzeichnisses ausgegeben werden. Gib hierfür eine Liste aller Dateien aus.&lt;br /&gt;
&lt;br /&gt;
[https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html Dokumentation von File]&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Liste die Dateien in folgender Rheinfolge auf.&lt;br /&gt;
* Unterverzeichnisse&lt;br /&gt;
* Dateien nach Größe absteigend&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3685</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3685"/>
		<updated>2024-10-25T06:43:52Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Aufgabe 3) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2021}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Verwende den gegebenen {{JSL|String[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere die Namen nach Länge aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen nach Länge absteigend (Descending)&lt;br /&gt;
# Sortiere die Namen lexikographisch aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen lexikographisch absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
 Tip.: Strings können mit der Instanz Methode {{JSL|compareTo}} der {{JSL|String}} Klasse verglichen werden: {{JSL|&amp;quot;a&amp;quot;.compareTo(&amp;quot;b&amp;quot;)}}&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] names = new String[]{&amp;quot;Furkan&amp;quot;, &amp;quot;Aylin&amp;quot;, &amp;quot;Thiemo&amp;quot;, &amp;quot;Erik&amp;quot;, &amp;quot;Akif&amp;quot;, &amp;quot;Sandro&amp;quot;, &amp;quot;Gyula&amp;quot;, &amp;quot;Ölaf&amp;quot;, &amp;quot;Ümit&amp;quot; };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür {{JSL|text.toCharArray()}} für das Aufsplitten und {{JSL|new String(charArray)}} zum Zusammenfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen zum Reverseprogramm!!!111&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;Hallo&lt;br /&gt;
ollaH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufagabe 3) ====&lt;br /&gt;
Erstelle einen schönen tabellarischen Ausgabe aus den folgenden Arrays:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] firstName = {&amp;quot;Alfonso&amp;quot;, &amp;quot;Beatrix-Eleonor&amp;quot;, &amp;quot;Cecil&amp;quot;, &amp;quot;Daniel&amp;quot;, &amp;quot;Elmar&amp;quot;};&lt;br /&gt;
String[] lastName = {&amp;quot;Klein&amp;quot;, &amp;quot;Kinderdorfer&amp;quot;, &amp;quot;Al Elmenar&amp;quot;, &amp;quot;Schmidt&amp;quot;, &amp;quot;Simma&amp;quot;};&lt;br /&gt;
int[] age = {40, 78, 5, 18, 81};&lt;br /&gt;
String[] place = {&amp;quot;Wien&amp;quot;, &amp;quot;Schwarzach&amp;quot;, &amp;quot;Wiener Neudorf&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;};&lt;br /&gt;
float[] distanceFromCapital = {0f, 654.4f, 12.457634366f, 120.0f, 119.9999f};&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 Denke daran, dass eine Tabelle eine Kopfzeile und Trennzeichen haben kann.&lt;br /&gt;
&lt;br /&gt;
== Datenströme/Files  ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} soll der Inhalt eines bestimmten Verzeichnisses ausgegeben werden. Gib hierfür eine Liste aller Dateien aus.&lt;br /&gt;
&lt;br /&gt;
[https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html Dokumentation von File]&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Liste die Dateien in folgender Rheinfolge auf.&lt;br /&gt;
* Unterverzeichnisse&lt;br /&gt;
* Dateien nach Größe absteigend&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3684</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3684"/>
		<updated>2024-10-25T06:43:46Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Aufgabe 2) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2021}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Verwende den gegebenen {{JSL|String[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere die Namen nach Länge aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen nach Länge absteigend (Descending)&lt;br /&gt;
# Sortiere die Namen lexikographisch aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen lexikographisch absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
 Tip.: Strings können mit der Instanz Methode {{JSL|compareTo}} der {{JSL|String}} Klasse verglichen werden: {{JSL|&amp;quot;a&amp;quot;.compareTo(&amp;quot;b&amp;quot;)}}&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] names = new String[]{&amp;quot;Furkan&amp;quot;, &amp;quot;Aylin&amp;quot;, &amp;quot;Thiemo&amp;quot;, &amp;quot;Erik&amp;quot;, &amp;quot;Akif&amp;quot;, &amp;quot;Sandro&amp;quot;, &amp;quot;Gyula&amp;quot;, &amp;quot;Ölaf&amp;quot;, &amp;quot;Ümit&amp;quot; };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür {{JSL|text.toCharArray()}} für das Aufsplitten und {{JSL|new String(charArray)}} zum Zusammenfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen zum Reverseprogramm!!!111&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;Hallo&lt;br /&gt;
ollaH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufagabe 3) ====&lt;br /&gt;
Erstelle einen schönen tabellarischen Ausgabe aus den folgenden Arrays:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] firstName = {&amp;quot;Alfonso&amp;quot;, &amp;quot;Beatrix-Eleonor&amp;quot;, &amp;quot;Cecil&amp;quot;, &amp;quot;Daniel&amp;quot;, &amp;quot;Elmar&amp;quot;};&lt;br /&gt;
String[] lastName = {&amp;quot;Klein&amp;quot;, &amp;quot;Kinderdorfer&amp;quot;, &amp;quot;Al Elmenar&amp;quot;, &amp;quot;Schmidt&amp;quot;, &amp;quot;Simma&amp;quot;};&lt;br /&gt;
int[] age = {40, 78, 5, 18, 81};&lt;br /&gt;
String[] place = {&amp;quot;Wien&amp;quot;, &amp;quot;Schwarzach&amp;quot;, &amp;quot;Wiener Neudorf&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;};&lt;br /&gt;
float[] distanceFromCapital = {0f, 654.4f, 12.457634366f, 120.0f, 119.9999f};&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 Denke daran, dass eine Tabelle eine Kopfzeile und Trennzeichen haben kann.&lt;br /&gt;
&lt;br /&gt;
== Datenströme/Files  ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} soll der Inhalt eines bestimmten Verzeichnisses ausgegeben werden. Gib hierfür eine Liste aller Dateien aus.&lt;br /&gt;
&lt;br /&gt;
[https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html Dokumentation von File]&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Liste die Dateien in folgender Rheinfolge auf.&lt;br /&gt;
* Unterverzeichnisse&lt;br /&gt;
* Dateien nach Größe absteigend&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3683</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3683"/>
		<updated>2024-10-25T06:43:35Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Aufgabe 1) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2021}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Verwende den gegebenen {{JSL|String[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere die Namen nach Länge aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen nach Länge absteigend (Descending)&lt;br /&gt;
# Sortiere die Namen lexikographisch aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen lexikographisch absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
 Tip.: Strings können mit der Instanz Methode {{JSL|compareTo}} der {{JSL|String}} Klasse verglichen werden: {{JSL|&amp;quot;a&amp;quot;.compareTo(&amp;quot;b&amp;quot;)}}&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] names = new String[]{&amp;quot;Furkan&amp;quot;, &amp;quot;Aylin&amp;quot;, &amp;quot;Thiemo&amp;quot;, &amp;quot;Erik&amp;quot;, &amp;quot;Akif&amp;quot;, &amp;quot;Sandro&amp;quot;, &amp;quot;Gyula&amp;quot;, &amp;quot;Ölaf&amp;quot;, &amp;quot;Ümit&amp;quot; };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür {{JSL|text.toCharArray()}} für das Aufsplitten und {{JSL|new String(charArray)}} zum Zusammenfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen zum Reverseprogramm!!!111&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;Hallo&lt;br /&gt;
ollaH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufagabe 3) ====&lt;br /&gt;
Erstelle einen schönen tabellarischen Ausgabe aus den folgenden Arrays:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] firstName = {&amp;quot;Alfonso&amp;quot;, &amp;quot;Beatrix-Eleonor&amp;quot;, &amp;quot;Cecil&amp;quot;, &amp;quot;Daniel&amp;quot;, &amp;quot;Elmar&amp;quot;};&lt;br /&gt;
String[] lastName = {&amp;quot;Klein&amp;quot;, &amp;quot;Kinderdorfer&amp;quot;, &amp;quot;Al Elmenar&amp;quot;, &amp;quot;Schmidt&amp;quot;, &amp;quot;Simma&amp;quot;};&lt;br /&gt;
int[] age = {40, 78, 5, 18, 81};&lt;br /&gt;
String[] place = {&amp;quot;Wien&amp;quot;, &amp;quot;Schwarzach&amp;quot;, &amp;quot;Wiener Neudorf&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;};&lt;br /&gt;
float[] distanceFromCapital = {0f, 654.4f, 12.457634366f, 120.0f, 119.9999f};&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 Denke daran, dass eine Tabelle eine Kopfzeile und Trennzeichen haben kann.&lt;br /&gt;
&lt;br /&gt;
== Datenströme/Files  ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} soll der Inhalt eines bestimmten Verzeichnisses ausgegeben werden. Gib hierfür eine Liste aller Dateien aus.&lt;br /&gt;
&lt;br /&gt;
[https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html Dokumentation von File]&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Liste die Dateien in folgender Rheinfolge auf.&lt;br /&gt;
* Unterverzeichnisse&lt;br /&gt;
* Dateien nach Größe absteigend&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3682</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3682"/>
		<updated>2024-10-25T06:43:10Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Bonus Aufgabe) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die ein {{JSL|int[]}} als Parameter erhält und das &#039;&#039;&#039;erste&#039;&#039;&#039; und &#039;&#039;&#039;letzte&#039;&#039;&#039; Element zu einem {{JSL|String}} zusammenfügt und zurückgibt. Verwende dazu die Beispielarrays in der Klasse und gib das Ergebnis aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(getFirstAndLast(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|First: 0, last: 10}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2021}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Verwende den gegebenen {{JSL|String[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere die Namen nach Länge aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen nach Länge absteigend (Descending)&lt;br /&gt;
# Sortiere die Namen lexikographisch aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen lexikographisch absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
 Tip.: Strings können mit der Instanz Methode {{JSL|compareTo}} der {{JSL|String}} Klasse verglichen werden: {{JSL|&amp;quot;a&amp;quot;.compareTo(&amp;quot;b&amp;quot;)}}&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] names = new String[]{&amp;quot;Furkan&amp;quot;, &amp;quot;Aylin&amp;quot;, &amp;quot;Thiemo&amp;quot;, &amp;quot;Erik&amp;quot;, &amp;quot;Akif&amp;quot;, &amp;quot;Sandro&amp;quot;, &amp;quot;Gyula&amp;quot;, &amp;quot;Ölaf&amp;quot;, &amp;quot;Ümit&amp;quot; };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür {{JSL|text.toCharArray()}} für das Aufsplitten und {{JSL|new String(charArray)}} zum Zusammenfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen zum Reverseprogramm!!!111&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;Hallo&lt;br /&gt;
ollaH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufagabe 3) ====&lt;br /&gt;
Erstelle einen schönen tabellarischen Ausgabe aus den folgenden Arrays:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] firstName = {&amp;quot;Alfonso&amp;quot;, &amp;quot;Beatrix-Eleonor&amp;quot;, &amp;quot;Cecil&amp;quot;, &amp;quot;Daniel&amp;quot;, &amp;quot;Elmar&amp;quot;};&lt;br /&gt;
String[] lastName = {&amp;quot;Klein&amp;quot;, &amp;quot;Kinderdorfer&amp;quot;, &amp;quot;Al Elmenar&amp;quot;, &amp;quot;Schmidt&amp;quot;, &amp;quot;Simma&amp;quot;};&lt;br /&gt;
int[] age = {40, 78, 5, 18, 81};&lt;br /&gt;
String[] place = {&amp;quot;Wien&amp;quot;, &amp;quot;Schwarzach&amp;quot;, &amp;quot;Wiener Neudorf&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;};&lt;br /&gt;
float[] distanceFromCapital = {0f, 654.4f, 12.457634366f, 120.0f, 119.9999f};&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 Denke daran, dass eine Tabelle eine Kopfzeile und Trennzeichen haben kann.&lt;br /&gt;
&lt;br /&gt;
== Datenströme/Files  ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} soll der Inhalt eines bestimmten Verzeichnisses ausgegeben werden. Gib hierfür eine Liste aller Dateien aus.&lt;br /&gt;
&lt;br /&gt;
[https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html Dokumentation von File]&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Liste die Dateien in folgender Rheinfolge auf.&lt;br /&gt;
* Unterverzeichnisse&lt;br /&gt;
* Dateien nach Größe absteigend&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3681</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3681"/>
		<updated>2024-10-25T06:42:40Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* String manipulation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle eine Methode welche einen Rhombus von variabler Größe und mit angegebene Zeichen ausgibt. Die Größe soll dabei die Höhe des Rhombus sein.&lt;br /&gt;
# Löse das Problem wie es dir gefällt&lt;br /&gt;
# Löse das Problem mit nur zwei ineinander verschachtelten Schleifen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf:&#039;&#039;&#039;&lt;br /&gt;
{{JSL|printRhombus(&amp;quot;x&amp;quot;, 7);}}&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
{{NoLine}}&lt;br /&gt;
......X......&lt;br /&gt;
.....X.X.....&lt;br /&gt;
....X...X....&lt;br /&gt;
...X.....X...&lt;br /&gt;
..X.......X..&lt;br /&gt;
.X.........X.&lt;br /&gt;
X...........X&lt;br /&gt;
.X.........X.&lt;br /&gt;
..X.......X..&lt;br /&gt;
...X.....X...&lt;br /&gt;
....X...X....&lt;br /&gt;
.....X.X.....&lt;br /&gt;
......X......&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die ein {{JSL|int[]}} als Parameter erhält und das &#039;&#039;&#039;erste&#039;&#039;&#039; und &#039;&#039;&#039;letzte&#039;&#039;&#039; Element zu einem {{JSL|String}} zusammenfügt und zurückgibt. Verwende dazu die Beispielarrays in der Klasse und gib das Ergebnis aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(getFirstAndLast(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|First: 0, last: 10}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2021}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Verwende den gegebenen {{JSL|String[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere die Namen nach Länge aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen nach Länge absteigend (Descending)&lt;br /&gt;
# Sortiere die Namen lexikographisch aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen lexikographisch absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
 Tip.: Strings können mit der Instanz Methode {{JSL|compareTo}} der {{JSL|String}} Klasse verglichen werden: {{JSL|&amp;quot;a&amp;quot;.compareTo(&amp;quot;b&amp;quot;)}}&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] names = new String[]{&amp;quot;Furkan&amp;quot;, &amp;quot;Aylin&amp;quot;, &amp;quot;Thiemo&amp;quot;, &amp;quot;Erik&amp;quot;, &amp;quot;Akif&amp;quot;, &amp;quot;Sandro&amp;quot;, &amp;quot;Gyula&amp;quot;, &amp;quot;Ölaf&amp;quot;, &amp;quot;Ümit&amp;quot; };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür {{JSL|text.toCharArray()}} für das Aufsplitten und {{JSL|new String(charArray)}} zum Zusammenfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen zum Reverseprogramm!!!111&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;Hallo&lt;br /&gt;
ollaH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufagabe 3) ====&lt;br /&gt;
Erstelle einen schönen tabellarischen Ausgabe aus den folgenden Arrays:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] firstName = {&amp;quot;Alfonso&amp;quot;, &amp;quot;Beatrix-Eleonor&amp;quot;, &amp;quot;Cecil&amp;quot;, &amp;quot;Daniel&amp;quot;, &amp;quot;Elmar&amp;quot;};&lt;br /&gt;
String[] lastName = {&amp;quot;Klein&amp;quot;, &amp;quot;Kinderdorfer&amp;quot;, &amp;quot;Al Elmenar&amp;quot;, &amp;quot;Schmidt&amp;quot;, &amp;quot;Simma&amp;quot;};&lt;br /&gt;
int[] age = {40, 78, 5, 18, 81};&lt;br /&gt;
String[] place = {&amp;quot;Wien&amp;quot;, &amp;quot;Schwarzach&amp;quot;, &amp;quot;Wiener Neudorf&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;, &amp;quot;Sankt Pölten&amp;quot;};&lt;br /&gt;
float[] distanceFromCapital = {0f, 654.4f, 12.457634366f, 120.0f, 119.9999f};&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 Denke daran, dass eine Tabelle eine Kopfzeile und Trennzeichen haben kann.&lt;br /&gt;
&lt;br /&gt;
== Datenströme/Files  ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} soll der Inhalt eines bestimmten Verzeichnisses ausgegeben werden. Gib hierfür eine Liste aller Dateien aus.&lt;br /&gt;
&lt;br /&gt;
[https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html Dokumentation von File]&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Liste die Dateien in folgender Rheinfolge auf.&lt;br /&gt;
* Unterverzeichnisse&lt;br /&gt;
* Dateien nach Größe absteigend&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3680</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3680"/>
		<updated>2024-10-25T06:41:09Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Datenströme (Optional) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle eine Methode welche einen Rhombus von variabler Größe und mit angegebene Zeichen ausgibt. Die Größe soll dabei die Höhe des Rhombus sein.&lt;br /&gt;
# Löse das Problem wie es dir gefällt&lt;br /&gt;
# Löse das Problem mit nur zwei ineinander verschachtelten Schleifen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf:&#039;&#039;&#039;&lt;br /&gt;
{{JSL|printRhombus(&amp;quot;x&amp;quot;, 7);}}&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
{{NoLine}}&lt;br /&gt;
......X......&lt;br /&gt;
.....X.X.....&lt;br /&gt;
....X...X....&lt;br /&gt;
...X.....X...&lt;br /&gt;
..X.......X..&lt;br /&gt;
.X.........X.&lt;br /&gt;
X...........X&lt;br /&gt;
.X.........X.&lt;br /&gt;
..X.......X..&lt;br /&gt;
...X.....X...&lt;br /&gt;
....X...X....&lt;br /&gt;
.....X.X.....&lt;br /&gt;
......X......&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die ein {{JSL|int[]}} als Parameter erhält und das &#039;&#039;&#039;erste&#039;&#039;&#039; und &#039;&#039;&#039;letzte&#039;&#039;&#039; Element zu einem {{JSL|String}} zusammenfügt und zurückgibt. Verwende dazu die Beispielarrays in der Klasse und gib das Ergebnis aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(getFirstAndLast(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|First: 0, last: 10}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2021}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Verwende den gegebenen {{JSL|String[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere die Namen nach Länge aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen nach Länge absteigend (Descending)&lt;br /&gt;
# Sortiere die Namen lexikographisch aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen lexikographisch absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
 Tip.: Strings können mit der Instanz Methode {{JSL|compareTo}} der {{JSL|String}} Klasse verglichen werden: {{JSL|&amp;quot;a&amp;quot;.compareTo(&amp;quot;b&amp;quot;)}}&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] names = new String[]{&amp;quot;Furkan&amp;quot;, &amp;quot;Aylin&amp;quot;, &amp;quot;Thiemo&amp;quot;, &amp;quot;Erik&amp;quot;, &amp;quot;Akif&amp;quot;, &amp;quot;Sandro&amp;quot;, &amp;quot;Gyula&amp;quot;, &amp;quot;Ölaf&amp;quot;, &amp;quot;Ümit&amp;quot; };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür {{JSL|text.toCharArray()}} für das Aufsplitten und {{JSL|new String(charArray)}} zum Zusammenfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen zum Reverseprogramm!!!111&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;Hallo&lt;br /&gt;
ollaH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Datenströme/Files  ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Mit der Hilfe von {{JSL|java.io.File}} soll der Inhalt eines bestimmten Verzeichnisses ausgegeben werden. Gib hierfür eine Liste aller Dateien aus.&lt;br /&gt;
&lt;br /&gt;
[https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html Dokumentation von File]&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Liste die Dateien in folgender Rheinfolge auf.&lt;br /&gt;
* Unterverzeichnisse&lt;br /&gt;
* Dateien nach Größe absteigend&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3679</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3679"/>
		<updated>2024-10-25T06:38:56Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* String manipulation (Optional) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle eine Methode welche einen Rhombus von variabler Größe und mit angegebene Zeichen ausgibt. Die Größe soll dabei die Höhe des Rhombus sein.&lt;br /&gt;
# Löse das Problem wie es dir gefällt&lt;br /&gt;
# Löse das Problem mit nur zwei ineinander verschachtelten Schleifen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf:&#039;&#039;&#039;&lt;br /&gt;
{{JSL|printRhombus(&amp;quot;x&amp;quot;, 7);}}&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
{{NoLine}}&lt;br /&gt;
......X......&lt;br /&gt;
.....X.X.....&lt;br /&gt;
....X...X....&lt;br /&gt;
...X.....X...&lt;br /&gt;
..X.......X..&lt;br /&gt;
.X.........X.&lt;br /&gt;
X...........X&lt;br /&gt;
.X.........X.&lt;br /&gt;
..X.......X..&lt;br /&gt;
...X.....X...&lt;br /&gt;
....X...X....&lt;br /&gt;
.....X.X.....&lt;br /&gt;
......X......&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die ein {{JSL|int[]}} als Parameter erhält und das &#039;&#039;&#039;erste&#039;&#039;&#039; und &#039;&#039;&#039;letzte&#039;&#039;&#039; Element zu einem {{JSL|String}} zusammenfügt und zurückgibt. Verwende dazu die Beispielarrays in der Klasse und gib das Ergebnis aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(getFirstAndLast(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|First: 0, last: 10}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2021}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Verwende den gegebenen {{JSL|String[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere die Namen nach Länge aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen nach Länge absteigend (Descending)&lt;br /&gt;
# Sortiere die Namen lexikographisch aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen lexikographisch absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
 Tip.: Strings können mit der Instanz Methode {{JSL|compareTo}} der {{JSL|String}} Klasse verglichen werden: {{JSL|&amp;quot;a&amp;quot;.compareTo(&amp;quot;b&amp;quot;)}}&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] names = new String[]{&amp;quot;Furkan&amp;quot;, &amp;quot;Aylin&amp;quot;, &amp;quot;Thiemo&amp;quot;, &amp;quot;Erik&amp;quot;, &amp;quot;Akif&amp;quot;, &amp;quot;Sandro&amp;quot;, &amp;quot;Gyula&amp;quot;, &amp;quot;Ölaf&amp;quot;, &amp;quot;Ümit&amp;quot; };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür {{JSL|text.toCharArray()}} für das Aufsplitten und {{JSL|new String(charArray)}} zum Zusammenfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen zum Reverseprogramm!!!111&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;Hallo&lt;br /&gt;
ollaH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Datenströme (Optional) ==&lt;br /&gt;
Dieses Thema haben wir nicht bearbeitet. Wer trotzdem eine Herausforderung sucht, für den ist das etwas.&lt;br /&gt;
&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/streams/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Die Einlesemethode in allen Aufgaben ist frei wählbar&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein und gib diesen anschließend aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein und gib die Anzahl der Worte des {{JSL|String}} aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein, zerlege diesen in Worte und sortiere diese mittels &#039;&#039;&#039;Bubblesort&#039;&#039;&#039; &#039;&#039;&#039;lexikographisch&#039;&#039;&#039; ({{JSL|string.compareTo(otherString)}} und gib das sortierte {{JSL|String[]}} aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) Bonus ====&lt;br /&gt;
Sortiere wie in der vorhergehenden Aufgabe. Bei der Ausgabe sollen Wörter nicht mehrfach ausgegeben werden, weiters füge bei jedem Wort die Anzahl der vorkommnisse hinzu.&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3678</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3678"/>
		<updated>2024-10-25T06:38:47Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* String manipulation (Optional) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle eine Methode welche einen Rhombus von variabler Größe und mit angegebene Zeichen ausgibt. Die Größe soll dabei die Höhe des Rhombus sein.&lt;br /&gt;
# Löse das Problem wie es dir gefällt&lt;br /&gt;
# Löse das Problem mit nur zwei ineinander verschachtelten Schleifen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf:&#039;&#039;&#039;&lt;br /&gt;
{{JSL|printRhombus(&amp;quot;x&amp;quot;, 7);}}&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
{{NoLine}}&lt;br /&gt;
......X......&lt;br /&gt;
.....X.X.....&lt;br /&gt;
....X...X....&lt;br /&gt;
...X.....X...&lt;br /&gt;
..X.......X..&lt;br /&gt;
.X.........X.&lt;br /&gt;
X...........X&lt;br /&gt;
.X.........X.&lt;br /&gt;
..X.......X..&lt;br /&gt;
...X.....X...&lt;br /&gt;
....X...X....&lt;br /&gt;
.....X.X.....&lt;br /&gt;
......X......&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die ein {{JSL|int[]}} als Parameter erhält und das &#039;&#039;&#039;erste&#039;&#039;&#039; und &#039;&#039;&#039;letzte&#039;&#039;&#039; Element zu einem {{JSL|String}} zusammenfügt und zurückgibt. Verwende dazu die Beispielarrays in der Klasse und gib das Ergebnis aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(getFirstAndLast(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|First: 0, last: 10}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2021}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
== String manipulation (Optional) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Verwende den gegebenen {{JSL|String[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Sortiere zuerst nach der Länge der Namen, dann nach dem Alphabet. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere die Namen nach Länge aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen nach Länge absteigend (Descending)&lt;br /&gt;
# Sortiere die Namen lexikographisch aufsteigend (Ascending)&lt;br /&gt;
# Sortiere die Namen lexikographisch absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
 Tip.: Strings können mit der Instanz Methode {{JSL|compareTo}} der {{JSL|String}} Klasse verglichen werden: {{JSL|&amp;quot;a&amp;quot;.compareTo(&amp;quot;b&amp;quot;)}}&lt;br /&gt;
{{JML|code=&lt;br /&gt;
String[] names = new String[]{&amp;quot;Furkan&amp;quot;, &amp;quot;Aylin&amp;quot;, &amp;quot;Thiemo&amp;quot;, &amp;quot;Erik&amp;quot;, &amp;quot;Akif&amp;quot;, &amp;quot;Sandro&amp;quot;, &amp;quot;Gyula&amp;quot;, &amp;quot;Ölaf&amp;quot;, &amp;quot;Ümit&amp;quot; };&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll ein Wort über die Kommandozeile eingelesen werden, dieses Wort soll umgedreht und anschließend ausgegeben werden. Verwende hierfür {{JSL|text.toCharArray()}} für das Aufsplitten und {{JSL|new String(charArray)}} zum Zusammenfügen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen zum Reverseprogramm!!!111&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;Hallo&lt;br /&gt;
ollaH&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Datenströme (Optional) ==&lt;br /&gt;
Dieses Thema haben wir nicht bearbeitet. Wer trotzdem eine Herausforderung sucht, für den ist das etwas.&lt;br /&gt;
&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/streams/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Die Einlesemethode in allen Aufgaben ist frei wählbar&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein und gib diesen anschließend aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein und gib die Anzahl der Worte des {{JSL|String}} aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein, zerlege diesen in Worte und sortiere diese mittels &#039;&#039;&#039;Bubblesort&#039;&#039;&#039; &#039;&#039;&#039;lexikographisch&#039;&#039;&#039; ({{JSL|string.compareTo(otherString)}} und gib das sortierte {{JSL|String[]}} aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) Bonus ====&lt;br /&gt;
Sortiere wie in der vorhergehenden Aufgabe. Bei der Ausgabe sollen Wörter nicht mehrfach ausgegeben werden, weiters füge bei jedem Wort die Anzahl der vorkommnisse hinzu.&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3677</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3677"/>
		<updated>2024-10-25T06:36:02Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Kalender */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle eine Methode welche einen Rhombus von variabler Größe und mit angegebene Zeichen ausgibt. Die Größe soll dabei die Höhe des Rhombus sein.&lt;br /&gt;
# Löse das Problem wie es dir gefällt&lt;br /&gt;
# Löse das Problem mit nur zwei ineinander verschachtelten Schleifen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf:&#039;&#039;&#039;&lt;br /&gt;
{{JSL|printRhombus(&amp;quot;x&amp;quot;, 7);}}&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
{{NoLine}}&lt;br /&gt;
......X......&lt;br /&gt;
.....X.X.....&lt;br /&gt;
....X...X....&lt;br /&gt;
...X.....X...&lt;br /&gt;
..X.......X..&lt;br /&gt;
.X.........X.&lt;br /&gt;
X...........X&lt;br /&gt;
.X.........X.&lt;br /&gt;
..X.......X..&lt;br /&gt;
...X.....X...&lt;br /&gt;
....X...X....&lt;br /&gt;
.....X.X.....&lt;br /&gt;
......X......&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die ein {{JSL|int[]}} als Parameter erhält und das &#039;&#039;&#039;erste&#039;&#039;&#039; und &#039;&#039;&#039;letzte&#039;&#039;&#039; Element zu einem {{JSL|String}} zusammenfügt und zurückgibt. Verwende dazu die Beispielarrays in der Klasse und gib das Ergebnis aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(getFirstAndLast(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|First: 0, last: 10}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2021}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle ein Programm, das das aktuelle Datum und die Uhrzeit ausgibt. Verwende für jede unten angegebene ausgabe ein eigenes {{JSL|SimpleDateFormat}} und erstelle eine 3 Zeilige Ausgabe:&lt;br /&gt;
# Nur das Datum&lt;br /&gt;
# Nur die Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit&lt;br /&gt;
# Datum und Uhrzeit mit Zeitzone&lt;br /&gt;
# Die aktuelle Sekunde mit Millisekunde&lt;br /&gt;
&lt;br /&gt;
== String manipulation (Optional) ==&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/stringmanipulation/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ersetze mit Hilfe von &#039;&#039;&#039;regulären Ausdrücken&#039;&#039;&#039; folgendes aus dem in der Klasse gegebenen {{JSL|String}}. Folgende Aufzählung ist als Ganzes zu betrachten.&lt;br /&gt;
* &#039;&#039;&#039;a&#039;&#039;&#039; bis &#039;&#039;&#039;c&#039;&#039;&#039; durch &#039;&#039;&#039;X&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;f&#039;&#039;&#039; bis &#039;&#039;&#039;z&#039;&#039;&#039; durch &#039;&#039;&#039;Y&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; bis &#039;&#039;&#039;5&#039;&#039;&#039; durch &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039; bis &#039;&#039;&#039;9&#039;&#039;&#039; durch &#039;&#039;&#039;b&#039;&#039;&#039;&lt;br /&gt;
und gib den {{JSL|String}}, bei dem alles ersetzt wurde, aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|HeYYe deY ab.a0.a0aa YYYd eYY YeYY YYYeY TXY. ZYXY YYXY eY YYYXY YYe eYYeY TeYY, deY aa LeYYe YXYYeYXeY, XXeY dXY YYY dYXY eYXY!}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle einen regulären Ausdruck der folgendem Sachverhalt entspricht und prüfe diesen in der {{JSL|main}} &#039;&#039;&#039;Methode&#039;&#039;&#039;. Die Punkte gehören alle zum gleichen regulären Ausdruck und sollen nacheinander zutreffen:&lt;br /&gt;
# Drei oder mehr Kleinbuchstaben&lt;br /&gt;
# Eine Zahl größer als 0&lt;br /&gt;
# Zwei Zahlen&lt;br /&gt;
# Ein oder mehr Großbuchstaben&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;abc100A&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|true}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;Abc100A&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|false}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;luke010A&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|false}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;test101ABCDE&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|true}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;test1ABCDE&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|false}}&lt;br /&gt;
&lt;br /&gt;
== Datenströme (Optional) ==&lt;br /&gt;
Dieses Thema haben wir nicht bearbeitet. Wer trotzdem eine Herausforderung sucht, für den ist das etwas.&lt;br /&gt;
&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/streams/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Die Einlesemethode in allen Aufgaben ist frei wählbar&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein und gib diesen anschließend aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein und gib die Anzahl der Worte des {{JSL|String}} aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein, zerlege diesen in Worte und sortiere diese mittels &#039;&#039;&#039;Bubblesort&#039;&#039;&#039; &#039;&#039;&#039;lexikographisch&#039;&#039;&#039; ({{JSL|string.compareTo(otherString)}} und gib das sortierte {{JSL|String[]}} aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) Bonus ====&lt;br /&gt;
Sortiere wie in der vorhergehenden Aufgabe. Bei der Ausgabe sollen Wörter nicht mehrfach ausgegeben werden, weiters füge bei jedem Wort die Anzahl der vorkommnisse hinzu.&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3676</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3676"/>
		<updated>2024-10-25T06:34:44Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Arrays */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle eine Methode welche einen Rhombus von variabler Größe und mit angegebene Zeichen ausgibt. Die Größe soll dabei die Höhe des Rhombus sein.&lt;br /&gt;
# Löse das Problem wie es dir gefällt&lt;br /&gt;
# Löse das Problem mit nur zwei ineinander verschachtelten Schleifen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf:&#039;&#039;&#039;&lt;br /&gt;
{{JSL|printRhombus(&amp;quot;x&amp;quot;, 7);}}&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
{{NoLine}}&lt;br /&gt;
......X......&lt;br /&gt;
.....X.X.....&lt;br /&gt;
....X...X....&lt;br /&gt;
...X.....X...&lt;br /&gt;
..X.......X..&lt;br /&gt;
.X.........X.&lt;br /&gt;
X...........X&lt;br /&gt;
.X.........X.&lt;br /&gt;
..X.......X..&lt;br /&gt;
...X.....X...&lt;br /&gt;
....X...X....&lt;br /&gt;
.....X.X.....&lt;br /&gt;
......X......&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die ein {{JSL|int[]}} als Parameter erhält und das &#039;&#039;&#039;erste&#039;&#039;&#039; und &#039;&#039;&#039;letzte&#039;&#039;&#039; Element zu einem {{JSL|String}} zusammenfügt und zurückgibt. Verwende dazu die Beispielarrays in der Klasse und gib das Ergebnis aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(getFirstAndLast(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|First: 0, last: 10}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) ====&lt;br /&gt;
Erstelle ein 2D-Array mit der Größe von 10 und mache das Pascal-Dreieck.&lt;br /&gt;
Achte beim finalen Print auch auf die Formatierung des Ausdrucks in der Konsole.&lt;br /&gt;
 Regel: Jede Zahl in der Matrix ist gleich die Summe der Nachbarzahlen nach &#039;&#039;&#039;Links&#039;&#039;&#039; und nach &#039;&#039;&#039;Oben&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;:&lt;br /&gt;
{{BML|code=&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;10&lt;br /&gt;
&lt;br /&gt;
 1       1       1       1       1       1       1       1       1       1 &lt;br /&gt;
 1       2       3       4       5       6       7       8       9      10 &lt;br /&gt;
 1       3       6      10      15      21      28      36      45      55 &lt;br /&gt;
 1       4      10      20      35      56      84     120     165     220 &lt;br /&gt;
 1       5      15      35      70     126     210     330     495     715 &lt;br /&gt;
 1       6      21      56     126     252     462     792    1287    2002 &lt;br /&gt;
 1       7      28      84     210     462     924    1716    3003    5005 &lt;br /&gt;
 1       8      36     120     330     792    1716    3432    6435   11440 &lt;br /&gt;
 1       9      45     165     495    1287    3003    6435   12870   24310 &lt;br /&gt;
 1      10      55     220     715    2002    5005   11440   24310   48620&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/calendar/&#039;&#039;&#039;&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2021}}&lt;br /&gt;
&lt;br /&gt;
== String manipulation (Optional) ==&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/stringmanipulation/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ersetze mit Hilfe von &#039;&#039;&#039;regulären Ausdrücken&#039;&#039;&#039; folgendes aus dem in der Klasse gegebenen {{JSL|String}}. Folgende Aufzählung ist als Ganzes zu betrachten.&lt;br /&gt;
* &#039;&#039;&#039;a&#039;&#039;&#039; bis &#039;&#039;&#039;c&#039;&#039;&#039; durch &#039;&#039;&#039;X&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;f&#039;&#039;&#039; bis &#039;&#039;&#039;z&#039;&#039;&#039; durch &#039;&#039;&#039;Y&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; bis &#039;&#039;&#039;5&#039;&#039;&#039; durch &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039; bis &#039;&#039;&#039;9&#039;&#039;&#039; durch &#039;&#039;&#039;b&#039;&#039;&#039;&lt;br /&gt;
und gib den {{JSL|String}}, bei dem alles ersetzt wurde, aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|HeYYe deY ab.a0.a0aa YYYd eYY YeYY YYYeY TXY. ZYXY YYXY eY YYYXY YYe eYYeY TeYY, deY aa LeYYe YXYYeYXeY, XXeY dXY YYY dYXY eYXY!}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle einen regulären Ausdruck der folgendem Sachverhalt entspricht und prüfe diesen in der {{JSL|main}} &#039;&#039;&#039;Methode&#039;&#039;&#039;. Die Punkte gehören alle zum gleichen regulären Ausdruck und sollen nacheinander zutreffen:&lt;br /&gt;
# Drei oder mehr Kleinbuchstaben&lt;br /&gt;
# Eine Zahl größer als 0&lt;br /&gt;
# Zwei Zahlen&lt;br /&gt;
# Ein oder mehr Großbuchstaben&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;abc100A&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|true}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;Abc100A&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|false}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;luke010A&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|false}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;test101ABCDE&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|true}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;test1ABCDE&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|false}}&lt;br /&gt;
&lt;br /&gt;
== Datenströme (Optional) ==&lt;br /&gt;
Dieses Thema haben wir nicht bearbeitet. Wer trotzdem eine Herausforderung sucht, für den ist das etwas.&lt;br /&gt;
&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/streams/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Die Einlesemethode in allen Aufgaben ist frei wählbar&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein und gib diesen anschließend aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein und gib die Anzahl der Worte des {{JSL|String}} aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein, zerlege diesen in Worte und sortiere diese mittels &#039;&#039;&#039;Bubblesort&#039;&#039;&#039; &#039;&#039;&#039;lexikographisch&#039;&#039;&#039; ({{JSL|string.compareTo(otherString)}} und gib das sortierte {{JSL|String[]}} aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) Bonus ====&lt;br /&gt;
Sortiere wie in der vorhergehenden Aufgabe. Bei der Ausgabe sollen Wörter nicht mehrfach ausgegeben werden, weiters füge bei jedem Wort die Anzahl der vorkommnisse hinzu.&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3675</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3675"/>
		<updated>2024-10-25T06:30:33Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Arrays */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle eine Methode welche einen Rhombus von variabler Größe und mit angegebene Zeichen ausgibt. Die Größe soll dabei die Höhe des Rhombus sein.&lt;br /&gt;
# Löse das Problem wie es dir gefällt&lt;br /&gt;
# Löse das Problem mit nur zwei ineinander verschachtelten Schleifen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf:&#039;&#039;&#039;&lt;br /&gt;
{{JSL|printRhombus(&amp;quot;x&amp;quot;, 7);}}&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
{{NoLine}}&lt;br /&gt;
......X......&lt;br /&gt;
.....X.X.....&lt;br /&gt;
....X...X....&lt;br /&gt;
...X.....X...&lt;br /&gt;
..X.......X..&lt;br /&gt;
.X.........X.&lt;br /&gt;
X...........X&lt;br /&gt;
.X.........X.&lt;br /&gt;
..X.......X..&lt;br /&gt;
...X.....X...&lt;br /&gt;
....X...X....&lt;br /&gt;
.....X.X.....&lt;br /&gt;
......X......&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die ein {{JSL|int[]}} als Parameter erhält und das &#039;&#039;&#039;erste&#039;&#039;&#039; und &#039;&#039;&#039;letzte&#039;&#039;&#039; Element zu einem {{JSL|String}} zusammenfügt und zurückgibt. Verwende dazu die Beispielarrays in der Klasse und gib das Ergebnis aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(getFirstAndLast(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|First: 0, last: 10}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|int}} als Parameter nimmt. Diese &#039;&#039;&#039;Methode&#039;&#039;&#039; soll ein {{JSL|int[]}} erstellen und das {{JSL|int[]}} mit den Zahlen von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive der angegebenen Zahl&#039;&#039;&#039; befüllen und dann zurückgeben. Teste diese &#039;&#039;&#039;Methode&#039;&#039;&#039; in der {{JSL|main}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und gib das Array aus (egal wie, z.b.: Schleife, oder {{JSL|Arrays.toString(...)}})&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
{{JML|code=&lt;br /&gt;
int[] arr = fillArr(10);&lt;br /&gt;
//Ausgabe arr}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0 1 2 3 4 5 6 7 8 9 10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) ====&lt;br /&gt;
Erstelle ein {{JSL|int[]}} und sortiere es mit einem selbsterstellten &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; und gib es dann aus. Der &#039;&#039;&#039;Bubblesort Algorithmus&#039;&#039;&#039; soll in einer eigenen Methode implementiert werden. Der Aufruf und die Ausgabe erfolgt in der {{JSL|main}} Methode.&lt;br /&gt;
# Sortiere der Größe nach aufsteigend (Ascending)&lt;br /&gt;
# Sortiere der Größe nach absteigend (Descending)&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/calendar/&#039;&#039;&#039;&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2021}}&lt;br /&gt;
&lt;br /&gt;
== String manipulation (Optional) ==&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/stringmanipulation/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ersetze mit Hilfe von &#039;&#039;&#039;regulären Ausdrücken&#039;&#039;&#039; folgendes aus dem in der Klasse gegebenen {{JSL|String}}. Folgende Aufzählung ist als Ganzes zu betrachten.&lt;br /&gt;
* &#039;&#039;&#039;a&#039;&#039;&#039; bis &#039;&#039;&#039;c&#039;&#039;&#039; durch &#039;&#039;&#039;X&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;f&#039;&#039;&#039; bis &#039;&#039;&#039;z&#039;&#039;&#039; durch &#039;&#039;&#039;Y&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; bis &#039;&#039;&#039;5&#039;&#039;&#039; durch &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039; bis &#039;&#039;&#039;9&#039;&#039;&#039; durch &#039;&#039;&#039;b&#039;&#039;&#039;&lt;br /&gt;
und gib den {{JSL|String}}, bei dem alles ersetzt wurde, aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|HeYYe deY ab.a0.a0aa YYYd eYY YeYY YYYeY TXY. ZYXY YYXY eY YYYXY YYe eYYeY TeYY, deY aa LeYYe YXYYeYXeY, XXeY dXY YYY dYXY eYXY!}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle einen regulären Ausdruck der folgendem Sachverhalt entspricht und prüfe diesen in der {{JSL|main}} &#039;&#039;&#039;Methode&#039;&#039;&#039;. Die Punkte gehören alle zum gleichen regulären Ausdruck und sollen nacheinander zutreffen:&lt;br /&gt;
# Drei oder mehr Kleinbuchstaben&lt;br /&gt;
# Eine Zahl größer als 0&lt;br /&gt;
# Zwei Zahlen&lt;br /&gt;
# Ein oder mehr Großbuchstaben&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;abc100A&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|true}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;Abc100A&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|false}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;luke010A&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|false}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;test101ABCDE&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|true}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;test1ABCDE&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|false}}&lt;br /&gt;
&lt;br /&gt;
== Datenströme (Optional) ==&lt;br /&gt;
Dieses Thema haben wir nicht bearbeitet. Wer trotzdem eine Herausforderung sucht, für den ist das etwas.&lt;br /&gt;
&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/streams/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Die Einlesemethode in allen Aufgaben ist frei wählbar&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein und gib diesen anschließend aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein und gib die Anzahl der Worte des {{JSL|String}} aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein, zerlege diesen in Worte und sortiere diese mittels &#039;&#039;&#039;Bubblesort&#039;&#039;&#039; &#039;&#039;&#039;lexikographisch&#039;&#039;&#039; ({{JSL|string.compareTo(otherString)}} und gib das sortierte {{JSL|String[]}} aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) Bonus ====&lt;br /&gt;
Sortiere wie in der vorhergehenden Aufgabe. Bei der Ausgabe sollen Wörter nicht mehrfach ausgegeben werden, weiters füge bei jedem Wort die Anzahl der vorkommnisse hinzu.&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3674</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3674"/>
		<updated>2024-10-25T06:28:16Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Input */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle eine Methode welche einen Rhombus von variabler Größe und mit angegebene Zeichen ausgibt. Die Größe soll dabei die Höhe des Rhombus sein.&lt;br /&gt;
# Löse das Problem wie es dir gefällt&lt;br /&gt;
# Löse das Problem mit nur zwei ineinander verschachtelten Schleifen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf:&#039;&#039;&#039;&lt;br /&gt;
{{JSL|printRhombus(&amp;quot;x&amp;quot;, 7);}}&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
{{NoLine}}&lt;br /&gt;
......X......&lt;br /&gt;
.....X.X.....&lt;br /&gt;
....X...X....&lt;br /&gt;
...X.....X...&lt;br /&gt;
..X.......X..&lt;br /&gt;
.X.........X.&lt;br /&gt;
X...........X&lt;br /&gt;
.X.........X.&lt;br /&gt;
..X.......X..&lt;br /&gt;
...X.....X...&lt;br /&gt;
....X...X....&lt;br /&gt;
.....X.X.....&lt;br /&gt;
......X......&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Es soll eine beliebige Zahl zwischen &#039;&#039;&#039;0 und 100&#039;&#039;&#039; mittels {{JSL|new Random().nextInt(...)}} gewählt werden. Nun soll die Zahl durch Eingabe über die Konsole erraten werden. Ist die Zahl zu hoch oder zu niedrig, so soll diese Information ausgegeben werden. Wurde die Zahl getroffen, so ist das Spiel gewonnen und das Programm wird beendet.&lt;br /&gt;
&lt;br /&gt;
 Wird keine Zahl eingegeben so darf das Programm nicht abstürzen und es soll erneut nach einer Zahl gefragt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Willkommen beim super coolen Zahlen Ratespiel!&lt;br /&gt;
Errate die Zahl zwischen 0 und 100!&lt;br /&gt;
Gib die Zahl nun ein:&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;4&lt;br /&gt;
Die Zahl ist zu niedrig!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;90&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;30&lt;br /&gt;
Die Zahl ist zu hoch!&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt;15&lt;br /&gt;
Du hast gewonnen!!!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die ein {{JSL|int[]}} als Parameter erhält und das &#039;&#039;&#039;erste&#039;&#039;&#039; und &#039;&#039;&#039;letzte&#039;&#039;&#039; Element zu einem {{JSL|String}} zusammenfügt und zurückgibt. Verwende dazu die Beispielarrays in der Klasse und gib das Ergebnis aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(getFirstAndLast(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|First: 0, last: 10}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|int}} als Parameter nimmt. Diese &#039;&#039;&#039;Methode&#039;&#039;&#039; soll ein {{JSL|int[]}} erstellen und das {{JSL|int[]}} mit den Zahlen von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive der angegebenen Zahl&#039;&#039;&#039; befüllen und dann zurückgeben. Teste diese &#039;&#039;&#039;Methode&#039;&#039;&#039; in der {{JSL|main}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und gib das Array aus (egal wie, z.b.: Schleife, oder {{JSL|Arrays.toString(...)}})&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
{{JML|code=&lt;br /&gt;
int[] arr = fillArr(10);&lt;br /&gt;
//Ausgabe arr}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0 1 2 3 4 5 6 7 8 9 10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) ====&lt;br /&gt;
Sortiere das in der Klasse gegebene {{JSL|int[]}} mit Hilfe von &#039;&#039;&#039;Bubblesort&#039;&#039;&#039; und gib das Array aus. Ob &#039;&#039;&#039;aufsteigend&#039;&#039;&#039; oder &#039;&#039;&#039;absteigend&#039;&#039;&#039; Sortiert bleibt dir überlassen.&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/calendar/&#039;&#039;&#039;&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2021}}&lt;br /&gt;
&lt;br /&gt;
== String manipulation (Optional) ==&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/stringmanipulation/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ersetze mit Hilfe von &#039;&#039;&#039;regulären Ausdrücken&#039;&#039;&#039; folgendes aus dem in der Klasse gegebenen {{JSL|String}}. Folgende Aufzählung ist als Ganzes zu betrachten.&lt;br /&gt;
* &#039;&#039;&#039;a&#039;&#039;&#039; bis &#039;&#039;&#039;c&#039;&#039;&#039; durch &#039;&#039;&#039;X&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;f&#039;&#039;&#039; bis &#039;&#039;&#039;z&#039;&#039;&#039; durch &#039;&#039;&#039;Y&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; bis &#039;&#039;&#039;5&#039;&#039;&#039; durch &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039; bis &#039;&#039;&#039;9&#039;&#039;&#039; durch &#039;&#039;&#039;b&#039;&#039;&#039;&lt;br /&gt;
und gib den {{JSL|String}}, bei dem alles ersetzt wurde, aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|HeYYe deY ab.a0.a0aa YYYd eYY YeYY YYYeY TXY. ZYXY YYXY eY YYYXY YYe eYYeY TeYY, deY aa LeYYe YXYYeYXeY, XXeY dXY YYY dYXY eYXY!}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle einen regulären Ausdruck der folgendem Sachverhalt entspricht und prüfe diesen in der {{JSL|main}} &#039;&#039;&#039;Methode&#039;&#039;&#039;. Die Punkte gehören alle zum gleichen regulären Ausdruck und sollen nacheinander zutreffen:&lt;br /&gt;
# Drei oder mehr Kleinbuchstaben&lt;br /&gt;
# Eine Zahl größer als 0&lt;br /&gt;
# Zwei Zahlen&lt;br /&gt;
# Ein oder mehr Großbuchstaben&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;abc100A&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|true}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;Abc100A&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|false}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;luke010A&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|false}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;test101ABCDE&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|true}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;test1ABCDE&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|false}}&lt;br /&gt;
&lt;br /&gt;
== Datenströme (Optional) ==&lt;br /&gt;
Dieses Thema haben wir nicht bearbeitet. Wer trotzdem eine Herausforderung sucht, für den ist das etwas.&lt;br /&gt;
&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/streams/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Die Einlesemethode in allen Aufgaben ist frei wählbar&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein und gib diesen anschließend aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein und gib die Anzahl der Worte des {{JSL|String}} aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein, zerlege diesen in Worte und sortiere diese mittels &#039;&#039;&#039;Bubblesort&#039;&#039;&#039; &#039;&#039;&#039;lexikographisch&#039;&#039;&#039; ({{JSL|string.compareTo(otherString)}} und gib das sortierte {{JSL|String[]}} aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) Bonus ====&lt;br /&gt;
Sortiere wie in der vorhergehenden Aufgabe. Bei der Ausgabe sollen Wörter nicht mehrfach ausgegeben werden, weiters füge bei jedem Wort die Anzahl der vorkommnisse hinzu.&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3673</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3673"/>
		<updated>2024-10-25T06:26:01Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Bonus Aufgabe) = */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) ====&lt;br /&gt;
Erstelle eine Methode welche einen Rhombus von variabler Größe und mit angegebene Zeichen ausgibt. Die Größe soll dabei die Höhe des Rhombus sein.&lt;br /&gt;
# Löse das Problem wie es dir gefällt&lt;br /&gt;
# Löse das Problem mit nur zwei ineinander verschachtelten Schleifen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf:&#039;&#039;&#039;&lt;br /&gt;
{{JSL|printRhombus(&amp;quot;x&amp;quot;, 7);}}&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
{{NoLine}}&lt;br /&gt;
......X......&lt;br /&gt;
.....X.X.....&lt;br /&gt;
....X...X....&lt;br /&gt;
...X.....X...&lt;br /&gt;
..X.......X..&lt;br /&gt;
.X.........X.&lt;br /&gt;
X...........X&lt;br /&gt;
.X.........X.&lt;br /&gt;
..X.......X..&lt;br /&gt;
...X.....X...&lt;br /&gt;
....X...X....&lt;br /&gt;
.....X.X.....&lt;br /&gt;
......X......&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die ein {{JSL|int[]}} als Parameter erhält und das &#039;&#039;&#039;erste&#039;&#039;&#039; und &#039;&#039;&#039;letzte&#039;&#039;&#039; Element zu einem {{JSL|String}} zusammenfügt und zurückgibt. Verwende dazu die Beispielarrays in der Klasse und gib das Ergebnis aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(getFirstAndLast(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|First: 0, last: 10}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|int}} als Parameter nimmt. Diese &#039;&#039;&#039;Methode&#039;&#039;&#039; soll ein {{JSL|int[]}} erstellen und das {{JSL|int[]}} mit den Zahlen von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive der angegebenen Zahl&#039;&#039;&#039; befüllen und dann zurückgeben. Teste diese &#039;&#039;&#039;Methode&#039;&#039;&#039; in der {{JSL|main}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und gib das Array aus (egal wie, z.b.: Schleife, oder {{JSL|Arrays.toString(...)}})&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
{{JML|code=&lt;br /&gt;
int[] arr = fillArr(10);&lt;br /&gt;
//Ausgabe arr}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0 1 2 3 4 5 6 7 8 9 10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) ====&lt;br /&gt;
Sortiere das in der Klasse gegebene {{JSL|int[]}} mit Hilfe von &#039;&#039;&#039;Bubblesort&#039;&#039;&#039; und gib das Array aus. Ob &#039;&#039;&#039;aufsteigend&#039;&#039;&#039; oder &#039;&#039;&#039;absteigend&#039;&#039;&#039; Sortiert bleibt dir überlassen.&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/calendar/&#039;&#039;&#039;&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2021}}&lt;br /&gt;
&lt;br /&gt;
== String manipulation (Optional) ==&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/stringmanipulation/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ersetze mit Hilfe von &#039;&#039;&#039;regulären Ausdrücken&#039;&#039;&#039; folgendes aus dem in der Klasse gegebenen {{JSL|String}}. Folgende Aufzählung ist als Ganzes zu betrachten.&lt;br /&gt;
* &#039;&#039;&#039;a&#039;&#039;&#039; bis &#039;&#039;&#039;c&#039;&#039;&#039; durch &#039;&#039;&#039;X&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;f&#039;&#039;&#039; bis &#039;&#039;&#039;z&#039;&#039;&#039; durch &#039;&#039;&#039;Y&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; bis &#039;&#039;&#039;5&#039;&#039;&#039; durch &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039; bis &#039;&#039;&#039;9&#039;&#039;&#039; durch &#039;&#039;&#039;b&#039;&#039;&#039;&lt;br /&gt;
und gib den {{JSL|String}}, bei dem alles ersetzt wurde, aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|HeYYe deY ab.a0.a0aa YYYd eYY YeYY YYYeY TXY. ZYXY YYXY eY YYYXY YYe eYYeY TeYY, deY aa LeYYe YXYYeYXeY, XXeY dXY YYY dYXY eYXY!}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle einen regulären Ausdruck der folgendem Sachverhalt entspricht und prüfe diesen in der {{JSL|main}} &#039;&#039;&#039;Methode&#039;&#039;&#039;. Die Punkte gehören alle zum gleichen regulären Ausdruck und sollen nacheinander zutreffen:&lt;br /&gt;
# Drei oder mehr Kleinbuchstaben&lt;br /&gt;
# Eine Zahl größer als 0&lt;br /&gt;
# Zwei Zahlen&lt;br /&gt;
# Ein oder mehr Großbuchstaben&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;abc100A&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|true}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;Abc100A&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|false}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;luke010A&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|false}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;test101ABCDE&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|true}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;test1ABCDE&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|false}}&lt;br /&gt;
&lt;br /&gt;
== Datenströme (Optional) ==&lt;br /&gt;
Dieses Thema haben wir nicht bearbeitet. Wer trotzdem eine Herausforderung sucht, für den ist das etwas.&lt;br /&gt;
&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/streams/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Die Einlesemethode in allen Aufgaben ist frei wählbar&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein und gib diesen anschließend aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein und gib die Anzahl der Worte des {{JSL|String}} aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein, zerlege diesen in Worte und sortiere diese mittels &#039;&#039;&#039;Bubblesort&#039;&#039;&#039; &#039;&#039;&#039;lexikographisch&#039;&#039;&#039; ({{JSL|string.compareTo(otherString)}} und gib das sortierte {{JSL|String[]}} aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) Bonus ====&lt;br /&gt;
Sortiere wie in der vorhergehenden Aufgabe. Bei der Ausgabe sollen Wörter nicht mehrfach ausgegeben werden, weiters füge bei jedem Wort die Anzahl der vorkommnisse hinzu.&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3672</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3672"/>
		<updated>2024-10-25T06:25:46Z</updated>

		<summary type="html">&lt;p&gt;Sandro: /* Methoden */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Bonus Aufgabe) =====&lt;br /&gt;
Erstelle eine Methode welche einen Rhombus von variabler Größe und mit angegebene Zeichen ausgibt. Die Größe soll dabei die Höhe des Rhombus sein.&lt;br /&gt;
# Löse das Problem wie es dir gefällt&lt;br /&gt;
# Löse das Problem mit nur zwei ineinander verschachtelten Schleifen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf:&#039;&#039;&#039;&lt;br /&gt;
{{JSL|printRhombus(&amp;quot;x&amp;quot;, 7);}}&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
{{NoLine}}&lt;br /&gt;
......X......&lt;br /&gt;
.....X.X.....&lt;br /&gt;
....X...X....&lt;br /&gt;
...X.....X...&lt;br /&gt;
..X.......X..&lt;br /&gt;
.X.........X.&lt;br /&gt;
X...........X&lt;br /&gt;
.X.........X.&lt;br /&gt;
..X.......X..&lt;br /&gt;
...X.....X...&lt;br /&gt;
....X...X....&lt;br /&gt;
.....X.X.....&lt;br /&gt;
......X......&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die ein {{JSL|int[]}} als Parameter erhält und das &#039;&#039;&#039;erste&#039;&#039;&#039; und &#039;&#039;&#039;letzte&#039;&#039;&#039; Element zu einem {{JSL|String}} zusammenfügt und zurückgibt. Verwende dazu die Beispielarrays in der Klasse und gib das Ergebnis aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(getFirstAndLast(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|First: 0, last: 10}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|int}} als Parameter nimmt. Diese &#039;&#039;&#039;Methode&#039;&#039;&#039; soll ein {{JSL|int[]}} erstellen und das {{JSL|int[]}} mit den Zahlen von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive der angegebenen Zahl&#039;&#039;&#039; befüllen und dann zurückgeben. Teste diese &#039;&#039;&#039;Methode&#039;&#039;&#039; in der {{JSL|main}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und gib das Array aus (egal wie, z.b.: Schleife, oder {{JSL|Arrays.toString(...)}})&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
{{JML|code=&lt;br /&gt;
int[] arr = fillArr(10);&lt;br /&gt;
//Ausgabe arr}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0 1 2 3 4 5 6 7 8 9 10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) ====&lt;br /&gt;
Sortiere das in der Klasse gegebene {{JSL|int[]}} mit Hilfe von &#039;&#039;&#039;Bubblesort&#039;&#039;&#039; und gib das Array aus. Ob &#039;&#039;&#039;aufsteigend&#039;&#039;&#039; oder &#039;&#039;&#039;absteigend&#039;&#039;&#039; Sortiert bleibt dir überlassen.&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/calendar/&#039;&#039;&#039;&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2021}}&lt;br /&gt;
&lt;br /&gt;
== String manipulation (Optional) ==&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/stringmanipulation/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ersetze mit Hilfe von &#039;&#039;&#039;regulären Ausdrücken&#039;&#039;&#039; folgendes aus dem in der Klasse gegebenen {{JSL|String}}. Folgende Aufzählung ist als Ganzes zu betrachten.&lt;br /&gt;
* &#039;&#039;&#039;a&#039;&#039;&#039; bis &#039;&#039;&#039;c&#039;&#039;&#039; durch &#039;&#039;&#039;X&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;f&#039;&#039;&#039; bis &#039;&#039;&#039;z&#039;&#039;&#039; durch &#039;&#039;&#039;Y&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; bis &#039;&#039;&#039;5&#039;&#039;&#039; durch &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039; bis &#039;&#039;&#039;9&#039;&#039;&#039; durch &#039;&#039;&#039;b&#039;&#039;&#039;&lt;br /&gt;
und gib den {{JSL|String}}, bei dem alles ersetzt wurde, aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|HeYYe deY ab.a0.a0aa YYYd eYY YeYY YYYeY TXY. ZYXY YYXY eY YYYXY YYe eYYeY TeYY, deY aa LeYYe YXYYeYXeY, XXeY dXY YYY dYXY eYXY!}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle einen regulären Ausdruck der folgendem Sachverhalt entspricht und prüfe diesen in der {{JSL|main}} &#039;&#039;&#039;Methode&#039;&#039;&#039;. Die Punkte gehören alle zum gleichen regulären Ausdruck und sollen nacheinander zutreffen:&lt;br /&gt;
# Drei oder mehr Kleinbuchstaben&lt;br /&gt;
# Eine Zahl größer als 0&lt;br /&gt;
# Zwei Zahlen&lt;br /&gt;
# Ein oder mehr Großbuchstaben&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;abc100A&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|true}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;Abc100A&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|false}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;luke010A&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|false}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;test101ABCDE&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|true}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;test1ABCDE&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|false}}&lt;br /&gt;
&lt;br /&gt;
== Datenströme (Optional) ==&lt;br /&gt;
Dieses Thema haben wir nicht bearbeitet. Wer trotzdem eine Herausforderung sucht, für den ist das etwas.&lt;br /&gt;
&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/streams/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Die Einlesemethode in allen Aufgaben ist frei wählbar&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein und gib diesen anschließend aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein und gib die Anzahl der Worte des {{JSL|String}} aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein, zerlege diesen in Worte und sortiere diese mittels &#039;&#039;&#039;Bubblesort&#039;&#039;&#039; &#039;&#039;&#039;lexikographisch&#039;&#039;&#039; ({{JSL|string.compareTo(otherString)}} und gib das sortierte {{JSL|String[]}} aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) Bonus ====&lt;br /&gt;
Sortiere wie in der vorhergehenden Aufgabe. Bei der Ausgabe sollen Wörter nicht mehrfach ausgegeben werden, weiters füge bei jedem Wort die Anzahl der vorkommnisse hinzu.&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3671</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3671"/>
		<updated>2024-10-25T06:23:39Z</updated>

		<summary type="html">&lt;p&gt;Sandro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die ein {{JSL|int[]}} als Parameter erhält und das &#039;&#039;&#039;erste&#039;&#039;&#039; und &#039;&#039;&#039;letzte&#039;&#039;&#039; Element zu einem {{JSL|String}} zusammenfügt und zurückgibt. Verwende dazu die Beispielarrays in der Klasse und gib das Ergebnis aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(getFirstAndLast(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|First: 0, last: 10}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|int}} als Parameter nimmt. Diese &#039;&#039;&#039;Methode&#039;&#039;&#039; soll ein {{JSL|int[]}} erstellen und das {{JSL|int[]}} mit den Zahlen von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive der angegebenen Zahl&#039;&#039;&#039; befüllen und dann zurückgeben. Teste diese &#039;&#039;&#039;Methode&#039;&#039;&#039; in der {{JSL|main}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und gib das Array aus (egal wie, z.b.: Schleife, oder {{JSL|Arrays.toString(...)}})&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
{{JML|code=&lt;br /&gt;
int[] arr = fillArr(10);&lt;br /&gt;
//Ausgabe arr}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0 1 2 3 4 5 6 7 8 9 10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) ====&lt;br /&gt;
Sortiere das in der Klasse gegebene {{JSL|int[]}} mit Hilfe von &#039;&#039;&#039;Bubblesort&#039;&#039;&#039; und gib das Array aus. Ob &#039;&#039;&#039;aufsteigend&#039;&#039;&#039; oder &#039;&#039;&#039;absteigend&#039;&#039;&#039; Sortiert bleibt dir überlassen.&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/calendar/&#039;&#039;&#039;&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2021}}&lt;br /&gt;
&lt;br /&gt;
== String manipulation (Optional) ==&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/stringmanipulation/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ersetze mit Hilfe von &#039;&#039;&#039;regulären Ausdrücken&#039;&#039;&#039; folgendes aus dem in der Klasse gegebenen {{JSL|String}}. Folgende Aufzählung ist als Ganzes zu betrachten.&lt;br /&gt;
* &#039;&#039;&#039;a&#039;&#039;&#039; bis &#039;&#039;&#039;c&#039;&#039;&#039; durch &#039;&#039;&#039;X&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;f&#039;&#039;&#039; bis &#039;&#039;&#039;z&#039;&#039;&#039; durch &#039;&#039;&#039;Y&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; bis &#039;&#039;&#039;5&#039;&#039;&#039; durch &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039; bis &#039;&#039;&#039;9&#039;&#039;&#039; durch &#039;&#039;&#039;b&#039;&#039;&#039;&lt;br /&gt;
und gib den {{JSL|String}}, bei dem alles ersetzt wurde, aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|HeYYe deY ab.a0.a0aa YYYd eYY YeYY YYYeY TXY. ZYXY YYXY eY YYYXY YYe eYYeY TeYY, deY aa LeYYe YXYYeYXeY, XXeY dXY YYY dYXY eYXY!}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle einen regulären Ausdruck der folgendem Sachverhalt entspricht und prüfe diesen in der {{JSL|main}} &#039;&#039;&#039;Methode&#039;&#039;&#039;. Die Punkte gehören alle zum gleichen regulären Ausdruck und sollen nacheinander zutreffen:&lt;br /&gt;
# Drei oder mehr Kleinbuchstaben&lt;br /&gt;
# Eine Zahl größer als 0&lt;br /&gt;
# Zwei Zahlen&lt;br /&gt;
# Ein oder mehr Großbuchstaben&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;abc100A&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|true}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;Abc100A&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|false}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;luke010A&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|false}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;test101ABCDE&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|true}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;test1ABCDE&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|false}}&lt;br /&gt;
&lt;br /&gt;
== Datenströme (Optional) ==&lt;br /&gt;
Dieses Thema haben wir nicht bearbeitet. Wer trotzdem eine Herausforderung sucht, für den ist das etwas.&lt;br /&gt;
&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/streams/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Die Einlesemethode in allen Aufgaben ist frei wählbar&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein und gib diesen anschließend aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein und gib die Anzahl der Worte des {{JSL|String}} aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein, zerlege diesen in Worte und sortiere diese mittels &#039;&#039;&#039;Bubblesort&#039;&#039;&#039; &#039;&#039;&#039;lexikographisch&#039;&#039;&#039; ({{JSL|string.compareTo(otherString)}} und gib das sortierte {{JSL|String[]}} aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) Bonus ====&lt;br /&gt;
Sortiere wie in der vorhergehenden Aufgabe. Bei der Ausgabe sollen Wörter nicht mehrfach ausgegeben werden, weiters füge bei jedem Wort die Anzahl der vorkommnisse hinzu.&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_03/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3670</id>
		<title>DCV 2024 03/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_03/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3670"/>
		<updated>2024-10-25T06:22:35Z</updated>

		<summary type="html">&lt;p&gt;Sandro: Änderung 3666 von Sandro (Diskussion) rückgängig gemacht.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
08:30 bis 12:30&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
== Vorbereitung ==&lt;br /&gt;
# Öffne &#039;&#039;&#039;IntelliJ&#039;&#039;&#039;&lt;br /&gt;
# Schließe das bestehende Projekt&lt;br /&gt;
## File&lt;br /&gt;
## Close Project&lt;br /&gt;
# Nun solltest du den Welcome Screen von &#039;&#039;&#039;IntelliJ&#039;&#039;&#039; sehen&lt;br /&gt;
# Klicke auf &#039;&#039;&#039;Get from VCS&#039;&#039;&#039;&lt;br /&gt;
## Version control: &#039;&#039;&#039;Git&#039;&#039;&#039;&lt;br /&gt;
## URL: &#039;&#039;&#039;https://gitlab.drlue.at/digitalcampus/codingcampus_2021.09.selbstkontrolle.git&#039;&#039;&#039;&lt;br /&gt;
## Clone&lt;br /&gt;
&lt;br /&gt;
== Abgabe ==&lt;br /&gt;
# File&lt;br /&gt;
# Einstellungen&lt;br /&gt;
# Plugins&lt;br /&gt;
# Marketplace&lt;br /&gt;
# Android Plugin suchen und installieren&lt;br /&gt;
# IntelliJ neustarten&lt;br /&gt;
# File&lt;br /&gt;
# Export&lt;br /&gt;
# Export to zip file (diese Option gibt es nur noch mit dem Android Pluging)&lt;br /&gt;
# [vorname]_[nachname]_selbstkontrolle.zip&lt;br /&gt;
# Zip an gyula.horvath@digitalcampusvorarlberg.at&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{TOC limit|4}}&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/loops/&#039;&#039;&#039;&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/methods/&#039;&#039;&#039;&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/input/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/array/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die ein {{JSL|int[]}} als Parameter erhält und das &#039;&#039;&#039;erste&#039;&#039;&#039; und &#039;&#039;&#039;letzte&#039;&#039;&#039; Element zu einem {{JSL|String}} zusammenfügt und zurückgibt. Verwende dazu die Beispielarrays in der Klasse und gib das Ergebnis aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(getFirstAndLast(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|First: 0, last: 10}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|int}} als Parameter nimmt. Diese &#039;&#039;&#039;Methode&#039;&#039;&#039; soll ein {{JSL|int[]}} erstellen und das {{JSL|int[]}} mit den Zahlen von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive der angegebenen Zahl&#039;&#039;&#039; befüllen und dann zurückgeben. Teste diese &#039;&#039;&#039;Methode&#039;&#039;&#039; in der {{JSL|main}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und gib das Array aus (egal wie, z.b.: Schleife, oder {{JSL|Arrays.toString(...)}})&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
{{JML|code=&lt;br /&gt;
int[] arr = fillArr(10);&lt;br /&gt;
//Ausgabe arr}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0 1 2 3 4 5 6 7 8 9 10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) ====&lt;br /&gt;
Sortiere das in der Klasse gegebene {{JSL|int[]}} mit Hilfe von &#039;&#039;&#039;Bubblesort&#039;&#039;&#039; und gib das Array aus. Ob &#039;&#039;&#039;aufsteigend&#039;&#039;&#039; oder &#039;&#039;&#039;absteigend&#039;&#039;&#039; Sortiert bleibt dir überlassen.&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/calendar/&#039;&#039;&#039;&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 19.10.2021}}&lt;br /&gt;
&lt;br /&gt;
== String manipulation (Optional) ==&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/stringmanipulation/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Ersetze mit Hilfe von &#039;&#039;&#039;regulären Ausdrücken&#039;&#039;&#039; folgendes aus dem in der Klasse gegebenen {{JSL|String}}. Folgende Aufzählung ist als Ganzes zu betrachten.&lt;br /&gt;
* &#039;&#039;&#039;a&#039;&#039;&#039; bis &#039;&#039;&#039;c&#039;&#039;&#039; durch &#039;&#039;&#039;X&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;f&#039;&#039;&#039; bis &#039;&#039;&#039;z&#039;&#039;&#039; durch &#039;&#039;&#039;Y&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039; bis &#039;&#039;&#039;5&#039;&#039;&#039; durch &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039; bis &#039;&#039;&#039;9&#039;&#039;&#039; durch &#039;&#039;&#039;b&#039;&#039;&#039;&lt;br /&gt;
und gib den {{JSL|String}}, bei dem alles ersetzt wurde, aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|HeYYe deY ab.a0.a0aa YYYd eYY YeYY YYYeY TXY. ZYXY YYXY eY YYYXY YYe eYYeY TeYY, deY aa LeYYe YXYYeYXeY, XXeY dXY YYY dYXY eYXY!}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle einen regulären Ausdruck der folgendem Sachverhalt entspricht und prüfe diesen in der {{JSL|main}} &#039;&#039;&#039;Methode&#039;&#039;&#039;. Die Punkte gehören alle zum gleichen regulären Ausdruck und sollen nacheinander zutreffen:&lt;br /&gt;
# Drei oder mehr Kleinbuchstaben&lt;br /&gt;
# Eine Zahl größer als 0&lt;br /&gt;
# Zwei Zahlen&lt;br /&gt;
# Ein oder mehr Großbuchstaben&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;abc100A&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|true}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;Abc100A&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|false}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;luke010A&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|false}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;test101ABCDE&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|true}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;{{Space10}}{{JSL|&amp;quot;test1ABCDE&amp;quot;.matches(regex);}}{{Space10}}&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;{{Space10}}{{BSL|false}}&lt;br /&gt;
&lt;br /&gt;
== Datenströme (Optional) ==&lt;br /&gt;
Dieses Thema haben wir nicht bearbeitet. Wer trotzdem eine Herausforderung sucht, für den ist das etwas.&lt;br /&gt;
&lt;br /&gt;
 Siehe Package: &#039;&#039;&#039;at/digitialcampus/codingcampus/streams/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Die Einlesemethode in allen Aufgaben ist frei wählbar&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein und gib diesen anschließend aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein und gib die Anzahl der Worte des {{JSL|String}} aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Lies die Datei &#039;&#039;&#039;assets/file.txt&#039;&#039;&#039; in einen {{JSL|String}} ein, zerlege diesen in Worte und sortiere diese mittels &#039;&#039;&#039;Bubblesort&#039;&#039;&#039; &#039;&#039;&#039;lexikographisch&#039;&#039;&#039; ({{JSL|string.compareTo(otherString)}} und gib das sortierte {{JSL|String[]}} aus.&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) Bonus ====&lt;br /&gt;
Sortiere wie in der vorhergehenden Aufgabe. Bei der Ausgabe sollen Wörter nicht mehrfach ausgegeben werden, weiters füge bei jedem Wort die Anzahl der vorkommnisse hinzu.&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3669</id>
		<title>DCV 2024 09/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3669"/>
		<updated>2024-10-25T06:22:02Z</updated>

		<summary type="html">&lt;p&gt;Sandro: Die Seite wurde neu angelegt: „== Zeitlicher Ablauf == Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)  Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen und dann behandeln kannst. Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.  == Viel Spaß und Erfolg ==    == Schleifen…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die ein {{JSL|int[]}} als Parameter erhält und das &#039;&#039;&#039;erste&#039;&#039;&#039; und &#039;&#039;&#039;letzte&#039;&#039;&#039; Element zu einem {{JSL|String}} zusammenfügt und zurückgibt. Verwende dazu die Beispielarrays in der Klasse und gib das Ergebnis aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(getFirstAndLast(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|First: 0, last: 10}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|int}} als Parameter nimmt. Diese &#039;&#039;&#039;Methode&#039;&#039;&#039; soll ein {{JSL|int[]}} erstellen und das {{JSL|int[]}} mit den Zahlen von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive der angegebenen Zahl&#039;&#039;&#039; befüllen und dann zurückgeben. Teste diese &#039;&#039;&#039;Methode&#039;&#039;&#039; in der {{JSL|main}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und gib das Array aus (egal wie, z.b.: Schleife, oder {{JSL|Arrays.toString(...)}})&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
{{JML|code=&lt;br /&gt;
int[] arr = fillArr(10);&lt;br /&gt;
//Ausgabe arr}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0 1 2 3 4 5 6 7 8 9 10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) ====&lt;br /&gt;
Sortiere das in der Klasse gegebene {{JSL|int[]}} mit Hilfe von &#039;&#039;&#039;Bubblesort&#039;&#039;&#039; und gib das Array aus. Ob &#039;&#039;&#039;aufsteigend&#039;&#039;&#039; oder &#039;&#039;&#039;absteigend&#039;&#039;&#039; Sortiert bleibt dir überlassen.&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 26.10.2024}}&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbsttest&amp;diff=3668</id>
		<title>DCV 2024 09/Selbsttest</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbsttest&amp;diff=3668"/>
		<updated>2024-10-25T06:21:39Z</updated>

		<summary type="html">&lt;p&gt;Sandro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &#039;&#039;&#039;Wir wünschen euch schöne Ferien. Genießt die freie Zeit und nützt diese auch zum programmieren üben!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{TOC limit|4}}&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Selbstkontrolle ===&lt;br /&gt;
&#039;&#039;&#039;Die Selbstkontrolle, diese solltet ihr bearbeiten und ist eine gute Wiederholung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[DCV_2024_09/Selbstkontrolle_Strukturierte_Programmierung|Selbstkontrolle]]&lt;br /&gt;
&lt;br /&gt;
 Der Punkt Datenströme ist &#039;&#039;&#039;optional&#039;&#039;&#039;, da dieser noch nicht behandelt wurde. Man kann es natürlich trotzdem erledigen!&lt;br /&gt;
&lt;br /&gt;
=== Hackerrank ===&lt;br /&gt;
Probiert es doch mal aus, macht spaß: https://hackerrank.com&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: GameOfLife ===&lt;br /&gt;
[[DCV_2023_03/Strukturierte_Programmierung_Uebungen/Arrays#Aufgabe:_Conways_Game_of_life|Conways Game of life]]&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: TicTacToe KI ===&lt;br /&gt;
Erweitere [[DCV_2023_03/Strukturierte_Programmierung_Uebungen/Arrays#Aufgabe:_TicTacToe|TicTacToe]], dass gegen den Computer gespielt werden kann. Siehe [https://www.geeksforgeeks.org/minimax-algorithm-in-game-theory-set-3-tic-tac-toe-ai-finding-optimal-move/ MiniMax Algorithmus].&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Türme von Hanoi ===&lt;br /&gt;
Finde eine programmatische Lösung für die [https://de.wikipedia.org/wiki/T%C3%BCrme_von_Hanoi Türme von Hanoi].&lt;br /&gt;
&lt;br /&gt;
Als Datenstruktur wird ein 2-Dimensionales Array benötigt:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
int[][] hanoi = new int[3][Anzahl Scheiben]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Jede Scheibe wird durch eine Zahl reprästentiert, die dessen Größe beschreibt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Folgende Methoden werden benötigt&#039;&#039;&#039;:&lt;br /&gt;
* Spielfeld ausgeben&lt;br /&gt;
* Spielfeld initialisieren&lt;br /&gt;
* hanoiMove(int from, int to, int using, int count)&lt;br /&gt;
  * count == 1 // direct move&lt;br /&gt;
  * ansonstens 3 Schritte&lt;br /&gt;
      * hanoiMove(from, using, to, count - 1)&lt;br /&gt;
      * hanoiMove(from, to, using, 1) // Wirkliche Bewegung &lt;br /&gt;
      * hanoiMove(using, to, from, count - 1)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Tip:&#039;&#039;&#039; [https://de.wikipedia.org/wiki/Fibonacci-Folge Fibonacci]&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Blackjack ===&lt;br /&gt;
&lt;br /&gt;
Regeln: http://www.hitorstand.net/strategy.php (Wir machen ohne Split)&lt;br /&gt;
&lt;br /&gt;
{{JML|code=&lt;br /&gt;
int[] deck = new int[52]; (initialisiert von 0, 1, 2 bis 51.)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Methoden:&#039;&#039;&#039;&lt;br /&gt;
* Mischen mit swap&lt;br /&gt;
* getColor() auf Basis value / 13&lt;br /&gt;
* getFigure() auf Basis value % 13&lt;br /&gt;
* getValue()&lt;br /&gt;
* getValueHand() // zB: Summe von 3 Karten&lt;br /&gt;
&lt;br /&gt;
Strategie für die Bank: Zieht bis &amp;lt; 17&lt;br /&gt;
&lt;br /&gt;
Achte auf eine schöne Ausgabe!&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Hashsumme/Prüfsumme ===&lt;br /&gt;
Erstelle ein Programm welches die Prüfsumme einer gegebenen Datei berechnet und ausgibt. Hierbei kann auch gerne &#039;&#039;&#039;resources/txt/simpeText.txt&#039;&#039;&#039; verwendet werden. Nähere Informationen zur Hashsumme finden sich [https://de.wikipedia.org/wiki/Hashfunktion hier].&lt;br /&gt;
Lies die Datei mithilfe eines {{JSL|FileInputStream}}:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
InputStream in = [YourClass].class.getClassLoader().getResourceAsStream(&amp;quot;txt/simpleText.txt&amp;quot;);&lt;br /&gt;
byte[] buffer = new byte[1024];&lt;br /&gt;
int read = 0;&lt;br /&gt;
while((read = in.read(buffer)) &amp;gt; 0) {&lt;br /&gt;
    //Digest aktualisieren           &lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
Erstelle einen {{JSL|MessageDigest}} für &#039;&#039;&#039;MD5&#039;&#039;&#039; und &#039;&#039;&#039;SHA256&#039;&#039;&#039; und befülle diesen mit dem {{JSL|byte[] buffer}}. Instanzen von {{JSL|MessageDigest}} erhältst du mittels {{JSL|MessageDigest.getInstance([algorithm])}}.&lt;br /&gt;
Um die Prüfsumme des {{JSL|MessageDigest}} lerbar zu machen verwende:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
private static String toString(MessageDigest digest) {&lt;br /&gt;
    return new BigInteger(1,digest.digest()).toString(16);&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
#Prüfsummen für resources/txt/simpleText.txt&lt;br /&gt;
md5: a82e2148461ca6b10c48ddb920a40f15&lt;br /&gt;
sha256: 4711958a43201ac481b37ab2f50a1fd366cc14f5996ad7e02bc01b2f9ea0d12&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Online MD5 Hash generator&#039;&#039;&#039;&lt;br /&gt;
 Hier kann die &#039;&#039;&#039;Hashsumme&#039;&#039;&#039; für einen gegebenen Text berechnet werden: [http://www.md5.cz/ MD5 Generator]&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Cäsar-Verschlüsselung ===&lt;br /&gt;
Bei der Cäsar-Verschlüsselung werden die Buchstaben um eine fixe Anzahl Stellen&lt;br /&gt;
verschoben (z.B. 2) a wird zu c, f wird zu h, z wird zu b usw.&lt;br /&gt;
Implementiere eine Methode {{JSL|encrypt(String)}} welche einen {{JSL|String}} zurückgibt und und eine Methode&lt;br /&gt;
{{JSL|decrypt(String)}} welche einen {{JSL|String}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Entschlüsselt&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Dies ist ein Beispieltext der mit einem Klick verschlüsselt werden kann. Hier kann auch&lt;br /&gt;
ein eigenen Text herein geschrieben, oder ein Geheimcode zum Entschlüsseln herein&lt;br /&gt;
kopiert werden.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselt (um 3 verschoben)&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Glhv lvw hlq EhlvslhowhAw ghu plw hlqhp Nolfn yhuvfkoüvvhow zhughq ndqq. Klhu&lt;br /&gt;
ndqq dxfk hlq hljhqhq WhAw khuhlq jhvfkulhehq, rghu hlq Jhkhlpfrgh Cxp&lt;br /&gt;
Hqwvfkoüvvhoq khuhlq nrslhuw zhughq.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbsttest&amp;diff=3667</id>
		<title>DCV 2024 09/Selbsttest</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_09/Selbsttest&amp;diff=3667"/>
		<updated>2024-10-25T06:20:54Z</updated>

		<summary type="html">&lt;p&gt;Sandro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &#039;&#039;&#039;Wir wünschen euch schöne Ferien. Genießt die freie Zeit und nützt diese auch zum programmieren üben!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{TOC limit|4}}&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Selbstkontrolle ===&lt;br /&gt;
&#039;&#039;&#039;Die Selbstkontrolle, diese solltet ihr bearbeiten und ist eine gute Wiederholung&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[DCV_2024_03/Selbstkontrolle_Strukturierte_Programmierung|Selbstkontrolle]]&lt;br /&gt;
&lt;br /&gt;
 Der Punkt Datenströme ist &#039;&#039;&#039;optional&#039;&#039;&#039;, da dieser noch nicht behandelt wurde. Man kann es natürlich trotzdem erledigen!&lt;br /&gt;
&lt;br /&gt;
=== Hackerrank ===&lt;br /&gt;
Probiert es doch mal aus, macht spaß: https://hackerrank.com&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: GameOfLife ===&lt;br /&gt;
[[DCV_2023_03/Strukturierte_Programmierung_Uebungen/Arrays#Aufgabe:_Conways_Game_of_life|Conways Game of life]]&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: TicTacToe KI ===&lt;br /&gt;
Erweitere [[DCV_2023_03/Strukturierte_Programmierung_Uebungen/Arrays#Aufgabe:_TicTacToe|TicTacToe]], dass gegen den Computer gespielt werden kann. Siehe [https://www.geeksforgeeks.org/minimax-algorithm-in-game-theory-set-3-tic-tac-toe-ai-finding-optimal-move/ MiniMax Algorithmus].&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Türme von Hanoi ===&lt;br /&gt;
Finde eine programmatische Lösung für die [https://de.wikipedia.org/wiki/T%C3%BCrme_von_Hanoi Türme von Hanoi].&lt;br /&gt;
&lt;br /&gt;
Als Datenstruktur wird ein 2-Dimensionales Array benötigt:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
int[][] hanoi = new int[3][Anzahl Scheiben]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Jede Scheibe wird durch eine Zahl reprästentiert, die dessen Größe beschreibt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Folgende Methoden werden benötigt&#039;&#039;&#039;:&lt;br /&gt;
* Spielfeld ausgeben&lt;br /&gt;
* Spielfeld initialisieren&lt;br /&gt;
* hanoiMove(int from, int to, int using, int count)&lt;br /&gt;
  * count == 1 // direct move&lt;br /&gt;
  * ansonstens 3 Schritte&lt;br /&gt;
      * hanoiMove(from, using, to, count - 1)&lt;br /&gt;
      * hanoiMove(from, to, using, 1) // Wirkliche Bewegung &lt;br /&gt;
      * hanoiMove(using, to, from, count - 1)&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Tip:&#039;&#039;&#039; [https://de.wikipedia.org/wiki/Fibonacci-Folge Fibonacci]&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Blackjack ===&lt;br /&gt;
&lt;br /&gt;
Regeln: http://www.hitorstand.net/strategy.php (Wir machen ohne Split)&lt;br /&gt;
&lt;br /&gt;
{{JML|code=&lt;br /&gt;
int[] deck = new int[52]; (initialisiert von 0, 1, 2 bis 51.)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Methoden:&#039;&#039;&#039;&lt;br /&gt;
* Mischen mit swap&lt;br /&gt;
* getColor() auf Basis value / 13&lt;br /&gt;
* getFigure() auf Basis value % 13&lt;br /&gt;
* getValue()&lt;br /&gt;
* getValueHand() // zB: Summe von 3 Karten&lt;br /&gt;
&lt;br /&gt;
Strategie für die Bank: Zieht bis &amp;lt; 17&lt;br /&gt;
&lt;br /&gt;
Achte auf eine schöne Ausgabe!&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Hashsumme/Prüfsumme ===&lt;br /&gt;
Erstelle ein Programm welches die Prüfsumme einer gegebenen Datei berechnet und ausgibt. Hierbei kann auch gerne &#039;&#039;&#039;resources/txt/simpeText.txt&#039;&#039;&#039; verwendet werden. Nähere Informationen zur Hashsumme finden sich [https://de.wikipedia.org/wiki/Hashfunktion hier].&lt;br /&gt;
Lies die Datei mithilfe eines {{JSL|FileInputStream}}:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
InputStream in = [YourClass].class.getClassLoader().getResourceAsStream(&amp;quot;txt/simpleText.txt&amp;quot;);&lt;br /&gt;
byte[] buffer = new byte[1024];&lt;br /&gt;
int read = 0;&lt;br /&gt;
while((read = in.read(buffer)) &amp;gt; 0) {&lt;br /&gt;
    //Digest aktualisieren           &lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
Erstelle einen {{JSL|MessageDigest}} für &#039;&#039;&#039;MD5&#039;&#039;&#039; und &#039;&#039;&#039;SHA256&#039;&#039;&#039; und befülle diesen mit dem {{JSL|byte[] buffer}}. Instanzen von {{JSL|MessageDigest}} erhältst du mittels {{JSL|MessageDigest.getInstance([algorithm])}}.&lt;br /&gt;
Um die Prüfsumme des {{JSL|MessageDigest}} lerbar zu machen verwende:&lt;br /&gt;
{{JML|code=&lt;br /&gt;
private static String toString(MessageDigest digest) {&lt;br /&gt;
    return new BigInteger(1,digest.digest()).toString(16);&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
#Prüfsummen für resources/txt/simpleText.txt&lt;br /&gt;
md5: a82e2148461ca6b10c48ddb920a40f15&lt;br /&gt;
sha256: 4711958a43201ac481b37ab2f50a1fd366cc14f5996ad7e02bc01b2f9ea0d12&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Online MD5 Hash generator&#039;&#039;&#039;&lt;br /&gt;
 Hier kann die &#039;&#039;&#039;Hashsumme&#039;&#039;&#039; für einen gegebenen Text berechnet werden: [http://www.md5.cz/ MD5 Generator]&lt;br /&gt;
&lt;br /&gt;
=== Aufgabe: Cäsar-Verschlüsselung ===&lt;br /&gt;
Bei der Cäsar-Verschlüsselung werden die Buchstaben um eine fixe Anzahl Stellen&lt;br /&gt;
verschoben (z.B. 2) a wird zu c, f wird zu h, z wird zu b usw.&lt;br /&gt;
Implementiere eine Methode {{JSL|encrypt(String)}} welche einen {{JSL|String}} zurückgibt und und eine Methode&lt;br /&gt;
{{JSL|decrypt(String)}} welche einen {{JSL|String}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Entschlüsselt&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Dies ist ein Beispieltext der mit einem Klick verschlüsselt werden kann. Hier kann auch&lt;br /&gt;
ein eigenen Text herein geschrieben, oder ein Geheimcode zum Entschlüsseln herein&lt;br /&gt;
kopiert werden.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Verschlüsselt (um 3 verschoben)&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Glhv lvw hlq EhlvslhowhAw ghu plw hlqhp Nolfn yhuvfkoüvvhow zhughq ndqq. Klhu&lt;br /&gt;
ndqq dxfk hlq hljhqhq WhAw khuhlq jhvfkulhehq, rghu hlq Jhkhlpfrgh Cxp&lt;br /&gt;
Hqwvfkoüvvhoq khuhlq nrslhuw zhughq.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
	<entry>
		<id>https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_03/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3666</id>
		<title>DCV 2024 03/Selbstkontrolle Strukturierte Programmierung</title>
		<link rel="alternate" type="text/html" href="https://ccwiki.digitalcampusvorarlberg.at/index.php?title=DCV_2024_03/Selbstkontrolle_Strukturierte_Programmierung&amp;diff=3666"/>
		<updated>2024-10-25T06:18:18Z</updated>

		<summary type="html">&lt;p&gt;Sandro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Zeitlicher Ablauf ==&lt;br /&gt;
Geschätzte Zeit : 3-4 Stunden.  (Das ist nur eine ungefähre Richtlinie, nicht eine zeitliche Vorgabe!)&lt;br /&gt;
&lt;br /&gt;
Lies dir die Aufgaben alle zuerst durch und überlege dir vor dem Coden wie du die Probleme in einzelne Schritte zerlegen&lt;br /&gt;
und dann behandeln kannst.&lt;br /&gt;
Versuche so gut du kannst alle Übungen alleine ohne Hilfe zu lösen und notiere dir die Übungen, bei denen du dir schwer getan hast.&lt;br /&gt;
&lt;br /&gt;
== Viel Spaß und Erfolg ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schleifen ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; &#039;&#039;&#039;rückwärts&#039;&#039;&#039; von &#039;&#039;&#039;10&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 0&#039;&#039;&#039; und gib jede Zahl aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|10 9 8 7 6 5 4 3 2 1 0}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Zähle in einer &#039;&#039;&#039;for-Schleife&#039;&#039;&#039; von &#039;&#039;&#039;-30&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 30&#039;&#039;&#039; und gib jede Zahl aus die &#039;&#039;&#039;ohne Rest&#039;&#039;&#039; durch &#039;&#039;&#039;3&#039;&#039;&#039; teilbar ist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
-30&lt;br /&gt;
-27&lt;br /&gt;
-24&lt;br /&gt;
...&lt;br /&gt;
24&lt;br /&gt;
27&lt;br /&gt;
30&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Zähle mit Hilfe einer &#039;&#039;&#039;while-Schleife&#039;&#039;&#039; und einer separaten Zählvariable von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive 10&#039;&#039;&#039; und gib die Zahlen aus. Wenn die Zahl größer als &#039;&#039;&#039;5&#039;&#039;&#039; ist mach &#039;&#039;&#039;2 Zeilenumbrüche&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Methoden ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben, in einer Zeile wiederholt ausgegeben und mit einem &#039;&#039;&#039;Whitespace&#039;&#039;&#039; getrennt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printLineStipple(&amp;quot;X&amp;quot;, 10);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|X X X X X X X X X X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parmeter erhält. Der angegebene {{JSL|String}} soll so oft wie beim {{JSL|int}} angegeben in einer &#039;&#039;&#039;eigenen&#039;&#039;&#039; Zeile wiederholt werden. Trenne die Zeilen zusätzlich durch ein &#039;&#039;&#039;Linebreak&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printRowStipple(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|String}} und einen {{JSL|int}} Parameter erhält. Nun sollen mit diesen beiden Parametern die beiden &#039;&#039;&#039;Methoden&#039;&#039;&#039; aus den vorhergehenden Aufgaben aufgerufen werden. Die Methoden aus den vorhergehenden Aufgaben sollen &#039;&#039;&#039;nicht&#039;&#039;&#039; neu geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|printStippleL(&amp;quot;X&amp;quot;, 3);}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BML|code=&lt;br /&gt;
X X X&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
X}}&lt;br /&gt;
&lt;br /&gt;
== Input ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Lies einen {{JSL|String}} vom Benutzer ein (ganze Zeile) und einen {{JSL|int}}. Die Zahl besagt wie oft der {{JSL|String}} ausgegeben werden soll. Wird ein leerer {{JSL|String}} oder eine ungültiger {{JSL|int}} eingegeben, so soll die Eingabe erneut erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eingabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Bitte geben Sie einen Text ein:&lt;br /&gt;
&amp;gt;&amp;gt; Heute wird ein guter Tag&lt;br /&gt;
Wie oft soll der Text ausgegeben werden:&lt;br /&gt;
&amp;gt;&amp;gt; 3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
Heute wird ein guter Tag&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Arrays ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; die ein {{JSL|int[]}} als Parameter erhält und das &#039;&#039;&#039;erste&#039;&#039;&#039; und &#039;&#039;&#039;letzte&#039;&#039;&#039; Element zu einem {{JSL|String}} zusammenfügt und zurückgibt. Verwende dazu die Beispielarrays in der Klasse und gib das Ergebnis aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(getFirstAndLast(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|First: 0, last: 10}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 2) ====&lt;br /&gt;
Ertelle jeweils eine &#039;&#039;&#039;Methode&#039;&#039;&#039; für &#039;&#039;&#039;Minimum&#039;&#039;&#039; (min), &#039;&#039;&#039;Maximum&#039;&#039;&#039; (max), und &#039;&#039;&#039;Durchschnitt&#039;&#039;&#039; (avg), welche den jeweiligen Wert für ein übergebenes {{JSL|int[]}} berechnet. Teste alle Methoden in der {{JSL|main}} Methode mit allen gegebenen {{JSL|int[]}} der Klasse.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Minimum: &amp;quot; + getMin(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Minimum: 0}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Aufruf&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{JSL|System.out.println(&amp;quot;Maximum: &amp;quot; + getMax(arr));}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|Maximum: 23}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 3) ====&lt;br /&gt;
Erstelle eine &#039;&#039;&#039;Methode&#039;&#039;&#039; welche einen {{JSL|int}} als Parameter nimmt. Diese &#039;&#039;&#039;Methode&#039;&#039;&#039; soll ein {{JSL|int[]}} erstellen und das {{JSL|int[]}} mit den Zahlen von &#039;&#039;&#039;0&#039;&#039;&#039; bis &#039;&#039;&#039;inklusive der angegebenen Zahl&#039;&#039;&#039; befüllen und dann zurückgeben. Teste diese &#039;&#039;&#039;Methode&#039;&#039;&#039; in der {{JSL|main}} &#039;&#039;&#039;Methode&#039;&#039;&#039; und gib das Array aus (egal wie, z.b.: Schleife, oder {{JSL|Arrays.toString(...)}})&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aufruf&#039;&#039;&#039;&lt;br /&gt;
{{JML|code=&lt;br /&gt;
int[] arr = fillArr(10);&lt;br /&gt;
//Ausgabe arr}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
{{BML|code=&lt;br /&gt;
0 1 2 3 4 5 6 7 8 9 10&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 4) ====&lt;br /&gt;
Sortiere das in der Klasse gegebene {{JSL|int[]}} mit Hilfe von &#039;&#039;&#039;Bubblesort&#039;&#039;&#039; und gib das Array aus. Ob &#039;&#039;&#039;aufsteigend&#039;&#039;&#039; oder &#039;&#039;&#039;absteigend&#039;&#039;&#039; Sortiert bleibt dir überlassen.&lt;br /&gt;
&lt;br /&gt;
== Kalender ==&lt;br /&gt;
&lt;br /&gt;
==== Aufgabe 1) ====&lt;br /&gt;
Gib mit Hilfe der {{JSL|Calendar}} Api den Wochentag des aktuellen Tages inklusive Datum aus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausgabe&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{BSL|DI 26.10.2024}}&lt;br /&gt;
&lt;br /&gt;
== String manipulation ==&lt;/div&gt;</summary>
		<author><name>Sandro</name></author>
	</entry>
</feed>