haskell作业任务代做代编程代写haskell作业编程

rrrrrrrrr rrrrrrrrr     2022-11-07     279

关键词:

Haskell作业任务代做代编程、代写Haskell作业编程
Verwenden Sie im Wesentlichen elem, head, tail, map, reverse, last, filter, concat, sum
und (++), um die folgenden Funktionen zur Listenverarbeitung in Haskell zu programmieren –
die Verwendung von Pattern-Matching ist verboten:
a) Eine Funktion, die einen String1
erh¨alt und zun¨achst folgende Ersetzungen durchfuhren ¨
soll:
– Entspricht ein Zeichen einer Ziffer, so soll es auf die entsprechende Zahl abgebildet
werden.
– Entspricht ein Zeichen dem Buchstaben a, so soll dieses Zeichen auf die Zahl 1 abgebildet
werden.
– Alle anderen Zeichen sollen auf die Zahl 0 abgebildet werden.
Danach soll die Summe dieser Zahlen berechnet werden. Zum Beispiel soll fur ¨ "138aza"
der Wert 14 berechnet werden. (7 Punkte)
b) Einige Leute geben heutzutage einer Aussage nochmal eine besonders freundliche Betonung,
indem sie alles gro? schreiben. Ebenso tippen einige Personen gefuhlt 20.000 Zeichen ¨
pro Sekunde mit dem Smartphone, haben aber absolut keine Zeit, die Gro?- und Kleinschreibung
zu beachten. Geben Sie eine Funktion an, die eine Liste von Strings erh¨alt und
alle Kleinbuchstaben eines Strings, der mit einem Ausrufezeichen endet, in Gro?buchstaben
umwandelt. Falls ein String jedoch nicht mit einem Ausrufezeichen endet, sollen alle
Gro?buchstaben in Kleinbuchstaben umgewandelt werden. Zum Beispiel soll fur ¨
["Du bist so intelligent wie eine Bananeschale und halb so gutaussehend!",
"Ich schreibe jedes Wort klein Nebensaetze und Punkte kenne ich nicht"]
das folgende Ergebnis berechnet werden:
["DU BIST SO INTELLIGENT WIE EINE BANANESCHALE UND HALB SO GUTAUSSEHEND!",
"ich schreibe jedes wort klein nebensaetze und punkte kenne ich nicht"]
(7 Punkte)
c) Eine Funktion, die eine Liste von Listen von Zahlen erh¨alt und zun¨achst alle innersten
Listen entfernt, die weniger als 4 Elemente enthalten. Die ubriggebliebenen inneren Listen ¨
sollen umgedreht werden und au?erdem sollen bei jeder inneren Liste alle Elemente au?er
den ersten Dreien entfernt werden. Danach sollen alle inneren Listen zu einer gro?en verschmolzen
werden. Zum Beispiel soll fur ¨ [[1,2],[1..4],[6..8],[8..12]] das Ergebnis
[4,3,2,12,11,10] berechnet werden. (11 Punkte)
1Strings sind in Haskell nichts anderes als Listen von Zeichen, d.h. "Haskell" ist nur eine andere Darstellung
fur die Liste ¨ [’H’,’a’,’s’,’k’,’e’,’l’,’l’].
1
Hinweis: Die Bibliothek Data.Char beinhaltet nutzliche Funktionen, die Sie in Ihrer L ¨ ¨osung
verwenden durfen. Sie k ¨ ¨onnen die Bibliothek durch import Data.Char am Anfang des Quelltextes
in Ihr Programm einbinden. Die Dokumentation von Bibliotheken finden Sie im Internet
unter http://www.haskell.org/ghc/docs/latest/html/libraries/.
Aufgabe 2 (30 Punkte)
Implementieren Sie in Haskell die folgenden Funktionen auf Listen im Wesentlichen unter Verwendung
von Pattern-Matching und Rekursion – d.h. Sie durfen Hilfsfunktionen definieren und ¨
nutzen, allerdings ist die Verwendung von Listenfunktionen wie z.B. map, concat, replicate
usw. verboten.
a) Eine Funktion, die eine Liste erwartet und je zwei benachbarte Elemente vertauscht.
Enth¨alt die Liste eine ungerade Anzahl an Elementen, so bleibt die Position des
letzten Elements unver¨andert. Zum Beispiel soll fur die Liste ¨ [1..9] das Ergebnis
[2,1,4,3,6,5,8,7,9] berechnet werden. (7 Punkte)
b) Eine Funktion, die eine Liste von Listen von Listen von Zahlen erwartet und die Summe
der jeweils ersten Elemente der innersten Listen berechnet. Zum Beispiel soll 44 fur die ¨
Liste [[[1,2],[4,5],[7,8,9]],[[13,15],[19]]] berechnet werden. (10 Punkte)
c) Eine Funktion, die eine Liste erwartet und eine Liste zuruckgibt, die das ¨ k-te Element
der Eingabeliste k-mal enth¨alt. Dabei soll die Reihenfolge unver¨andert bleiben und der
Listenindex erstreckt sich von 1 bis zur L¨ange der Liste. Zum Beispiel soll fur die Liste ¨
[’a’,’b’,’c’] das Ergebnis "abbccc" berechnet werden. (13 Punkte)
Aufgabe 3 (45 Punkte)
Diese Aufgabe besch¨aftigt sich mit Darts.
Das Dart-Board ist in 20 Zahlensegmente unterteilt. Die Felder z¨ahlen jeweils soviel, wie au?en
am entsprechenden Segment notiert ist. Ausnahmen sind die schmalen Kreise. Im ¨au?eren Kreis
z¨ahlen die Felder das Doppelte (Double-Felder), im mittleren Kreis das Dreifache (Triple-Felder)
der entsprechenden Zahl. Der Mittelpunkt des Boards, das Bullseye, z¨ahlt 50 Punkte (Double 25),
der Ring darum herum (Bull) 25 Punkte. Gespielt wird die Variante 501 mit Double-Out:
Jeder Spieler beginnt bei 501 Punkten. Eine Aufnahme besteht
aus (maximal) drei nacheinander geworfenen Darts.
Die erzielten Punkte werden jedesmal von der verbleibenden
Punktzahl abgezogen, wobei nach jeder Aufnahme der
jeweilige Gegenspieler dran ist. Es durfen nur diejenigen ¨
Darts gez¨ahlt werden, die im Board steckenbleiben. Gewonnen
hat derjenige Spieler, der zuerst genau 0 Punkte
erreicht hat, wobei der letzte Dart ein Doppel-Feld oder
das Bullseye treffen muss. Erzielt der Spieler zu viele Punkte
oder so viele, dass er nicht mehr mit einem Doppel abschlie?en
kann (der Spieler uberwirft sich), so werden alle ¨
Darts dieser Aufnahme nicht gez¨ahlt – der Spieler bleibt
auf dem selben Rest wie vor der Aufnahme. In der letzte
Aufnahme, in der die Punktzahl genau auf 0 reduziert
wird, k¨onnen auch weniger als 3 Darts geworfen werden.
Falls man sich uberwirft kann eine Aufnahme ebenso aus ¨
weniger als 3 Darts bestehen.
20 5 1
12 18
9 4
14 13
11 6
8 10
16 15
7 2
19 17 3
doppelt
dreifach
Bullseye
Bull
einfach
Ein einzelnes Spiel dieser Art nennt man Leg. Wer zuerst eine festgelegte Anzahl an Legs gewonnen
hat, gewinnt das gesamte Spiel. Dabei beginnen die Spieler die Legs jeweils abwechselnd.
2
Ein Leg im obigen Modus sei in Haskell wie folgt dargestellt:
? Ein Liste mit genau zwei Elementen [m, p] stellt die Punktzahl eines einzelnen geworfenen
Darts dar, wobei fur ¨ m eine 1, 2 oder 3 entsprechend Single, Double oder Triple darstellt
und p die Punktzahl des Zahlensegments ist. Das hei?t die Triple 20 entspricht der Darstellung
[3, 20], Double 20 [2, 20] und Single 20 [1, 20]. Da das Bullseye als Doppelfeld gez¨ahlt
wird, wird es als [2, 25] dargestellt. Au?erdem entspricht [0, 0] einem Fehlwurf.
? Eine Aufnahme ist eine Liste solcher zweielementigen Listen, z.B. entspricht
[[3, 20], [3, 19], [2, 25]] einem Treffer in die Triple 20, gefolgt von einem Treffer in die Triple
19, gefolgt von einem Treffer in das Bullseye. Falls ein Spieler seine Aufnahme schon
mit weniger als 3 Darts beendet hat, sich also uberworfen oder das Leg gewonnen hat, so ¨
enth¨alt die Liste entsprechend weniger Elemente.
? Ein Leg wird durch eine Liste von Aufnahmen (also einer Liste von Listen mit zweielementigen
Listen) dargestellt, in der jede Aufnahme mit ungerader Listenposition dem Spieler
zugeordnet ist, der das Leg begonnen hat und alle geraden dem Gegenspieler.
Hier einige Beispiel-Legs:
leg1 = [[[3,20],[3,20],[3,20]], [[3,20],[3,19],[2,25]], [[3,19],[3,19],[3,19]],
[[3,20],[3,19],[2,25]], [[2,25],[2,25],[2,25]]]
leg2 = [[[3,20],[3,20],[3,20]], [[3,20],[3,19],[2,25]], [[3,19],[3,19],[3,19]],
[[3,20],[3,19],[2,25]], [[2,25],[2,25],[1,25]], [[3,20],[3,19],[2,25]]]
leg3 = [[[3,20],[1,20],[1,20]], [[3,20],[1,20],[1,20]], [[3,20],[3,20],[3,20]],
[[3,20],[3,20],[3,20]], [[3,20],[1,1] ,[2,20]], [[3,20],[1,1] ,[2,20]],
[[3,20],[1,20],[2,20]]]
leg4 = [[[3,20],[1,20],[1,20]], [[3,20],[1,20],[1,20]], [[3,20],[3,20],[3,20]],
[[3,20],[3,20],[3,20]], [[3,20],[1,1] ,[2,20]], [[3,20],[1,1] ,[2,20]],
[[3,20],[1,20],[1,20]], [[3,20],[1,20],[2,20]]]
a) Implementieren Sie in Haskell eine Funktion legSieger, die ein Leg in der obigen Darstellung
als Eingabe erwartet und 1 zuruckliefert, falls der Spieler gewinnt, der das Leg be- ¨
gonnen hat, falls der andere Spieler gewinnt soll 2 zuruckgegeben werden. Ber ¨ ucksichtigen ¨
Sie dazu die oben dargestellten Regeln.
Die Funktion soll fur fehlerhafte Legs ¨ 0 zuruckgeben. Zum Beispiel falls kein Spieler genau ¨
0 Punkte erreicht hat, die angegebenen Felder gar nicht existieren (zum Beispiel TripleBull
oder Single-21) oder falls ein Spieler bereits gewonnen hat und der Gegner danach
trotzdem noch wirft.
Fur die Beispiel-Legs soll also ¨ legSieger leg1 als Ergebnis 1 liefern und legSieger leg2
soll 2 berechnen.
Tipp: Verwenden Sie Hilfsfunktionen um die Regeln systematisch abzudecken. Wie kann
das Abwechseln der Spieler einfach implementiert werden? (35 Punkte)
b) Die letzten maximal 3 Wurfe eines Legs, die der Gewinner des Legs zum gewinnen ben ¨ ¨otigt,
nennt man Finish. Implementieren Sie in Haskell eine Funktion highOut, welche eine Liste
von Legs in der obigen Darstellung entgegennimmt und fur den Spieler, welcher das ¨
erste Leg beginnt, uber alle Legs sein h ¨ ¨ochstes Finish ausrechnet. Beachten Sie dass diese
Information w¨ahrend des Spiels berechnet werden k¨onnen soll, gegebenenfalls ist also das
letzte Leg in der Eingabeliste noch nicht zu Ende gespielt. Falls der Spieler (noch) kein
Leg gewonnen hat, soll 0 zuruckgegeben werden. ¨
Zum Beispiel soll highOut [leg3,leg2,leg3,leg4,leg3] das Ergebnis 167 zuruckgeben, ¨
w¨ahrend 0 fur ¨ highOut [leg4,leg3] zuruckgegeben werden soll. (10 Punkte) ¨
http://www.6daixie.com/contents/18/1344.html

 

我们的方向领域:window编程 数值算法 AI人工智能 金融统计 计量分析 大数据 网络编程 WEB编程 通讯编程 游戏编程多媒体linux 外挂编程 程序API图像处理 嵌入式/单片机 数据库编程 控制台 进程与线程 网络安全  汇编语言 硬件编程 软件设计 工程标准规等。其中代写代做编程语言或工具包括但不限于以下范围:

C/C++/C#代写

Java代写

IT代写

Python代写

辅导编程作业

Matlab代写

Haskell代写

Processing代写

Linux环境搭建

Rust代写

Data Structure Assginment 数据结构代写

MIPS代写

Machine Learning 作业 代写

Oracle/SQL/PostgreSQL/Pig 数据库代写/代做/辅导

Web开发、网站开发、网站作业

ASP.NET网站开发

Finance Insurace Statistics统计、回归、迭代

Prolog代写

Computer Computational method代做

 

因为专业,所以值得信赖。如有需要,请加QQ:99515681 或邮箱:[email protected]

微信:codinghelp

r编程作业代写|代写r编程分类作业|代写r作业|代做r语言作业

第一部分:关于表内的A、B方案的介绍:在研究第0-24周期间,课题方案为动态方案。入组时若HBeAg>60S/CO,给予A药物,即调肝益脾颗粒+恩替卡韦安慰剂(方案A),之后每4周进行一次检查,决定之后的治疗方案(见第二部分)&n... 查看详情

网络爬虫作业代码代写代实现代做爬虫程序

网络爬虫作业代码代写代实现、代做爬虫程序任务二、网络爬虫实现一、任务描述编写大学排名爬虫程序,从“最好大学网”获取“软科中国最好大学排名”2016、2017、2018年的国内大学排名数据,并将它们输出出来。2016年中国... 查看详情

留学生r经管统计作业代写代做stat/me代写

留学生R经管统计作业代写代做、Stat/ME代写RequirementsforStat/ME424ClassProject?Thisisanindividualproject.Youcannotjoinforceswithanyoneelseintheclass,but(ifyouwish)youcancollaboratewithsomeoneinyourlaborresearchteam.?T 查看详情

代写statisticalr程序代做留学生r统计作业

代写statisticalR程序、代做留学生R统计作业1.Thisisatake-homefinalexam.2.AnswerstoQuestions1,2,3,4shouldbewrittenusingaLatexeditor.Question5canbeansweredusingyourpreferredprogram.AllanswersshouldbemergedinasinglePDFa 查看详情

代写statisticalr程序代做留学生r统计作业

代写statisticalR程序、代做留学生R统计作业1.Thisisatake-homefinalexam.2.AnswerstoQuestions1,2,3,4shouldbewrittenusingaLatexeditor.Question5canbeansweredusingyourpreferredprogram.AllanswersshouldbemergedinasinglePDFa 查看详情

代做c单片机程序代写c单片机程序单片机c程序作业代写代做

描述:是要做一个和单片机交互的程序,程序能够将inputparameter发送到单片机上,然后从单片机收到处理后的数据也就是数据data,然后进行画图。目前不考虑单片机的传输工作,纯粹从程序的角度出发,也就是假定给定的数据dat... 查看详情

视图系统

CSCI2500作业代写、代写C/C++编程作业、代做MatrixMultiplicationinMIPS作业CSCI2500—ComputerOrganizationHomework3(documentversion1.0)MatrixMultiplicationinMIPSOverviewThishomeworkisdueby11:59:59PMonThursday,October18,201 查看详情

csci1100程序讲解

CSCI1100作业代做、CS1Multiverse作业代写、Python实验作业代做、Python编程语言作业代写CSCI1100—ComputerScience1Homework8CS1Multiverse:ClassesOverviewThishomeworkisworth100pointstowardyouroverallhomeworkgrade,andisdueThursday,Apr 查看详情

为啥我的haskell程序这么慢? Haskell 编程,人生游戏

】为啥我的haskell程序这么慢?Haskell编程,人生游戏【英文标题】:Whyismyhaskellprogramsoslow?ProgramminginHaskell,gameoflife为什么我的haskell程序这么慢?Haskell编程,人生游戏【发布时间】:2019-04-2908:48:57【问题描述】:我正在阅读“Haskel... 查看详情

一天一门编程语言haskell语言程序设计极简教程(代码片段)

Haskell语言程序设计极简教程一、什么是HaskellHaskell是一种纯函数式编程语言,它把程序设计抽象化到一个更高的层次,简化程序开发工作量,能够更快更容易地完成任务。它是一种函数式编程语言,它采用函数式... 查看详情

哪里有基于ssm的毕业进存销管理系统代做

...序加论文,java毕业设计全套,代做java开题报告,java毕业设计任务书客服:加扣扣(幺零三贰三七幺贰幺)一,代做介绍我们是计算机专业毕业设计定制平台。我们长期为毕业季的同学定做专属题目的毕业设计论文。之所以是私人订制... 查看详情

哪种 KeyBoard / KeyBoard Layout 最适合 Haskell 编程? haskell 是不是将所有数学符号作为函数?

】哪种KeyBoard/KeyBoardLayout最适合Haskell编程?haskell是不是将所有数学符号作为函数?【英文标题】:WhichKeyBoard/KeyBoardLayoutwillbemostsuitableforhaskellprogramming?DoeshaskellhasallMathSymbolsasfunctions?哪种KeyBoard/KeyBoardLayout最适合Haskell编程?haskel 查看详情

将“为啥函数式编程很重要”翻译成 Haskell

】将“为啥函数式编程很重要”翻译成Haskell【英文标题】:Translating"WhyFunctionalProgrammingMatters"intoHaskell将“为什么函数式编程很重要”翻译成Haskell【发布时间】:2009-06-1608:15:45【问题描述】:为了丰富文化和知识,我决... 查看详情

初识haskell

在COMP30026ModelsofComputation中接触了新的编程语言Haskell,一个之前听都没有听过的语言,在此记录关于Haskell的一些最基本概念。1.Haskell是一个函数式编程语言(functionalprogramminglanguage),函数式编程语言最基本的操作是functionapplication... 查看详情

代做远程系统系统代写远程终端管理系统

...系统需求分析说明书一. 引言 11.编写目的 12.定义 1二. 任务概述 21.目标 22.用户的特点 23.系统功能示例 2三. 需求细则 21. 对功能的规定 22. 对性能的规定 53. 对排版的规定 54. 对可维护性的规定 55. 对个性的规定 66. 对项目过... 查看详情

spss统计作业代写统计学spss代写spss编程代写代写spss作业

spss统计作业代写、统计学spss代写、spss编程代写、代写spss作业DataandModelsProjectDirections:Forthefollowingfunctions,determinethelineofbestfit.Useyourcalculatorandlookatthescatterplottohelpyouguesswhattypeoffunctionwouldbet 查看详情

用随机颜色填充封闭区域 - Haskell - 星期五

】用随机颜色填充封闭区域-Haskell-星期五【英文标题】:Fillingtheenclosedareaswithrandomcolors-Haskell-Friday【发布时间】:2016-05-1615:40:24【问题描述】:我正在尝试执行不太复杂的图像分析,以尝试找到不同的形状并计算它们的一些参数... 查看详情

frege-基于jvm的类haskell纯函数式编程语言

Frege是一门受Haskell语言启示而设计的纯函数式编程语言。Frege程序会被编译为Java,并执行于JVM上。它与Haskell是如此的类似。以至于有人称它为JVM上的Haskell。取Frege这个名字是为了纪念德国数学家、逻辑学家、哲学家GottlobFrege。... 查看详情