From 6e40a7dc95a9954bb34accf50e447aa76e59e125 Mon Sep 17 00:00:00 2001 From: "quentin.leblanc@etu.hesge.ch" <quentin.leblanc@etu.hesge.ch> Date: Thu, 16 Jan 2020 14:38:38 +0100 Subject: [PATCH] wip --- 1.2.syntax.pdf | Bin 172784 -> 173983 bytes 1.3.oo.pdf | Bin 272363 -> 282442 bytes base_tp/.gitignore | 3 + base_tp/.idea/.gitignore | 2 + base_tp/.idea/codeStyles/codeStyleConfig.xml | 5 ++ base_tp/.idea/misc.xml | 7 ++ base_tp/.idea/modules.xml | 9 +++ base_tp/.idea/modules/base_tp_6009-build.iml | 25 +++++++ base_tp/.idea/modules/base_tp_6009.iml | 13 ++++ base_tp/.idea/sbt.xml | 20 +++++ base_tp/.idea/scala_compiler.xml | 6 ++ base_tp/.idea/vcs.xml | 6 ++ base_tp/build.sbt | 73 +++++++++++++++++++ base_tp/project/build.properties | 1 + base_tp/src/intro/Euclid.scala | 19 +++++ 15 files changed, 189 insertions(+) create mode 100644 base_tp/.gitignore create mode 100644 base_tp/.idea/.gitignore create mode 100644 base_tp/.idea/codeStyles/codeStyleConfig.xml create mode 100644 base_tp/.idea/misc.xml create mode 100644 base_tp/.idea/modules.xml create mode 100644 base_tp/.idea/modules/base_tp_6009-build.iml create mode 100644 base_tp/.idea/modules/base_tp_6009.iml create mode 100644 base_tp/.idea/sbt.xml create mode 100644 base_tp/.idea/scala_compiler.xml create mode 100644 base_tp/.idea/vcs.xml create mode 100644 base_tp/build.sbt create mode 100644 base_tp/project/build.properties create mode 100644 base_tp/src/intro/Euclid.scala diff --git a/1.2.syntax.pdf b/1.2.syntax.pdf index 665a626f39204a29ad282055a75d58cc86d74993..a8010c05cb9e9755b93ff845fb7e11b8a39153ed 100644 GIT binary patch delta 1222 zcmaKszi-n(6vwX}Ek*nX=q(kAisJj>bDXLwf)=Dotq4gFNTGw9TuKnNgY8sp2i&1- zEQpB(q>3LqLi`5|42Yct7#I*sB^ZJ7?tE#}g+%t{?%ntE-o5uOhwq$cADzAZsW;Py z2e}7aN{H9*l$`l_x4kn|;9iWPI0Lt-x*2p>y;k)E^EqR}1IB}@^t?a@+^eCMvq_`m zlg2f0Tch>NAlqsiiK|dvn&XsH%4i*Nl;(1lvU8MHz+FUNz<>hk8u4&61ZiSxg4>4j z-y?F3jEEu;$;bfTKvr<JPVSNrXI%s|Knj6+6fDM3rlKr0y6b2kpbE$wKC#h8s0Gp| zd1y@ujv5Z6i(5AFt2e}CNWPN<U1+C;v}YWqXw|MYM6Y*`cbvBj9jI0g@U09_uK@Xi z&lYM1q*sA_VF5~xih8C3#ex4*3@NIf^y?yEo+rSg)w(Yw)+F$K%+)C)tDmw?7Nf|n zsYX6g4pA50aWxuYf(eA8Jussu$vqvh$@uAr8{q~v(QyeRwv8!DQ>F1J>8cd##EYfX zT=fRwrFa`U6jy}LtAW5Q)OeL~Uw1+~38NISHCxz_fWF;vWS(CzOt+@ck+g0WB-5xS zNT!=fkA*YIisq24h(|IBG&dUxl4Lb22<&Kq+yc1;atq`Z$Ssf~Q1dYIVzfMNdED}Z z<p~D4-Z)P3xZl_GIZwKRQR8r&<knzU0j>#fmzSVZ{&jZe$*X(&uRq_vRsM8l@518> zlz+bc@#kywd-2iJ2j4oa5AQ2FmCYD$HKVME!fhmK3vyPY0?+L(NBvk+i_q*J!Of=X zYg12|0x=z_xny`zbx=%WZ|Hlg4fuOSMH|^|z!KsK(kxNoX2~J=nL0X}BGU(lL=Vq* r&G2HDkN~GI9};3tI~JTAJ<Y--+fG!!<gl8k(V*na%v`>DrR4krhr}tV delta 13 VcmbP#p6kO=u7(!IEleL40RS%42893s diff --git a/1.3.oo.pdf b/1.3.oo.pdf index abf78c944fd12c1f8c3220a48a2148bf77dd2949..ddc07ec748b97a5ebbfb1504dd85fe921d76c27e 100644 GIT binary patch delta 10176 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 QquuS*Ra0w?T~tl~2WiveBLDyZ delta 17 YcmX>#Pw@45frb{w7N!>FEiA9q0Y_E`AOHXW diff --git a/base_tp/.gitignore b/base_tp/.gitignore new file mode 100644 index 0000000..382c6d7 --- /dev/null +++ b/base_tp/.gitignore @@ -0,0 +1,3 @@ +*~ + +target/ diff --git a/base_tp/.idea/.gitignore b/base_tp/.idea/.gitignore new file mode 100644 index 0000000..5c98b42 --- /dev/null +++ b/base_tp/.idea/.gitignore @@ -0,0 +1,2 @@ +# Default ignored files +/workspace.xml \ No newline at end of file diff --git a/base_tp/.idea/codeStyles/codeStyleConfig.xml b/base_tp/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..a55e7a1 --- /dev/null +++ b/base_tp/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ +<component name="ProjectCodeStyleConfiguration"> + <state> + <option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" /> + </state> +</component> \ No newline at end of file diff --git a/base_tp/.idea/misc.xml b/base_tp/.idea/misc.xml new file mode 100644 index 0000000..99bf4f5 --- /dev/null +++ b/base_tp/.idea/misc.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="JavaScriptSettings"> + <option name="languageLevel" value="ES6" /> + </component> + <component name="ProjectRootManager" version="2" languageLevel="JDK_13" default="false" project-jdk-name="13 (2)" project-jdk-type="JavaSDK" /> +</project> \ No newline at end of file diff --git a/base_tp/.idea/modules.xml b/base_tp/.idea/modules.xml new file mode 100644 index 0000000..1bab2e0 --- /dev/null +++ b/base_tp/.idea/modules.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/.idea/modules/base_tp_6009.iml" filepath="$PROJECT_DIR$/.idea/modules/base_tp_6009.iml" /> + <module fileurl="file://$PROJECT_DIR$/.idea/modules/base_tp_6009-build.iml" filepath="$PROJECT_DIR$/.idea/modules/base_tp_6009-build.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/base_tp/.idea/modules/base_tp_6009-build.iml b/base_tp/.idea/modules/base_tp_6009-build.iml new file mode 100644 index 0000000..e96fcff --- /dev/null +++ b/base_tp/.idea/modules/base_tp_6009-build.iml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module external.linked.project.id="base_tp_6009-build" external.linked.project.path="$MODULE_DIR$/../../project" external.root.project.path="$MODULE_DIR$/../.." external.system.id="SBT" sbt.imports="" sbt.resolvers="$USER_HOME$/.ivy2/cache|ivy|Local cache" type="SBT_MODULE" version="4"> + <component name="NewModuleRootManager"> + <output url="file://$MODULE_DIR$/../../project/target/idea-classes" /> + <output-test url="file://$MODULE_DIR$/../../project/target/idea-test-classes" /> + <exclude-output /> + <content url="file://$MODULE_DIR$/../../project"> + <sourceFolder url="file://$MODULE_DIR$/../../project" isTestSource="false" /> + <excludeFolder url="file://$MODULE_DIR$/../../project/project/target" /> + <excludeFolder url="file://$MODULE_DIR$/../../project/target" /> + </content> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + <orderEntry type="module-library"> + <library name="sbt: sbt-and-plugins"> + <CLASSES /> + <JAVADOC /> + <SOURCES /> + </library> + </orderEntry> + </component> + <component name="SbtModule"> + <option name="buildForURI" value="file:$MODULE_DIR$/../../" /> + </component> +</module> \ No newline at end of file diff --git a/base_tp/.idea/modules/base_tp_6009.iml b/base_tp/.idea/modules/base_tp_6009.iml new file mode 100644 index 0000000..7dcd8bf --- /dev/null +++ b/base_tp/.idea/modules/base_tp_6009.iml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module external.linked.project.id="base_tp_6009 [file:/media/quentin/Storage/Work/HEPIA/3rd_Year/BA-6/ParaProgAv/scala2020/base_tp/]" external.linked.project.path="$MODULE_DIR$/../.." external.root.project.path="$MODULE_DIR$/../.." external.system.id="SBT" type="JAVA_MODULE" version="4"> + <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_13"> + <output url="file://$MODULE_DIR$/../../target/dummy" /> + <exclude-output /> + <content url="file://$MODULE_DIR$/../.."> + <excludeFolder url="file://$MODULE_DIR$/../../target" /> + </content> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + <orderEntry type="library" name="scala-sdk-2.12.6" level="application" /> + </component> +</module> \ No newline at end of file diff --git a/base_tp/.idea/sbt.xml b/base_tp/.idea/sbt.xml new file mode 100644 index 0000000..fca5810 --- /dev/null +++ b/base_tp/.idea/sbt.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ScalaSbtSettings"> + <option name="customVMPath" /> + <option name="linkedExternalProjectsSettings"> + <SbtProjectSettings> + <option name="externalProjectPath" value="$PROJECT_DIR$" /> + <option name="modules"> + <set> + <option value="$PROJECT_DIR$" /> + <option value="$PROJECT_DIR$/project" /> + </set> + </option> + <option name="sbtVersion" value="1.2.1" /> + <option name="useAutoImport" value="true" /> + <option name="useQualifiedModuleNames" value="true" /> + </SbtProjectSettings> + </option> + </component> +</project> \ No newline at end of file diff --git a/base_tp/.idea/scala_compiler.xml b/base_tp/.idea/scala_compiler.xml new file mode 100644 index 0000000..ffb6cd7 --- /dev/null +++ b/base_tp/.idea/scala_compiler.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ScalaCompilerConfiguration"> + <profile name="sbt 1" modules="base_tp_6009" /> + </component> +</project> \ No newline at end of file diff --git a/base_tp/.idea/vcs.xml b/base_tp/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/base_tp/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$/.." vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/base_tp/build.sbt b/base_tp/build.sbt new file mode 100644 index 0000000..50c9da0 --- /dev/null +++ b/base_tp/build.sbt @@ -0,0 +1,73 @@ +organization := "ch.hepia" + +name := "tpscala" + +version := "2019" + +scalaVersion := "2.12.6" + +libraryDependencies ++= Seq( + "org.scalatest" %% "scalatest" % "3.0.5" % "test" +) + +fork in run := true + +javaOptions in run += "-Xmx2G" + + +scalacOptions ++= Seq( + "-deprecation", // Emit warning and location for usages of deprecated APIs. + "-encoding", "utf-8", // Specify character encoding used by source files. + "-explaintypes", // Explain type errors in more detail. + "-feature", // Emit warning and location for usages of features that should be imported explicitly. + "-language:existentials", // Existential types (besides wildcard types) can be written and inferred + "-language:higherKinds", // Allow higher-kinded types + "-unchecked", // Enable additional warnings where generated code depends on assumptions. + "-Xcheckinit", // Wrap field accessors to throw an exception on uninitialized access. + "-Xfatal-warnings", // Fail the compilation if there are any warnings. + "-Xlint:adapted-args", // Warn if an argument list is modified to match the receiver. + "-Xlint:by-name-right-associative", // By-name parameter of right associative operator. + "-Xlint:constant", // Evaluation of a constant arithmetic expression results in an error. + "-Xlint:delayedinit-select", // Selecting member of DelayedInit. + "-Xlint:doc-detached", // A Scaladoc comment appears to be detached from its element. + "-Xlint:inaccessible", // Warn about inaccessible types in method signatures. + "-Xlint:infer-any", // Warn when a type argument is inferred to be `Any`. + "-Xlint:missing-interpolator", // A string literal appears to be missing an interpolator id. + "-Xlint:nullary-override", // Warn when non-nullary `def f()' overrides nullary `def f'. + "-Xlint:nullary-unit", // Warn when nullary methods return Unit. + "-Xlint:option-implicit", // Option.apply used implicit view. + "-Xlint:package-object-classes", // Class or object defined in package object. + "-Xlint:poly-implicit-overload", // Parameterized overloaded implicit methods are not visible as view bounds. + "-Xlint:private-shadow", // A private field (or class parameter) shadows a superclass field. + "-Xlint:stars-align", // Pattern sequence wildcard must align with sequence component. + "-Xlint:type-parameter-shadow", // A local type parameter shadows a type already in scope. + "-Xlint:unsound-match", // Pattern match may not be typesafe. + "-Yno-adapted-args", // Do not adapt an argument list (either by inserting () or creating a tuple) to match the receiver. + "-Ypartial-unification", // Enable partial unification in type constructor inference + "-Ywarn-dead-code", // Warn when dead code is identified. + "-Ywarn-extra-implicit", // Warn when more than one implicit parameter section is defined. + "-Ywarn-inaccessible", // Warn about inaccessible types in method signatures. + "-Ywarn-infer-any", // Warn when a type argument is inferred to be `Any`. + "-Ywarn-nullary-override", // Warn when non-nullary `def f()' overrides nullary `def f'. + "-Ywarn-nullary-unit", // Warn when nullary methods return Unit. + "-Ywarn-numeric-widen", // Warn when numerics are widened. + "-Ywarn-unused:implicits", // Warn if an implicit parameter is unused. + "-Ywarn-unused:imports", // Warn if an import selector is not referenced. + "-Ywarn-unused:locals", // Warn if a local definition is unused. + "-Ywarn-unused:params", // Warn if a value parameter is unused. + "-Ywarn-unused:patvars", // Warn if a variable bound in a pattern is unused. + "-Ywarn-unused:privates", // Warn if a private member is unused. + "-Ywarn-value-discard" // Warn when non-Unit expression results are unused. +) + +scalacOptions in (Compile, console) --= Seq("-Ywarn-unused:imports", "-Xfatal-warnings") + + + +scalaSource in Compile := baseDirectory.value / "src" + +javaSource in Compile := baseDirectory.value / "java" / "src" + +scalaSource in Test := baseDirectory.value / "test" + + diff --git a/base_tp/project/build.properties b/base_tp/project/build.properties new file mode 100644 index 0000000..cc041cd --- /dev/null +++ b/base_tp/project/build.properties @@ -0,0 +1 @@ +sbt.version=1.2.1 \ No newline at end of file diff --git a/base_tp/src/intro/Euclid.scala b/base_tp/src/intro/Euclid.scala new file mode 100644 index 0000000..a003b38 --- /dev/null +++ b/base_tp/src/intro/Euclid.scala @@ -0,0 +1,19 @@ +package ch.unige.hepia.tp + +object Euclid extends App { + + // Implémenter correctement cette fonction + def gcd( i: Int, j: Int ): Int = { + if(j > i) return gcd(j, i) + if(j == 0) return i + else return gcd(j, i%j) + } + + + + println( gcd( 100, 30 ) ) //=> 10 + println( gcd( 30, 100 ) ) //=> 10 + println( gcd( 12, 3732 ) ) //=> 12 + println( gcd( 1, 3732 ) ) //=> 1 + println( gcd( 25, 3732 ) ) //)> 1 +} -- GitLab