From 4519869955c7889ff4b91132ae06e6d92b70d307 Mon Sep 17 00:00:00 2001 From: Alexandre Favre <alexandre.favre@etu.hesge.ch> Date: Thu, 9 Jan 2020 14:33:17 +0100 Subject: [PATCH] End begging tp --- base_tp/.gitignore | 3 ++ base_tp/build.sbt | 73 ++++++++++++++++++++++++++++++++ base_tp/project/build.properties | 1 + base_tp/src/intro/Euclid.scala | 21 +++++++++ ex1.scala | 14 ++++++ 5 files changed, 112 insertions(+) create mode 100644 base_tp/.gitignore create mode 100644 base_tp/build.sbt create mode 100644 base_tp/project/build.properties create mode 100644 base_tp/src/intro/Euclid.scala create mode 100755 ex1.scala 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/build.sbt b/base_tp/build.sbt new file mode 100644 index 0000000..60e99e2 --- /dev/null +++ b/base_tp/build.sbt @@ -0,0 +1,73 @@ +organization := "ch.hepia" + +name := "tpscala" + +version := "2018" + +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..657a180 --- /dev/null +++ b/base_tp/src/intro/Euclid.scala @@ -0,0 +1,21 @@ +package ch.unige.hepia.tp + +object Euclid extends App { + + // Implémenter correctement cette fonction + def gcd( a: Int, b: Int ): Int = { + if (b==0){ + a + } else { + gcd(b, a % b) + } + } + + + + 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 +} diff --git a/ex1.scala b/ex1.scala new file mode 100755 index 0000000..589ff3c --- /dev/null +++ b/ex1.scala @@ -0,0 +1,14 @@ +def interet(years:Int) = { + var start = 10000.0 + for(i <- 0 until years){ + start += 1000 + start *= 1.015 + } + start +} + +import java.util.Calendar + +var date = Calendar.getInstance().getTime() + + -- GitLab