diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f02240ff8f09f7ec913c.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f02240ff8f09f7ec913c.md index 4697b12d13a..5c0cc1b8543 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f02240ff8f09f7ec913c.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f02240ff8f09f7ec913c.md @@ -7,7 +7,7 @@ dashedName: step-36 # --description-- -Within the `div.question-block` elements, nest one `label` element, and add a `CSS` related question to the `label` text. +Bette innerhalb der `div.question-block`-Elemente ein `label`-Element ein und füge dem `label`-Text eine `CSS`-Frage hinzu. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f4701b942c824109626c3d8.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f4701b942c824109626c3d8.md index 7b4fdb9a6bf..ffe1a5d3118 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f4701b942c824109626c3d8.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f4701b942c824109626c3d8.md @@ -11,7 +11,7 @@ Füge nun die `bottom-line`-Klasse zum zweiten `hr`-Element hinzu, damit die For # --hints-- -You should add the `class` attribute with the value `bottom-line`. +Du solltest das `class`-Attribut mit dem Wert `bottom-line` hinzufügen. ```js assert(code.match(/class=('|")bottom-line\1/i)); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/61410126fa3a6d2b3cda502e.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/61410126fa3a6d2b3cda502e.md index 2d0baa124d2..273c6c99797 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/61410126fa3a6d2b3cda502e.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-animation-by-building-a-ferris-wheel/61410126fa3a6d2b3cda502e.md @@ -7,13 +7,13 @@ dashedName: step-24 # --description-- -To make your cabin animation seem more like a natural swinging motion, you can use the `ease-in-out` timing function. Diese Einstellung weist der Animation an, mit langsamerem Tempo zu beginnen und zu enden, aber sich in der Mitte des Zyklus schneller zu bewegen. +Du kannst die `ease-in-out`-Timing-Funktion verwenden, um deine Kabinenanimation eher nach einer natürlichen Schwingbewegung aussehen zu lassen. Diese Einstellung weist der Animation an, mit langsamerem Tempo zu beginnen und zu enden, aber sich in der Mitte des Zyklus schneller zu bewegen. -Replace `linear` to `ease-in-out` in the `.cabin` selector. +Ersetze im `.cabin`-Selektor `linear` mit `ease-in-out`. # --hints-- -Your `.cabin` selector should have an `animation` property set to `cabins 10s ease-in-out infinite`. +Dein `.cabin`-Selektor sollte eine `animation`-Eigenschaft auf `cabins 10s ease-in-out infinite` gesetzt haben. ```js assert(new __helpers.CSSHelp(document).getStyle('.cabin')?.animation === '10s ease-in-out 0s infinite normal none running cabins'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61695197ac34f0407e339882.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61695197ac34f0407e339882.md index ecaa677b217..59567284f5b 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61695197ac34f0407e339882.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61695197ac34f0407e339882.md @@ -31,7 +31,7 @@ Du solltest den Dokumententyp als `html` definieren. assert(code.match(/` after the type. +Du solltest die `DOCTYPE`-Deklaration mit einem `>` nach dem Typ schließen. ```js assert(code.match(//gi)); @@ -49,7 +49,7 @@ Dein `html`-Element sollte ein schließendes Tag haben. assert(code.match(/<\/html\s*>/gi)); ``` -Your `DOCTYPE` declaration should be at the beginning of your HTML. +Deine `DOCTYPE`-Deklaration sollte am Anfang deines HTMLs stehen. ```js assert(__helpers.removeHtmlComments(code).match(/^\s*/i)); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/616971b3cd990186b66c99a1.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/616971b3cd990186b66c99a1.md index 31f11f9231c..8b4ad3e0c67 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/616971b3cd990186b66c99a1.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/616971b3cd990186b66c99a1.md @@ -7,9 +7,9 @@ dashedName: step-8 # --description-- -Now that your external CSS file is set up, you can start styling the page. +Da nun deine externe CSS-Datei eingerichtet ist, kannst du mit der Gestaltung der Seite beginnen. -As a reminder, here's how to target a paragraph element and align it to the right: +Hier zur Erinnerung, wie man ein Absatz-Element auswählt und es nach rechts ausrichtet: ```css p { diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/616d525007b8c5d8b3308b1c.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/616d525007b8c5d8b3308b1c.md index 66b0d8cb808..1ced424b8f8 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/616d525007b8c5d8b3308b1c.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/616d525007b8c5d8b3308b1c.md @@ -9,7 +9,7 @@ dashedName: step-13 Deine Markierung würde besser aussehen, wenn sie auf der Seite zentriert wäre. Eine einfache Möglichkeit, dies zu zun, ist die `margin` shorthand property zu verwenden. -In the last project, you set the margin area of elements separately with properties like `margin-top` and `margin-left`. The `margin` shorthand property makes it easy to set multiple margin areas at the same time. +Im letzten Projekt hast du den Marginbereich von Elementen separat mit Eigenschaften wie `margin-top` und `margin-left` festgelegt. Die zusammenfassende `margin`-Eigenschaft macht es einfach mehrere Marginbereiche gleichzeitig festzulegen. Um deine Markierung auf der Seite zu zentrieren, setze ihre `margin`-Eigenschaft auf `auto`. This sets `margin-top`, `margin-right`, `margin-bottom`, and `margin-left` all to `auto`. diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b8b38f32bf2080a140675.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b8b38f32bf2080a140675.md index 4aa859ac225..26a01547d73 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b8b38f32bf2080a140675.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b8b38f32bf2080a140675.md @@ -7,7 +7,7 @@ dashedName: step-22 # --description-- -A function is a piece of code that can take an input and perform a specific action. Die `rgb`-CSS-Funktion nimmt Werte oder arguments für Rot, Grün und Blau an und erzeugt eine Farbe: +Eine Funktion ist ein Teil des Codes, der eine Eingabe entgegennehmen und eine bestimmte Aktion ausführen kann. Die `rgb`-CSS-Funktion nimmt Werte oder arguments für Rot, Grün und Blau an und erzeugt eine Farbe: ```css rgb(red, green, blue); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617bc3386dc7d07d6469bf20.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617bc3386dc7d07d6469bf20.md index ff7e5537b29..86c49a3031d 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617bc3386dc7d07d6469bf20.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617bc3386dc7d07d6469bf20.md @@ -7,7 +7,7 @@ dashedName: step-32 # --description-- -Notice that, to create orange, you had to increase the intensity of red and decrease the intensity of the green `rgb` values. Das liegt daran, dass Orange die Kombination aus Rot und Gelb ist und zwischen den beiden Farben des Farbkreies fällt. +Beachte, dass du die Intensität von Rot erhöhen musst und die Intensität der grünen `rgb`-Werte senken musst, um Orange zu erstellen. Das liegt daran, dass Orange die Kombination aus Rot und Gelb ist und zwischen den beiden Farben des Farbkreies fällt. Kombiniere Cyan mit Grün, um die Tertiärfarbe Frühlingsgrün herzustellen. Aktualisiere die `rgb`-Funktion in der `.two`-CSS-Regel so, dass Grün den maximalen Wert hat und Blau auf `127` eingestellt ist. diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/618a132676346ac9f7fd59dd.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/618a132676346ac9f7fd59dd.md index ebb185be84f..718862e77cf 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/618a132676346ac9f7fd59dd.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/618a132676346ac9f7fd59dd.md @@ -11,7 +11,7 @@ Fällt dir auf, wie deine Augen ganz natürlich von der roten Farbe in der Mitte Es gibt mehrere andere wichtige Farbkombinationen außerhalb der Komplementärfarben, du wirst diese später lernen. -For now, use the `rgb` function in the `.two` CSS rule to set the `background-color` to black. +Verwende vorerst die `rgb`-Funktion in der `.two`-CSS-Regel, um die `background-color` auf schwarz zu setzen. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/619b7fd56aa2253778bcf5f7.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/619b7fd56aa2253778bcf5f7.md index 5d136391d0d..0551f2cf70e 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/619b7fd56aa2253778bcf5f7.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/619b7fd56aa2253778bcf5f7.md @@ -7,15 +7,15 @@ dashedName: step-48 # --description-- -The HSL color model, or hue, saturation, and lightness, is another way to represent colors. +Das HSL-Farbmodell, oder Farbton, Sättigung und Helligkeit, ist ein weiterer Weg Farben darzustellen. Die hsl-CSS-Funktion nimmt 3 Werte auf: Eine Zahl von 0 bis 360 für einen Farbton, einen Prozentsatz von 0 bis 100 für die Sättigung und einen Prozentsatz von 0 bis 100 für Helligkeit. Wenn du dir einen Farbkreis vorstellst ist der Farbton Rot auf 0 Grad, Grün auf 120 Grad und Blau auf 240 Grad. -Sättigung ist die Intensität einer Farbe von 0%, grau, bis zu 100% für die reine Farbe. You must add the percent sign `%` to the saturation and lightness values. +Sättigung ist die Intensität einer Farbe von 0%, grau, bis zu 100% für die reine Farbe. Du musst das Prozentzeichen `%` zu den Sättigungs- und Helligkeitswerten hinzufügen. -Lightness is how bright a color appears, from 0%, or complete black, to 100%, complete white, with 50% being neutral. +Die Helligkeit gibt an, wie hell eine Farbe erscheint. Sie reicht von 0 %, also komplett schwarz, bis 100 %, also komplett weiß, wobei 50 % neutral ist. Verwende in der `.blue`-CSS-Regel die `hsl`-Funktion, um die `background-color`-Eigenschaft auf reines Blau zu ändern. Setze den Farbton auf `240`, die Sättigung auf `100%` und die Helligkeit auf `50%`. diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61a5d6701ee08953ca375243.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61a5d6701ee08953ca375243.md index 2cd32c217af..99875078fde 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61a5d6701ee08953ca375243.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61a5d6701ee08953ca375243.md @@ -7,7 +7,7 @@ dashedName: step-68 # --description-- -As the second color argument, pass in the `hsl` function with the values `223` for hue, `90%` for saturation, and `60%` for lightness. +Übergib als zweites Farbargument die `hsl`-Funktion mit den Werten `223` für Farbton, `90%` für Sättigung und `60%` für Helligkeit. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b093429e7fc020b43b1bb6.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b093429e7fc020b43b1bb6.md index 891ed6a872e..341d2b6c93f 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b093429e7fc020b43b1bb6.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b093429e7fc020b43b1bb6.md @@ -9,7 +9,7 @@ dashedName: step-76 Dein Ärmel sieht gut aus, aber er würde noch besser aussehen, wenn er mehr auf der rechten Seite der Markierung positioniert wäre. Eine Möglichkeit, dies zu tun, besteht darin, vor dem Ärmel ein weiteres Element hinzuzufügen, um es nach rechts zu schieben. -Add a new `div` with the class `cap` before the sleeve `div` element. +Füge einen neuen `div` mit der Klasse `cap` vor dem `div`-Ärmel-Element hinzu. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b0a1b2af494934b7ec1a72.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b0a1b2af494934b7ec1a72.md index c6a1ee5ec33..559d05f76b6 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b0a1b2af494934b7ec1a72.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b0a1b2af494934b7ec1a72.md @@ -20,7 +20,7 @@ const greenMarkerChildren = [...document.querySelector('.green')?.children]; assert(greenMarkerChildren.every(child => child?.localName === 'div') && greenMarkerChildren.length === 2); ``` -Your green marker's cap `div` element should be before the sleeve `div` element. +Das `div`-Mützen-Element deiner grünen Markierung sollte vor dem `div`-Ärmel-Element stehen. ```js const greenMarkerChildren = [...document.querySelector('.green')?.children]; @@ -29,14 +29,14 @@ const greenMarkerSleeve = document.querySelector('.green .sleeve'); assert(greenMarkerChildren.indexOf(greenMarkerCap) < greenMarkerChildren.indexOf(greenMarkerSleeve)); ``` -Your blue marker `div` should contain two `div` elements. +Deine blaue Markierung `div` sollte zwei `div`-Elemente enthalten. ```js const blueMarkerChildren = [...document.querySelector('.blue')?.children]; assert(blueMarkerChildren.every(child => child?.localName === 'div') && blueMarkerChildren.length === 2); ``` -Your blue marker's cap `div` element should be before the sleeve `div` element. +Das `div`-Mützen-Element deiner blauen Markierung sollte vor dem `div`-Ärmel-Element stehen. ```js const blueMarkerChildren = [...document.querySelector('.blue')?.children]; diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148b0d764e4192e5712ed92.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148b0d764e4192e5712ed92.md index 04eaa2ec87a..0dc5a3b53f1 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148b0d764e4192e5712ed92.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148b0d764e4192e5712ed92.md @@ -13,7 +13,7 @@ Setze die `display`-Eigenschaft des `.heading`-Selektors auf `grid`. # --hints-- -Your `.heading` selector should have a `display` property set to `grid`. +Dein `.heading`-Selektor sollte eine `display`-Eigenschaft auf `grid` gesetzt haben. ```js assert(new __helpers.CSSHelp(document).getStyle('.heading')?.display === 'grid'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148f6f7d8914c78e93136ca.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148f6f7d8914c78e93136ca.md index 524653d32e6..03af4e73350 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148f6f7d8914c78e93136ca.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148f6f7d8914c78e93136ca.md @@ -13,7 +13,7 @@ Glückwunsch! Dein Magazin ist nun fertig. # --hints-- -Du solltest für `only screen and (max-width: 420px)` eine neue `@media`-Query haben. Dies sollte die letzte Query in der `@media`-Query-Liste sein. +Du solltest für `only screen and (max-width: 420px)` eine neue `@media` Query haben. Dies sollte die letzte Query in der `@media`-Query-Liste sein. ```js assert.equal(new __helpers.CSSHelp(document).getCSSRules('media')?.[3]?.media?.mediaText, 'only screen and (max-width: 420px)'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/61967e74a8e3690ab6292daa.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/61967e74a8e3690ab6292daa.md index 9fc63b2c834..e0e9aed9c3b 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/61967e74a8e3690ab6292daa.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/61967e74a8e3690ab6292daa.md @@ -7,7 +7,7 @@ dashedName: step-2 # --description-- -Target the `body` element to set the `background` to a linear gradient angled 45 degrees clockwise, starting at `rgb(118, 201, 255)` and ending at `rgb(247, 255, 222)`. +Wähle das `body`-Element aus, um den `background` auf einen linearen Farbverlauf mit 45 Grad im Uhrzeigersinn festzulegen, beginnend bei `rgb(118, 201, 255)` und endend bei `rgb(247, 255, 222)`. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/61968e9243a4090cc805531c.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/61968e9243a4090cc805531c.md index 9a41c31c666..eec289eb74a 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/61968e9243a4090cc805531c.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/61968e9243a4090cc805531c.md @@ -7,7 +7,7 @@ dashedName: step-5 # --description-- -Remove both the horizontal and vertical scrollbars, using only one property. +Entferne sowohl die horizontalen als auch die vertikalen Scrollbalken, indem du nur eine Eigenschaft verwendest. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d0503e03a790a4179d463.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d0503e03a790a4179d463.md index 782815536e5..50cb52ab553 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d0503e03a790a4179d463.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d0503e03a790a4179d463.md @@ -17,7 +17,7 @@ Du solltest `.chin` eine `top`-Eigenschaft geben. assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.chin')?.top); ``` -You should give `.chin` a `top` of `--fcc-expected--`, but found `--fcc-actual--`. +Du solltest `.chin` eine `top` von `--fcc-expected--` zuweisen, aber es wurde `--fcc-actual--` gefunden. ```js assert.equal(new __helpers.CSSHelp(document).getStyle('.chin')?.top, '25%'); @@ -29,7 +29,7 @@ Du solltest `.chin` eine `left`-Eigenschaft geben. assert.notEmpty(new __helpers.CSSHelp(document).getStyle('.chin')?.left); ``` -You should give `.chin` a `left` of `--fcc-expected--`, but found `--fcc-actual--`. +Du solltest `.chin` eine `left` von `--fcc-expected--` zuweisen, aber es wurde `--fcc-actual--` gefunden. ```js assert.equal(new __helpers.CSSHelp(document).getStyle('.chin')?.left, '5%'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d05c54dabca0b10058235.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d05c54dabca0b10058235.md index c7e29597164..399864fa3c4 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d05c54dabca0b10058235.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d05c54dabca0b10058235.md @@ -25,7 +25,7 @@ Du solltest `:root` eine `--penguin-face`-Eigenschaft geben. assert.notEmpty(new __helpers.CSSHelp(document).getStyle(':root')?.getPropertyValue('--penguin-face')); ``` -You should give `:root` a `--penguin-face` of `--fcc-expected--`, but found `--fcc-actual--`. +Du solltest `:root` ein `--penguin-face` von `--fcc-expected--` zuweisen, aber es wurde `--fcc-actual--` gefunden. ```js assert.equal(new __helpers.CSSHelp(document).getStyle(':root')?.getPropVal('--penguin-face', true), 'white'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d0c1594c38c0ebae75878.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d0c1594c38c0ebae75878.md index a5b14ec8b09..c19206ce29e 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d0c1594c38c0ebae75878.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d0c1594c38c0ebae75878.md @@ -7,7 +7,7 @@ dashedName: step-59 # --description-- -Target the `.eye` element with the `left` class, and position it `25%` from the left of its parent. Then, target the `.eye` element with the `right` class, and position it `25%` from the right of its parent. +Wähle das `.eye`-Element mit der `left`-Klasse aus und positioniere es `25%` links von seinem übergeordneten Element. Wähle dann das `.eye`-Element mit der `right`-Klasse aus und positioniere es `25%` rechts von seinem übergeordneten Element. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2712853306238f41828e.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2712853306238f41828e.md index 252d33050a7..7a366788ac0 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2712853306238f41828e.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2712853306238f41828e.md @@ -17,7 +17,7 @@ Du solltest `:root` eine `--penguin-skin`-Eigenschaft geben. assert.exists(new __helpers.CSSHelp(document).getStyle(':root').getPropertyValue('--penguin-skin')); ``` -You should give `--penguin-skin` a value of `gray`, but found `--fcc-actual--`. +Du solltest `--penguin-skin` einen Wert von `gray` zuweisen, aber es wurde `--fcc-actual--` gefunden. ```js assert.equal(new __helpers.CSSHelp(document).getStyle(':root').getPropVal('--penguin-skin', true), 'gray'); @@ -29,7 +29,7 @@ Du solltest `.penguin-head` einen `background` von `linear-gradient(45deg, var(- assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-head')?.getPropVal('background', true), 'linear-gradient(45deg,var(--penguin-skin),rgb(239,240,228))'); ``` -You should give `.penguin-body::before` a `background-color` of `var(--penguin-skin)`, but found `--fcc-actual--`. +Du solltest `.penguin-body::before` eine `background-color` von `var(--penguin-skin)` zuweisen, aber es wurde `--fcc-actual--` gefunden. ```js assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-body::before')?.getPropVal('background-color', true), 'var(--penguin-skin)'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d3482f505452d861d0f62.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d3482f505452d861d0f62.md index 752a074cfed..a883b3e9b9c 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d3482f505452d861d0f62.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d3482f505452d861d0f62.md @@ -7,7 +7,7 @@ dashedName: step-101 # --description-- -Target the `.penguin` element when it is active, and increase its size by `50%` in both dimensions. +Wähle das `.penguin`-Element aus, wenn es aktiv ist, und erhöhe seine Größe in beiden Dimensionen um `50%`. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d36103839c82efa95dd34.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d36103839c82efa95dd34.md index fefdc62eb14..5312b8a721a 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d36103839c82efa95dd34.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d36103839c82efa95dd34.md @@ -7,7 +7,7 @@ dashedName: step-103 # --description-- -Change the `.penguin` element's `transition` behavior during transformation to have a duration of `1s`, a timing function of `ease-in-out`, and a delay of `0ms`. +Ändere das `transition`-Verhalten des `.penguin`-Elements während der Transformation, damit es eine Dauer von `1s`, eine Timing-Funktion von `ease-in-out` und eine Verzögerung von `0ms` hat. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e990c.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e990c.md index eb3c2ce472c..252add59de5 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e990c.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e990c.md @@ -7,7 +7,7 @@ dashedName: step-68 # --description-- -Erstelle eine neue Variable namens `--window-color4` in `:root` und gib ihr einen Wert von `#8cb3d9`. This will be the secondary color for the last background building. +Erstelle eine neue Variable namens `--window-color4` in `:root` und gib ihr einen Wert von `#8cb3d9`. Dies wird die Sekundärfarbe für das letzte Hintergrundelement sein. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9918.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9918.md index fcc09f27930..4f94ed78071 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9918.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9918.md @@ -7,7 +7,7 @@ dashedName: step-79 # --description-- -You're going to use some more border tricks for the top section. Füge `border-bottom` mit einem Wert von `7vh solid var(--building-color4)` zu `.fb1a` hinzu. Dadurch wird unten ein Rand mit einer Höhe von `7vh` angezeigt. But since the element has zero size, it only shows up as a 2px wide line from the 1px border that is on all the elements. +Du wirst einige weitere Kanten-Tricks für den oberen Abschnitt verwenden. Füge `border-bottom` mit einem Wert von `7vh solid var(--building-color4)` zu `.fb1a` hinzu. Dadurch wird unten ein Rand mit einer Höhe von `7vh` angezeigt. But since the element has zero size, it only shows up as a 2px wide line from the 1px border that is on all the elements. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9925.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9925.md index 398a2b5ed4e..321395a5133 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9925.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9925.md @@ -7,7 +7,7 @@ dashedName: step-92 # --description-- -Nest three new `div` elements in the first `.fb3a` element. Give them each a class of `fb3-window`. Dies werden Fenster für diesen Abschnitt sein. +Bette drei neue `div`-Elemente in das erste `.fb3a`-Element ein. Give them each a class of `fb3-window`. Dies werden Fenster für diesen Abschnitt sein. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc23991f86c76b9248c6eb8.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc23991f86c76b9248c6eb8.md index db14e1eed36..7344026652f 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc23991f86c76b9248c6eb8.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc23991f86c76b9248c6eb8.md @@ -7,7 +7,7 @@ dashedName: step-6 # --description-- -In the previous step, you put the `h1`, `h2`, comment, and `p` elements inside the `main` element. Dies nennt man *nesting*. Verschachtelte Elemente sollten zwei Leerzeichen weiter rechts von dem Element, in dem sie verschachtelt sind, platziert werden. Diesen Abstand nennt man Einrückung und wird verwendet, um HTML leichter lesen zu können. +Im vorherigen Schritt hast du die `h1`-, `h2`-, Kommentar- und `p`-Elemente in das `main`-Element hinzugefügt. Dies nennt man *nesting*. Verschachtelte Elemente sollten zwei Leerzeichen weiter rechts von dem Element, in dem sie verschachtelt sind, platziert werden. Diesen Abstand nennt man Einrückung und wird verwendet, um HTML leichter lesen zu können. Das `h1`-Element, `h2`-Element und der Kommentar sind um zwei Leerzeichen mehr eingerückt als das `main`-Element im folgenden Code. Verwende die Leertaste auf deiner Tastatur, um zwei weitere Leerzeichen vor dem `p`-Element hinzuzufügen, so dass es auch richtig eingerückt wird. @@ -23,7 +23,7 @@ assert( ); ``` -You should not add the `ul` or `li` elements from the example. +Du solltest nicht die `ul`- oder `li`-Elemente aus dem Beispiel hinzufügen. ```js assert( diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24614f86c76b9248c6ebd.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24614f86c76b9248c6ebd.md index 782cce79549..82c663e0967 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24614f86c76b9248c6ebd.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24614f86c76b9248c6ebd.md @@ -34,13 +34,13 @@ const collection = [...document.querySelectorAll('a, p')].map( assert(collection.indexOf('P') < collection.indexOf('A')); ``` -Dein (`a`)-Element hat kein `href`-Attribut. Check that there is a space after the opening tag's name and/or there are spaces before all attribute names. +Dein (`a`)-Element hat kein `href`-Attribut. Überprüfe, ob nach dem Namen des öffnenden Tags ein Leerzeichen steht und/oder ob vor allen Attributnamen Leerzeichen stehen. ```js assert(document.querySelector('a').hasAttribute('href')); ``` -Your anchor (`a`) element should link to `https://freecatphotoapp.com`. Du hast entweder die URL weggelassen oder einen Tippfehler gemacht. +Dein (`a`)-Ankerelement sollte auf `https://freecatphotoapp.com` verlinken. Du hast entweder die URL weggelassen oder einen Tippfehler gemacht. ```js assert( diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa371beacea3f48c6300af.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa371beacea3f48c6300af.md index 88d2fadcf9e..891b3e3844b 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa371beacea3f48c6300af.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa371beacea3f48c6300af.md @@ -9,7 +9,7 @@ dashedName: step-19 Wenn du ein untergeordnetes Überschriftenelement zur Seite hinzufügst, wird angedeutet, dass du einen neuen Unterabschnitt beginnst. -After the last `h2` element of the second `section` element, add an `h3` element with this text: +Füge nach dem letzten `h2`-Element des zweiten `section`-Elements ein `h3`-Element mit diesem Text hinzu: `Things cats love:` diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d8.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d8.md index 40992e99631..86469549251 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d8.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d8.md @@ -7,13 +7,13 @@ dashedName: step-37 # --description-- -The `input` element allows you several ways to collect data from a web form. Like `img` elements, `input` elements are self-closing and do not need closing tags. +Das `input`-Element gibt dir mehrere Möglichkeiten, Daten aus einem Webformular zu sammeln. Like `img` elements, `input` elements are self-closing and do not need closing tags. Nest an `input` element in the `form` element. # --hints-- -Your `form` element should have an opening tag and closing tag in the correct order. You may be missing one or both of the required tags, or have them in the wrong order. +Your `form` element should have an opening tag and closing tag in the correct order. Es kann sein, dass eine oder beide der erforderlichen Tags fehlen oder in der falschen Reihenfolge sind. ```js const noSpaces = code.replace(/\s/g, ''); @@ -48,7 +48,7 @@ Dein `input`-Element sollte innerhalb deines `form`-Elements eingebettet sein. assert(document.querySelector('form > input')); ``` -Deine `form` sollte nur das `input`-Element enthalten. Remove any HTML elements or text between the `form` element's tags. +Deine `form` sollte nur das `input`-Element enthalten. Entferne jedes HTML-Element oder jeglichen Text zwischen den Tags des `form`-Elements. ```js assert( diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804da.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804da.md index bffb10f9b61..917786cfce3 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804da.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804da.md @@ -7,9 +7,9 @@ dashedName: step-42 # --description-- -Use the `button` element to create a clickable button. Zum Beispiel erstellt `` eine Schaltfläche mit dem Text `Click Here`. +Benutze das `button`-Element, um eine anklickbare Schaltfläche zu erstellen. Zum Beispiel erstellt `` eine Schaltfläche mit dem Text `Click Here`. -Add a `button` element with the text `Submit` below the `input` element. The default behavior of clicking a form button without any attributes submits the form to the location specified in the form's `action` attribute. +Füge ein `button`-Element mit dem Text `Submit` unter dem `input`-Element hinzu. The default behavior of clicking a form button without any attributes submits the form to the location specified in the form's `action` attribute. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804dc.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804dc.md index ccc6f30abc6..ffcbe78e093 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804dc.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804dc.md @@ -11,7 +11,7 @@ Du kannst Optionsschaltflächen für Fragen verwenden, bei denen du nur eine Ant Hier ist ein Beispiel für ein Radio-Button mit der Option von `cat`: ` cat`. Beachte, dass `input`-Elemente self-closing sind. -Before the text input, add a radio button with the option set as: +Füge vor der Texteingabe einen Radio-Button hinzu, der diese Option enthält: `Indoor` diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e1.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e1.md index 7617f8b8b9b..f38e37c49eb 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e1.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e1.md @@ -9,7 +9,7 @@ dashedName: step-50 Das `fieldset`-Element wird verwendet, um zugehörige Eingaben und Kennzeichnungen in einem Webformular zusammenzufassen. `fieldset`-Elemente sind block-level elements, sie werden also in einer neuen Zeile angezeigt. -Nest the `Indoor` and `Outdoor` radio buttons within a `fieldset` element, and don't forget to indent the radio buttons. +Bette die `Indoor`- und `Outdoor`-Radio-Buttons innerhalb eines `fieldset`-Elements ein und vergiss nicht die Radio-Buttons einzurücken. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md index c4efa6982f6..67c167995cf 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md @@ -7,7 +7,7 @@ dashedName: step-29 # --description-- -Inside the `figure` element you just added, nest an `img` element with a `src` attribute set to `https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg`. +Bette innerhalb des `figure`-Elements, das du eben hinzugefügt hast, ein `img`-Element mit einem `src`-Attribut ein, das auf `https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg` gesetzt ist. # --hints-- @@ -29,7 +29,7 @@ Es sollte ein zweites `figure`-Element genau über dem zweiten schließenden Tag assert($('main > section')[1].lastElementChild.nodeName === 'FIGURE'); ``` -You should have a third `img` element nested in the `figure` element. +Du solltest ein drittes `img`-Element in dem `figure`-Element einbetten. ```js const catsImg = document.querySelectorAll('figure > img')[1]; diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efc4f528d6a74d05e68af74.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efc4f528d6a74d05e68af74.md index a33c05b6d4c..8a9348120d1 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efc4f528d6a74d05e68af74.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efc4f528d6a74d05e68af74.md @@ -7,7 +7,7 @@ dashedName: step-56 # --description-- -There's another way to associate an `input` element's text with the element itself. Du kannst den Text innerhalb eines `label`-Elements verschachteln und ein `for`-Attribut mit dem gleichen Wert wie das `id`-Attribut des `input`-Elements hinzufügen. +Es gibt eine andere Möglichkeit, den Text eines `input`-Elements mit dem Element selbst zu verknüpfen. Du kannst den Text innerhalb eines `label`-Elements verschachteln und ein `for`-Attribut mit dem gleichen Wert wie das `id`-Attribut des `input`-Elements hinzufügen. Verknüpfe den Text `Loving` mit der Checkbox, indem du nur den Text `Loving` in einem `label`-Element verschachtelst und ihm ein entsprechendes `for`-Attribut gibst. diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/7cf9b03d81a65668421804c3.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/7cf9b03d81a65668421804c3.md index a8e102040e7..758cd3fd275 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/7cf9b03d81a65668421804c3.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/7cf9b03d81a65668421804c3.md @@ -9,17 +9,17 @@ dashedName: step-39 In order for a form's data to be accessed by the location specified in the `action` attribute, you must give the text field a `name` attribute and assign it a value to represent the data being submitted. For example, you could use the following syntax for an email address text field: ``. -Add the `name` attribute with the value `catphotourl` to your text field. +Füge das `name`-Attribut mit dem Wert `catphotourl` zu deinem Textfeld hinzu. # --hints-- -You have either deleted your `input` element or it has invalid syntax. All attributes' values should be surrounded by quotation marks. +Du hast entweder dein `input`-Element gelöscht oder es hat eine ungültige Syntax. All attributes' values should be surrounded by quotation marks. ```js assert($('input').length); ``` -Your `form` should only contain the `input` element. Remove any additional HTML elements or text within the `form` element. +Deine `form` sollte nur das `input`-Element enthalten. Entferne innerhalb des `form`-Elements alle zusätzlichen HTML-Elemente oder Text. ```js assert( @@ -28,13 +28,13 @@ assert( ); ``` -Your `input` element does not have a `name` attribute. Check that there is a space after the opening tag's name and/or there are spaces before all attribute names. +Dein `input`-Element hat kein `name`-Attribut. Check that there is a space after the opening tag's name and/or there are spaces before all attribute names. ```js assert($('input')[0].hasAttribute('name')); ``` -Your `input` element should have a `name` attribute with the value `catphotourl`. You have either omitted the value or have a typo. Remember that attribute values should be surrounded with quotation marks. +Dein `input`-Element sollte ein `name`-Attribut mit dem Wert `catphotourl` enthalten. You have either omitted the value or have a typo. Remember that attribute values should be surrounded with quotation marks. ```js assert( @@ -44,7 +44,7 @@ assert( ); ``` -Although you have set the `input` element's `name` attribute to `catphotourl`, it is recommended to always surround the value of an attribute with quotation marks. +Obwohl du das `name`-Attribut des `input`-Elements auf `catphotourl` gesetzt hast, wird es empfohlen, die Werte eines Attributs immer zwischen Anführungszeichen zu schreiben. ```js assert(!/\<\s*input\s+.*\s*=\s*catphotourl/.test(code)); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f0286404aefb0562a4fdf9.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f0286404aefb0562a4fdf9.md index dd04d803613..82c7a71d6e1 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f0286404aefb0562a4fdf9.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f0286404aefb0562a4fdf9.md @@ -7,31 +7,31 @@ dashedName: step-4 # --description-- -Add a `title` and a `meta` element to the `head`. Give your project a title of `Registration Form`, and give a `charset` attribute with a value of `UTF-8` to your `meta` element. +Füge ein `title`- und ein `meta`-Element zum `head` hinzu. Weise deinem Projekt den Titel `Registration Form` zu und füge deinem `meta`-Element ein `charset`-Attribut mit dem Wert `UTF-8` hinzu. # --hints-- -Your code should have a `title` element. +Dein Code sollte ein `title`-Element enthalten. ```js const title = document.querySelector('title'); assert.exists(title); ``` -The `title` element should be within the `head` element. +Das `title`-Element sollte sich innerhalb des `head`-Elements befinden. ```js assert.exists(document.querySelector('head > title')); ``` -Your project should have a title of `Registration Form`. +Dein Projekt sollte den Titel `Registration Form` haben. ```js const title = document.querySelector('title'); assert.equal(title.text.toLowerCase(), 'registration form') ``` -Remember, the casing and spelling matters for the title. +Denke daran, dass Schreibweise und Rechtschreibung für den Titel wichtig sind. ```js const title = document.querySelector('title'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f1a5e2d2c23707a4f9a660.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f1a5e2d2c23707a4f9a660.md index e08384bf523..4f1cde09e86 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f1a5e2d2c23707a4f9a660.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f1a5e2d2c23707a4f9a660.md @@ -11,7 +11,7 @@ Now, get rid of the horizontal scroll-bar, by setting the `body` default `margin # --hints-- -You should add `margin` within the `body` element selector. +Du solltest `margin` innerhalb des `body`-Elementselektors hinzufügen. ```js assert.isNotEmpty(new __helpers.CSSHelp(document).getStyle('body')?.margin); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f803d5241e6a0433a523a1.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f803d5241e6a0433a523a1.md index bc3f992e0c9..57a7024e9c6 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f803d5241e6a0433a523a1.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f803d5241e6a0433a523a1.md @@ -6,13 +6,13 @@ dashedName: step-16 --- # --description-- -The `rem` unit stands for root `em`, and is relative to the font size of the `html` element. +Die `rem`-Einheit steht für root `em` und ist relativ zur Schriftgröße des `html`-Elements. -As `label` elements are inline by default, they are all displayed side by side on the same line, making their text hard to read. To make them appear on separate lines, add `display: block` to the `label` element, and add a `margin` of `0.5rem 0`, to separate them from each other. +Da `label`-Elemente standardmäßig inline sind, werden sie in derselben Zeile nebeneinander angezeigt, was ihren Text schwer lesbar macht. Um sie in separaten Zeilen erscheinen zu lassen, füge `display: block` zum `label`-Element und eine `margin` von `0.5rem 0` hinzu, um sie voneinander zu trennen. # --hints-- -You should use the `label` selector. +Du solltest den `label`-Selektor verwenden. ```js assert.exists(new __helpers.CSSHelp(document).getStyle('label')); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f80e0081e0f2052ae5b505.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f80e0081e0f2052ae5b505.md index ae93079c749..2bb40fb56c6 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f80e0081e0f2052ae5b505.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f80e0081e0f2052ae5b505.md @@ -9,25 +9,25 @@ dashedName: step-19 Specifying the `type` attribute of a form element is important for the browser to know what kind of data it should expect. If the `type` is not specified, the browser will default to `text`. -Give the first two `input` elements a `type` attribute of `text`, the third a `type` attribute of `email`, and the fourth a `type` attribute of `password`. +Weise den ersten zwei `input`-Elementen ein `type`-Attribut von `text`, dem dritten ein `type`-Attribut von `email` und dem vierten ein `type`-Attribut von `password` zu. -The `email` type only allows emails with a `@` and a `.` in the domain. The `password` type obscures the input, and warns if the site does not use HTTPS. +The `email` type only allows emails with a `@` and a `.` in the domain. Der `password`-Typ verdeckt die Eingabe und warnt, wenn die Seite kein HTTPS verwendet. # --hints-- -You should give the first `input` element a `type` attribute of `text`. +Du solltest dem ersten `input`-Element ein `type`-Attribut von `text` zuweisen. ```js assert.equal(document.querySelector('input')?.type, 'text'); ``` -You should give the second `input` element a `type` attribute of `text`. +Du solltest dem zweiten `input`-Element ein `type`-Attribut von `text` zuweisen. ```js assert.equal(document.querySelectorAll('input')?.[1]?.type, 'text'); ``` -You should give the third `input` element a `type` attribute of `email`. +Du solltest dem dritten `input`-Element ein `type`-Attribut von `email` zuweisen. ```js assert.equal(document.querySelectorAll('input')?.[2]?.type, 'email'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f852f645b5310a8264f555.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f852f645b5310a8264f555.md index ef1ca5fb95c..a538dd448c2 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f852f645b5310a8264f555.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f852f645b5310a8264f555.md @@ -7,13 +7,13 @@ dashedName: step-24 # --description-- -Let us go to the next part of the registration form. This section will ask for the type of account the user is opening, and will confirm the user has read the terms and conditions. +Kommen wir nun zum nächsten Teil des Anmeldeformulars. In diesem Abschnitt wird nach der Art des Kontos gefragt, das der Nutzer eröffnet, und es wird bestätigt, dass der Nutzer die Allgemeinen Geschäftsbedingungen gelesen hat. -Start by adding three `label` elements to the second `fieldset`. +Beginne, indem du drei `label`-Elemente zum zweiten `fieldset` hinzufügst. # --hints-- -You should add three `label` elements to the second `fieldset`. +Du solltest drei `label`-Elemente zum zweiten `fieldset` hinzufügen. ```js assert.equal(document.querySelectorAll('fieldset')?.[1]?.querySelectorAll('label')?.length, 3); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f85a62fb30c80bcea0cedb.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f85a62fb30c80bcea0cedb.md index 9a61d649744..8085b25a5f4 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f85a62fb30c80bcea0cedb.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f85a62fb30c80bcea0cedb.md @@ -7,26 +7,26 @@ dashedName: step-25 # --description-- -Users will be allowed to choose either a `Personal Account` or `Business Account`. +Benutzer haben die Möglichkeit, zwischen einem `Personal Account` oder `Business Account` zu wählen. -To do this, within each of the first two `label` elements, add one `input` element with `type="radio"`. +Um dies zu tun, füge innerhalb jedes der beiden ersten `label`-Element ein `input`-Element mit `type="radio"` hinzu. # --hints-- -You should add two `input` elements. +Du solltest zwei `input`-Elemente hinzufügen. ```js assert.equal(document.querySelectorAll('fieldset:nth-child(2) input')?.length, 2); ``` -You should add one `input` to each of the first two `label` elements. +Du solltest zu jedem der ersten zwei `label`-Elemente ein `input` hinzufügen. ```js assert.exists(document.querySelector('fieldset:nth-child(2) > label:nth-child(1) > input')); assert.exists(document.querySelector('fieldset:nth-child(2) > label:nth-child(2) > input')); ``` -You should give both `input` elements a `type` of `radio`. +Du solltest beiden `input`-Elementen einen `type` von `radio` zuweisen. ```js assert.equal(document.querySelectorAll('fieldset:nth-child(2) input[type="radio"]')?.length, 2); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fac8d7fdfaee0796934f20.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fac8d7fdfaee0796934f20.md index d4e11c75ab6..716e736b7da 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fac8d7fdfaee0796934f20.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fac8d7fdfaee0796934f20.md @@ -7,7 +7,7 @@ dashedName: step-35 # --description-- -The dropdown options are currently empty. To give them content, add the following text to each subsequent `option` element: +Die Dropdown-Optionen sind derzeit leer. Füge den folgenden Text zu jedem nachfolgenden `option`-Element hinzu, um ihnen Inhalt zuzuweisen: ```md (select one) @@ -19,31 +19,31 @@ Other # --hints-- -You should give the first `option` element the text `(select one)`. +Du solltest dem ersten `option`-Element den Text `(select one)` zuweisen. ```js assert.equal(document.querySelectorAll('fieldset:nth-child(3) > label:nth-child(3) option')?.[0]?.textContent, '(select one)'); ``` -You should give the second `option` element the text `freeCodeCamp News`. +Du solltest dem zweiten `option`-Element den Text `freeCodeCamp News` zuweisen. ```js assert.equal(document.querySelectorAll('fieldset:nth-child(3) > label:nth-child(3) option')?.[1]?.textContent, 'freeCodeCamp News'); ``` -You should give the third `option` element the text `freeCodeCamp YouTube Channel`. +Du solltest dem dritten `option`-Element den Text `freeCodeCamp YouTube Channel` zuweisen. ```js assert.equal(document.querySelectorAll('fieldset:nth-child(3) > label:nth-child(3) option')?.[2]?.textContent, 'freeCodeCamp YouTube Channel'); ``` -You should give the fourth `option` element the text `freeCodeCamp Forum`. +Du solltest dem vierten `option`-Element den Text `freeCodeCamp Forum` zuweisen. ```js assert.equal(document.querySelectorAll('fieldset:nth-child(3) > label:nth-child(3) option')?.[3]?.textContent, 'freeCodeCamp Forum'); ``` -You should give the fifth `option` element the text `Other`. +Du solltest dem fünften `option`-Element den Text `Other` zuweisen. ```js assert.equal(document.querySelectorAll('fieldset:nth-child(3) > label:nth-child(3) option')?.[4]?.textContent, 'Other'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fadb18058e950c73925279.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fadb18058e950c73925279.md index 61eea9347ac..68ac0eeb1c6 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fadb18058e950c73925279.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fadb18058e950c73925279.md @@ -7,13 +7,13 @@ dashedName: step-45 # --description-- -During development, it is useful to see the `fieldset` default borders. However, they make the content appear too separated. +During development, it is useful to see the `fieldset` default borders. Sie lassen jedoch den Inhalt zu weit voneinander getrennt erscheinen. -Remove the `border`, and add `2rem` of padding only to the top and bottom of each `fieldset`. Be sure to remove the `padding` from the left and right. +Remove the `border`, and add `2rem` of padding only to the top and bottom of each `fieldset`. Achte darauf, das `padding` von links und rechts zu entfernen. # --hints-- -You can use either a value of `none` or `0` to remove the `border`. +Du kannst entweder einen Wert von `none` oder `0` verwenden, um die `border` zu entfernen. ```js assert.match(new __helpers.CSSHelp(document).getStyle('fieldset')?.border, /(none)|(0px)/); @@ -27,7 +27,7 @@ assert.equal(fieldset?.paddingTop, '2rem'); assert.equal(fieldset?.paddingBottom, '2rem'); ``` -You should remove the `padding` from the left and right of each `fieldset`. +Du solltest das `padding` links und rechts von jedem `fieldset` entfernen. ```js const fieldset = new __helpers.CSSHelp(document).getStyle('fieldset') diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe69ee377c6055e192a46.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe69ee377c6055e192a46.md index 04093628d7c..d6c96302481 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe69ee377c6055e192a46.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe69ee377c6055e192a46.md @@ -7,31 +7,31 @@ dashedName: step-56 # --description-- -To style the submit button, you can use an _attribute_ selector, which selects an element based on the given attribute value. Hier ist ein Beispiel: +Um den Bestätigungsbutton zu gestalten, kannst du einen _attribute_-Selektor verwenden, der ein Element basierend auf dem angegebenen Attributwert auswählt. Hier ist ein Beispiel: ```css input[name="password"] ``` -The above selects `input` elements with a `name` attribute value of `password`. +Das obere wählt `input`-Elemente mit einem `name`-Attributwert von `password` aus. -Now, use the attribute selector to style the submit button with a `display` of `block`, and a `width` of `60%`. +Verwende jetzt den Attribut-Selektor, um den Bestätigungsbutton mit einem `display` von `block` und einer `width` von `60%` zu gestalten. # --hints-- -You should use an attribute selector of `input[type="submit"]` to style the submit button. +Du solltest einen Attribut-Selektor von `input[type="submit"]` verwenden, um den Bestätigungsbutton zu gestalten. ```js assert.exists(new __helpers.CSSHelp(document).getStyle('input[type="submit"]')); ``` -You should give the submit button a `display` of `block`. +Du solltest dem Bestätigungsbutton einen `display` von `block` zuweisen. ```js assert.equal(new __helpers.CSSHelp(document).getStyle('input[type="submit"]')?.display, 'block'); ``` -You should give the submit button a `width` of `60%`. +Du solltest dem Bestätigungsbutton eine `width` von `60%` zuweisen. ```js assert.equal(new __helpers.CSSHelp(document).getStyle('input[type="submit"]')?.width, '60%'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe8a5ceb0e90618db06d9.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe8a5ceb0e90618db06d9.md index e71fd18acad..642d8d551c0 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe8a5ceb0e90618db06d9.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe8a5ceb0e90618db06d9.md @@ -7,17 +7,17 @@ dashedName: step-58 # --description-- -To make the submit button look more in line with the rest of the form, give it the same `height` as the other fields (`2em`). Also, increase the `font-size` to `1.1rem`. +Damit der Bestätigungsbutton besser zum Rest des Formulars passt, weise ihm die gleiche `height` wie den anderen Feldern (`2em`) zu. Vergrößere auch die `font-size` auf `1.1rem`. # --hints-- -You should give the submit button a `height` of `2em`. +Du solltest dem Bestätigungsbutton eine `height` von `2em` zuweisen. ```js assert.equal(new __helpers.CSSHelp(document).getStyle('input[type="submit"]')?.height, '2em'); ``` -You should give the submit button a `font-size` of `1.1rem`. +Du solltest dem Bestätigungsbutton eine `font-size` von `1.1rem` zuweisen. ```js assert.equal(new __helpers.CSSHelp(document).getStyle('input[type="submit"]')?.fontSize, '1.1rem'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe947a868ec068f7850f6.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe947a868ec068f7850f6.md index b654b4a5dc3..e80762d43a3 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe947a868ec068f7850f6.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe947a868ec068f7850f6.md @@ -7,17 +7,17 @@ dashedName: step-59 # --description-- -To make the submit button appear more distinct, give it a `background-color` of `#3b3b4f`, and a `border-color` of `white`. +Um den Bestätigungsbutton deutlicher erscheinen zu lassen, weise ihm eine `background-color` von `#3b3b4f` und eine `border-color` von `white` zu. # --hints-- -You should give the submit button a `background-color` of `#3b3b4f`. +Du solltest dem Bestätigungsbutton eine `background-color` von `#3b3b4f` zuweisen. ```js assert.equal(new __helpers.CSSHelp(document).getStyle('input[type="submit"]')?.backgroundColor, 'rgb(59, 59, 79)'); ``` -You should give the submit button a `border-color` of `white`. +Du solltest dem Bestätigungsbutton eine `border-color` von `white` zuweisen. ```js assert.equal(new __helpers.CSSHelp(document).getStyle('input[type="submit"]')?.borderColor, 'white'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c51584.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c51584.md index 787e8dbfabc..0f912e2afe6 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c51584.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c51584.md @@ -7,7 +7,7 @@ dashedName: step-14 # --description-- -This character needs eyes. Create two `div` elements in the `#black-mask` element. Give them the classes `eyes left` and `eyes right`, in that order. +This character needs eyes. Erstelle zwei `div`-Elemente im `#black-mask`-Element. Give them the classes `eyes left` and `eyes right`, in that order. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c51586.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c51586.md index db373554127..e7923569a01 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c51586.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c51586.md @@ -7,7 +7,7 @@ dashedName: step-16 # --description-- -Using an id selector, create a rule for the element with the id `offwhite-character`. Give it a `width` of `300px`, a `height` of `550px`, and a `background-color` of `GhostWhite`. +Erstelle mit einem ID-Selektor eine Regel für das Element mit der ID `offwhite-character`. Give it a `width` of `300px`, a `height` of `550px`, and a `background-color` of `GhostWhite`. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c5159a.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c5159a.md index 68998e8afd5..bd5c069990b 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c5159a.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c5159a.md @@ -7,7 +7,7 @@ dashedName: step-36 # --description-- -The mask needs eyes. Within your `#gray-mask` element, add two `div` elements. The first should have the `class` set to `eyes left`, and the second should have the `class` set to `eyes right`. +The mask needs eyes. Füge innerhalb deines `#gray-mask`-Elements zwei `div`-Elemente hinzu. The first should have the `class` set to `eyes left`, and the second should have the `class` set to `eyes right`. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515a4.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515a4.md index 2e8fc5db207..c91c540b2f3 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515a4.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515a4.md @@ -11,19 +11,19 @@ Give the `#white-paper` a `position` of `absolute`, a `top` of `250px`, and a `l # --hints-- -Your `#white-paper` selector should have a `position` property set to `absolute`. +Dein `#white-paper`-Selektor sollte eine `position`-Eigenschaft mit dem Wert `absolute` enthalten. ```js assert(new __helpers.CSSHelp(document).getStyle('#white-paper')?.position === 'absolute'); ``` -Your `#white-paper` selector should have a `top` property set to `250px`. +Dein `#white-paper`-Selektor sollte eine `top`-Eigenschaft von `250px` enthalten. ```js assert(new __helpers.CSSHelp(document).getStyle('#white-paper')?.top === '250px'); ``` -Your `#white-paper` selector should have a `left` property set to `-150px`. +Dein `#white-paper`-Selektor sollte eine `left`-Eigenschaft von `-150px` enthalten. ```js assert(new __helpers.CSSHelp(document).getStyle('#white-paper')?.left === '-150px'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515a9.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515a9.md index fc409e71b0c..1042c58d64e 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515a9.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515a9.md @@ -7,23 +7,23 @@ dashedName: step-52 # --description-- -Select the element with the id `blue-left` using an id selector. Give it a `width` of `500px` and a `height` of `300px`. +Select the element with the id `blue-left` using an id selector. Weise ihm eine `width` von `500px` und eine `height` von `300px` zu. # --hints-- -You should have a `#blue-left` selector. +Du solltest einen `#blue-left`-Selektor haben. ```js assert(new __helpers.CSSHelp(document).getStyle('#blue-left')); ``` -Your `#blue-left` selector should have a `width` property set to `500px`. +Dein `#blue-left`-Selektor sollte eine `width`-Eigenschaft auf `500px` gesetzt haben. ```js assert(new __helpers.CSSHelp(document).getStyle('#blue-left')?.width === '500px'); ``` -Your `#blue-left` selector should have a `height` property set to `300px`. +Dein `#blue-left`-Selektor sollte eine `height`-Eigenschaft auf `300px` gesetzt haben. ```js assert(new __helpers.CSSHelp(document).getStyle('#blue-left')?.height === '300px'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515af.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515af.md index 13ce240cbb0..9371a3e68fb 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515af.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515af.md @@ -7,24 +7,24 @@ dashedName: step-58 # --description-- -The `#eyes-div` element should hold some eyes. Add two `div` elements inside. Give the first a `class` of `eyes left`, and give the second a `class` of `eyes right`. +Das `#eyes-div`-Element sollte ein paar Augen enthalten. Füge zwei `div`-Elemente im Inneren hinzu. Weise dem ersten eine `class` von `eyes left` und dem zweiten eine `class` von `eyes right` zu. # --hints-- -You should have two `div` elements nested in your `#eyes-div` element. +Du solltest zwei `div`-Elemente in deinem `#eyes-div`-Element eingebettet haben. ```js assert(document.querySelectorAll('#eyes-div > div')?.length === 2); ``` -The first new `div` should have the `class` set to `eyes left`. +Das erste neue `div` sollte die `class` auf `eyes left` gesetzt haben. ```js assert(document.querySelectorAll('#eyes-div > div')?.[0]?.classList?.contains('eyes')); assert(document.querySelectorAll('#eyes-div > div')?.[0]?.classList?.contains('left')); ``` -The second new `div` should have the `class` set to `eyes right`. +Das zweite neue `div` sollte die `class` auf `eyes right` gesetzt haben. ```js assert(document.querySelectorAll('#eyes-div > div')?.[1]?.classList?.contains('eyes')); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515b0.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515b0.md index 00db418bb48..80ecd4affc8 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515b0.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515b0.md @@ -7,17 +7,17 @@ dashedName: step-59 # --description-- -Within the `#triangles` div, you will need to add the elements that will become your triangles. Create thirty `div` elements and give each of them the class `triangle`. +Du wirst innerhalb des `#triangles`-divs Elemente hinzufügen müssen, die deine Dreiecke werden sollen. Erstelle dreißig `div`-Elemente und weise jedem von ihnen die Klasse `triangle` zu. # --hints-- -You should have 30 `div` elements within your `#triangles` element. +Du solltest innerhalb deines `#triangles`-Elements 30 `div`-Elemente haben. ```js assert(document.querySelectorAll('#triangles > div')?.length === 30); ``` -All 30 of your new `div` elements should have the `class` set to `triangle`. +Alle 30 deiner neuen `div`-Elemente sollten die `class` auf `triangle` gesetzt haben. ```js const divDivDiv = document.querySelectorAll('#triangles > div'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515b1.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515b1.md index 73d874b70ce..4ef879c7535 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515b1.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515b1.md @@ -7,31 +7,31 @@ dashedName: step-60 # --description-- -Within the `#guitar` element, create three `div` elements. Give the first two a `class` value of `guitar`. Then give the first an `id` of `guitar-left`, and the second an `id` of `guitar-right`. Add an `id` to the third `div` with the value `guitar-neck`. +Erstelle drei `div`-Elemente innerhalb deines `#guitar`-Elements. Give the first two a `class` value of `guitar`. Weise dann dem ersten eine `id` von `guitar-left` und dem zweiten eine `id` von `guitar-right` zu. Füge eine `id` zum dritten `div` mit dem Wert `guitar-neck` hinzu. -The third `div` should not have the `guitar` class. +Das dritte `div` sollte keine `guitar`-Klasse enthalten. # --hints-- -You should have three new `div` elements within your `#guitar` element. +Du solltest drei neue `div`-Elemente innerhalb deines `#guitar`-Elements erstellen. ```js assert(document.querySelectorAll('#guitar > div')?.length === 3); ``` -Your first new `div` should have a `class` set to `guitar`. +Dein erstes neues `div` sollte eine `class` von `guitar` enthalten. ```js assert(document.querySelectorAll('#guitar > div')?.[0]?.classList?.contains('guitar')); ``` -Your first new `div` should have an `id` set to `guitar-left`. +Dein erstes neues `div` sollte eine `id` von `guitar-left` enthalten. ```js assert(document.querySelectorAll('#guitar > div')?.[0]?.getAttribute('id') === 'guitar-left'); ``` -Your second new `div` should have a `class` set to `guitar`. +Dein zweites neues `div` sollte eine `class` von `guitar` enthalten. ```js assert(document.querySelectorAll('#guitar > div')?.[1]?.classList?.contains('guitar')); @@ -43,13 +43,13 @@ Your second new `div` should have an `id` set to `guitar-right`. assert(document.querySelectorAll('#guitar > div')?.[1]?.getAttribute('id') === 'guitar-right'); ``` -Your third new `div` should have an `id` set to `guitar-neck`. +Dein drittes neues `div` sollte eine `id` von `guitar-neck` enthalten. ```js assert(document.querySelectorAll('#guitar > div')?.[2]?.getAttribute('id') === 'guitar-neck'); ``` -You should not give the third new `div` a `class` of `guitar`. +Du solltest dem dritten neuen `div` keine `class` von `guitar` zuweisen. ```js assert.notExists(document.querySelector('#guitar > #guitar-neck.guitar')); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515b6.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515b6.md index 41181b1f6fd..c89204f1634 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515b6.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515b6.md @@ -7,7 +7,7 @@ dashedName: step-65 # --description-- -The `#black-round-hat` element should probably be round. Give it a `border-radius` of `50%` to fix this. +Das `#black-round-hat`-Element sollte wahrscheinlich rund sein. Give it a `border-radius` of `50%` to fix this. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515c3.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515c3.md index 008272d626a..be12902bb94 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515c3.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60b69a66b6ddb80858c515c3.md @@ -7,7 +7,7 @@ dashedName: step-85 # --description-- -Give the `#guitar-neck` element a `z-index` of `3`. +Weise dem `#guitar-neck`-Element einen `z-index` von `3` zu. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60ba89123a445e0f5c9e4022.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60ba89123a445e0f5c9e4022.md index a2214f552e2..491307cdf50 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60ba89123a445e0f5c9e4022.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60ba89123a445e0f5c9e4022.md @@ -7,7 +7,7 @@ dashedName: step-74 # --description-- -Give your `.triangle` elements the correct color. Setze die `border-top-color`, `border-bottom-color` und `border-left-color` auf `transparent`. Setze die `border-right-color` auf `Gold`. +Weise deinen `.triangle`-Elementen die richtige Farbe zu. Setze die `border-top-color`, `border-bottom-color` und `border-left-color` auf `transparent`. Setze die `border-right-color` auf `Gold`. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60ba8913f1704c0f7a8906b8.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60ba8913f1704c0f7a8906b8.md index e6fb53808c6..b0b3d64189a 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60ba8913f1704c0f7a8906b8.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60ba8913f1704c0f7a8906b8.md @@ -7,11 +7,11 @@ dashedName: step-73 # --description-- -Style the border of your `.triangle` elements. Set the `border-style` to `solid` and the `border-width` to `42px 45px 45px 0`. +Gestalte den Rand deiner `.triangle`-Elemente. Setze die `border-style` auf `solid` und die `border-width` auf `42px 45px 45px 0`. # --hints-- -Your `.triangle` selector should have a `border-style` property set to `solid`. +Dein `.triangle`-Selektor sollte eine `border-style`-Eigenschaft auf `solid` gesetzt haben. ```js assert(new __helpers.CSSHelp(document).getStyle('.triangle')?.borderStyle === 'solid'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60ba8914bab51f0fb8228e9c.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60ba8914bab51f0fb8228e9c.md index 5dbbcba6015..539287bdce3 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60ba8914bab51f0fb8228e9c.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60ba8914bab51f0fb8228e9c.md @@ -7,11 +7,11 @@ dashedName: step-71 # --description-- -Target the element with the id `triangles` using an id selector. Set the `width` to `250px` and the `height` to `550px`. +Target the element with the id `triangles` using an id selector. Setze die `width` auf `250px` und die `height` auf `550px`. # --hints-- -You should add a `#triangles` selector. +Du solltest einen `#triangles`-Selektor hinzufügen. ```js assert(new __helpers.CSSHelp(document).getStyle('#triangles')); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60ba92987c1e4914dfa7a0b9.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60ba92987c1e4914dfa7a0b9.md index 4802680ab3c..d980e13e95f 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60ba92987c1e4914dfa7a0b9.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-intermediate-css-by-building-a-picasso-painting/60ba92987c1e4914dfa7a0b9.md @@ -7,11 +7,11 @@ dashedName: step-78 # --description-- -Give the `#guitar` rule a `z-index` of `3`. +Weise der `#guitar`-Regel einen `z-index` von `3` zu. # --hints-- -Your `#guitar` selector should have a `z-index` property set to `3`. +Dein `#guitar`-Selektor sollte eine `z-index`-Eigenschaft von `3` enthalten. ```js assert(new __helpers.CSSHelp(document).getStyle('#guitar')?.zIndex === '3'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd75ea7f663457612dba02.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd75ea7f663457612dba02.md index 9c45f45d7af..c428b612f5e 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd75ea7f663457612dba02.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd75ea7f663457612dba02.md @@ -25,7 +25,7 @@ ths?.forEach(th => { }); ``` -Each of your new `span` elements should have the `class` attribute set to `sr-only year`. +Jedes deiner neuen `span`-Elemente sollte das `class`-Attribut auf `sr-only year` gesetzt haben. ```js const ths = [...document.querySelectorAll('th')]; @@ -47,19 +47,19 @@ Your second `span` element should have the text `2020`. assert(document.querySelectorAll('th')?.[1]?.children?.[0]?.textContent === '2020'); ``` -Your third `span` element should have the text `2021`. +Dein drittes `span`-Element sollte den Text `2021` enthalten. ```js assert(document.querySelectorAll('th')?.[2]?.children?.[0]?.textContent === '2021'); ``` -Your third `th` element should have the `class` set to `current`. +Dein drittes `th`-Element sollte die `class` auf `current` gesetzt haben. ```js assert(document.querySelector('table')?.querySelectorAll('th')?.[2]?.classList?.contains('current')); ``` -Your `td` element should be empty. +Dein `td`-Element sollte leer sein. ```js assert(document.querySelector('table')?.querySelectorAll('td')?.[0]?.textContent === ''); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd77f7ad2aeb5ae34d07d6.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd77f7ad2aeb5ae34d07d6.md index 29e8100f6e1..b6e2677b7b8 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd77f7ad2aeb5ae34d07d6.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd77f7ad2aeb5ae34d07d6.md @@ -13,13 +13,13 @@ Following that, add three `td` elements with the following text (in order): `$54 # --hints-- -Your second `tr` should have a `th` element. +Dein zweites `tr` sollte ein `th`-Element enthalten. ```js assert(document.querySelector('tbody')?.querySelectorAll('tr')?.[1]?.querySelector('th')); ``` -Your `th` element should have the text `Checking Our primary transactional account.`. +Dein `th`-Element sollte den Text `Checking Our primary transactional account.` enthalten. ```js assert(document.querySelector('tbody')?.querySelectorAll('tr')?.[1]?.querySelector('th')?.innerText === 'Checking Our primary transactional account.'); @@ -31,37 +31,37 @@ You should wrap the text `Our primary transactional account.` in a `span` elemen assert(document.querySelector('tbody')?.querySelectorAll('tr')?.[1]?.querySelector('th > span')?.textContent === 'Our primary transactional account.'); ``` -Your `span` element should have the `class` attribute set to `description`. +Dein `span`-Element sollte das `class`-Attribut auf `description` gesetzt haben. ```js assert(document.querySelector('tbody')?.querySelectorAll('tr')?.[1]?.querySelector('th > span')?.classList?.contains('description')); ``` -You should have three `td` elements. +Du solltest drei `td`-Elemente haben. ```js assert(document.querySelector('tbody')?.querySelectorAll('tr')?.[1]?.querySelectorAll('td').length === 3); ``` -Your first `td` element should have the text `$54`. +Dein erstes `td`-Element sollte den Text `$54` enthalten. ```js assert(document.querySelector('tbody')?.querySelectorAll('tr')?.[1]?.querySelectorAll('td')?.[0]?.textContent === '$54'); ``` -Your second `td` element should have the text `$56`. +Dein zweites `td`-Element sollte den Text `$56` enthalten. ```js assert(document.querySelector('tbody')?.querySelectorAll('tr')?.[1]?.querySelectorAll('td')?.[1]?.textContent === '$56'); ``` -Your third `td` element should have the text `$53`. +Dein drittes `td`-Element sollte den Text `$53` enthalten. ```js assert(document.querySelector('tbody')?.querySelectorAll('tr')?.[1]?.querySelectorAll('td')?.[2]?.textContent === '$53'); ``` -Your third `td` element should have the `class` set to `current`. +Dein drittes `td`-Element sollte die `class` auf `current` gesetzt haben. ```js assert(document.querySelector('tbody')?.querySelectorAll('tr')?.[1]?.querySelectorAll('td')?.[2]?.classList?.contains('current')); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd94056e0355785fbba4d3.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd94056e0355785fbba4d3.md index ebe5c00a865..a652ef0f0c7 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd94056e0355785fbba4d3.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd94056e0355785fbba4d3.md @@ -7,19 +7,19 @@ dashedName: step-22 # --description-- -Within the second `tr`, add a `th` element with the text `Expenses Annual anticipated expenses, such as payroll.`. Wrap that text, except for `Expenses`, within a `span` element with the `class` set to `description`. +Füge innerhalb des zweiten `tr` ein `th`-Element mit dem Text `Expenses Annual anticipated expenses, such as payroll.` hinzu. Wrap that text, except for `Expenses`, within a `span` element with the `class` set to `description`. Add three `td` elements below that, and give them the following text, in order: `$200`, `$300`, and `$400`. Give the third `td` element a `class` set to `current`. # --hints-- -Your second `tr` should have a `th` element. +Dein zweites `tr` sollte ein `th`-Element enthalten. ```js assert(document.querySelectorAll('table')?.[1]?.querySelector('tbody')?.querySelectorAll('tr')?.[1]?.querySelector('th')); ``` -Your `th` element should have the text `Expenses Annual anticipated expenses, such as payroll.`. +Dein `th`-Element sollte den Text `Expenses Annual anticipated expenses, such as payroll.` enthalten. ```js assert(document.querySelectorAll('table')?.[1]?.querySelector('tbody')?.querySelectorAll('tr')?.[1]?.querySelector('th')?.innerText === 'Expenses Annual anticipated expenses, such as payroll.'); @@ -31,37 +31,37 @@ You should wrap the text `Annual anticipated expenses, such as payroll.` in a `s assert(document.querySelectorAll('table')?.[1]?.querySelector('tbody')?.querySelectorAll('tr')?.[1]?.querySelector('th > span')?.textContent === 'Annual anticipated expenses, such as payroll.'); ``` -Your `span` element should have the `class` attribute set to `description`. +Dein `span`-Element sollte das `class`-Attribut auf `description` gesetzt haben. ```js assert(document.querySelectorAll('table')?.[1]?.querySelector('tbody')?.querySelectorAll('tr')?.[1]?.querySelector('th > span')?.classList?.contains('description')); ``` -You should have three `td` elements. +Du solltest drei `td`-Elemente haben. ```js assert(document.querySelectorAll('table')?.[1]?.querySelector('tbody')?.querySelectorAll('tr')?.[1]?.querySelectorAll('td').length === 3); ``` -Your first `td` element should have the text `$200`. +Dein erstes `td`-Element sollte den Text `$200` enthalten. ```js assert(document.querySelectorAll('table')?.[1]?.querySelector('tbody')?.querySelectorAll('tr')?.[1]?.querySelectorAll('td')?.[0]?.textContent === '$200'); ``` -Your second `td` element should have the text `$300`. +Dein zweites `td`-Element sollte den Text `$300` enthalten. ```js assert(document.querySelectorAll('table')?.[1]?.querySelector('tbody')?.querySelectorAll('tr')?.[1]?.querySelectorAll('td')?.[1]?.textContent === '$300'); ``` -Your third `td` element should have the text `$400`. +Dein drittes `td`-Element sollte den Text `$400` enthalten. ```js assert(document.querySelectorAll('table')?.[1]?.querySelector('tbody')?.querySelectorAll('tr')?.[1]?.querySelectorAll('td')?.[2]?.textContent === '$400'); ``` -Your third `td` element should have the `class` set to `current`. +Dein drittes `td`-Element sollte die `class` auf `current` gesetzt haben. ```js assert(document.querySelectorAll('table')?.[1]?.querySelector('tbody')?.querySelectorAll('tr')?.[1]?.querySelectorAll('td')?.[2]?.classList?.contains('current')); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd986ddbcbd47ba8fbc5ec.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd986ddbcbd47ba8fbc5ec.md index f19228039b9..d3d4c1bb916 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd986ddbcbd47ba8fbc5ec.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd986ddbcbd47ba8fbc5ec.md @@ -7,7 +7,7 @@ dashedName: step-23 # --description-- -Within the third `tr`, add a `th` element with the text `Credit The outstanding balance on our credit card.`. Wrap that text, except for `Credit`, within a `span` element with the `class` set to `description`. +Füge innerhalb des dritten `tr` ein `th`-Element mit dem Text `Credit The outstanding balance on our credit card.` hinzu. Wrap that text, except for `Credit`, within a `span` element with the `class` set to `description`. Add three `td` elements below that, and give them the following text, in order: `$50`, `$50`, and `$75`. Give the third `td` element a `class` set to `current`. @@ -31,13 +31,13 @@ You should wrap the text `The outstanding balance on our credit card.` in a `spa assert(document.querySelectorAll('table')?.[1]?.querySelector('tbody')?.querySelectorAll('tr')?.[2]?.querySelector('th > span')?.textContent === 'The outstanding balance on our credit card.'); ``` -Your `span` element should have the `class` attribute set to `description`. +Dein `span`-Element sollte das `class`-Attribut auf `description` gesetzt haben. ```js assert(document.querySelectorAll('table')?.[1]?.querySelector('tbody')?.querySelectorAll('tr')?.[2]?.querySelector('th > span')?.classList?.contains('description')); ``` -You should have three `td` elements. +Du solltest drei `td`-Elemente haben. ```js assert(document.querySelectorAll('table')?.[1]?.querySelector('tbody')?.querySelectorAll('tr')?.[2]?.querySelectorAll('td').length === 3); @@ -49,19 +49,19 @@ Your first `td` element should have the text `$50`. assert(document.querySelectorAll('table')?.[1]?.querySelector('tbody')?.querySelectorAll('tr')?.[2]?.querySelectorAll('td')?.[0]?.textContent === '$50'); ``` -Your second `td` element should have the text `$50`. +Dein zweites `td`-Element sollte den Text `$50` enthalten. ```js assert(document.querySelectorAll('table')?.[1]?.querySelector('tbody')?.querySelectorAll('tr')?.[2]?.querySelectorAll('td')?.[1]?.textContent === '$50'); ``` -Your third `td` element should have the text `$75`. +Dein drittes `td`-Element sollte den Text `$75` enthalten. ```js assert(document.querySelectorAll('table')?.[1]?.querySelector('tbody')?.querySelectorAll('tr')?.[2]?.querySelectorAll('td')?.[2]?.textContent === '$75'); ``` -Your third `td` element should have the `class` set to `current`. +Dein drittes `td`-Element sollte die `class` auf `current` gesetzt haben. ```js assert(document.querySelectorAll('table')?.[1]?.querySelector('tbody')?.querySelectorAll('tr')?.[2]?.querySelectorAll('td')?.[2]?.classList?.contains('current')); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd9ad665a4a282c8106be3.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd9ad665a4a282c8106be3.md index 795405057af..c2f7d04c284 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd9ad665a4a282c8106be3.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd9ad665a4a282c8106be3.md @@ -7,23 +7,23 @@ dashedName: step-26 # --description-- -Within your `thead`, create a `tr` element. In that, add a `td` and three `th` elements. Within each of the `th` elements, add a `span` element with the `class` set to `sr-only` and the following text, in order: `2019`, `2020`, and `2021`. +Erstelle innerhalb deines `thead` ein `tr`-Element. In that, add a `td` and three `th` elements. Within each of the `th` elements, add a `span` element with the `class` set to `sr-only` and the following text, in order: `2019`, `2020`, and `2021`. # --hints-- -Your `thead` element should have a `tr` element. +Dein `thead`-Element sollte ein `tr`-Element enthalten. ```js assert(document.querySelectorAll('table')?.[2]?.querySelector('thead')?.children?.[0]?.localName === 'tr'); ``` -Your `tr` element should have a `td` element as the first child. +Dein `tr`-Element sollte ein `td`-Element als erstes untergeordnetes Element enthalten. ```js assert(document.querySelectorAll('table')?.[2]?.querySelector('tr')?.children?.[0]?.localName === 'td'); ``` -Your `tr` element should have three `th` elements, after the `td` element. +Dein `tr`-Element sollte drei `th`-Elemente nach dem `td`-Element haben. ```js assert(document.querySelectorAll('table')?.[2]?.querySelector('tr')?.children?.[1]?.localName === 'th'); @@ -31,7 +31,7 @@ assert(document.querySelectorAll('table')?.[2]?.querySelector('tr')?.children?.[ assert(document.querySelectorAll('table')?.[2]?.querySelector('tr')?.children?.[3]?.localName === 'th'); ``` -Each of your `th` elements should have a `span` element. +Jedes deiner `th`-Elemente sollte ein `span`-Element enthalten. ```js const ths = [...document.querySelectorAll('table')?.[2]?.querySelectorAll('th')]; @@ -50,25 +50,25 @@ ths?.forEach(th => { }); ``` -Your first `span` element should have the text `2019`. +Dein erstes `span`-Element sollte den Text `2019` enthalten. ```js assert(document.querySelectorAll('table')?.[2]?.querySelectorAll('th')?.[0]?.children?.[0]?.textContent === '2019'); ``` -Your second `span` element should have the text `2020`. +Dein zweites `span`-Element sollte den Text `2020` enthalten. ```js assert(document.querySelectorAll('table')?.[2]?.querySelectorAll('th')?.[1]?.children?.[0]?.textContent === '2020'); ``` -Your third `span` element should have the text `2021`. +Dein drittes `span`-Element sollte den Text `2021` enthalten. ```js assert(document.querySelectorAll('table')?.[2]?.querySelectorAll('th')?.[2]?.children?.[0]?.textContent === '2021'); ``` -Your `td` element should be empty. +Dein `td`-Element sollte leer sein. ```js assert(document.querySelectorAll('table')?.[2]?.querySelectorAll('td')?.[0]?.textContent === ''); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fdac1e31692f9a9ad97295.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fdac1e31692f9a9ad97295.md index 5dcd59cf798..e7d50103a8a 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fdac1e31692f9a9ad97295.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fdac1e31692f9a9ad97295.md @@ -7,19 +7,19 @@ dashedName: step-31 # --description-- -The CSS `clip` property is used to define the visible portions of an element. Set the `span[class~="sr-only"]` selector to have a `clip` property of `rect(1px, 1px, 1px, 1px)`. +Die `clip`-CSS-Eigenschaft wird verwendet, um die sichtbaren Teile eines Elements zu definieren. Set the `span[class~="sr-only"]` selector to have a `clip` property of `rect(1px, 1px, 1px, 1px)`. -The `clip-path` property determines the shape the `clip` property should take. Set the `clip-path` property to the value of `inset(50%)`, forming the clip-path into a rectangle within the element. +Die `clip-path`-Eigenschaft bestimmt die Form, die die `clip`-Eigenschaft annehmen soll. Set the `clip-path` property to the value of `inset(50%)`, forming the clip-path into a rectangle within the element. # --hints-- -Your `span[class~="sr-only"]` selector should have a `clip` property set to `rect(1px, 1px, 1px, 1px)`. +Dein `span[class~="sr-only"]`-Selektor sollte eine `clip`-Eigenschaft von `rect(1px, 1px, 1px, 1px)` enthalten. ```js assert(new __helpers.CSSHelp(document).getStyle('span[class~="sr-only"]')?.getPropertyValue('clip') === 'rect(1px, 1px, 1px, 1px)'); ``` -Your `span[class~="sr-only"]` selector should have a `clip-path` property set to `inset(50%)`. +Dein `span[class~="sr-only"]`-Selektor sollte eine `clip-path`-Eigenschaft auf `inset(50%)` gesetzt haben. ```js assert(new __helpers.CSSHelp(document).getStyle('span[class~="sr-only"]')?.getPropertyValue('clip-path') === 'inset(50%)'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fdaea3999cb19d76ce717b.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fdaea3999cb19d76ce717b.md index 886f0347b91..d46f7beb5ec 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fdaea3999cb19d76ce717b.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fdaea3999cb19d76ce717b.md @@ -7,7 +7,7 @@ dashedName: step-32 # --description-- -Now you need to size these elements down. Give your `span[class~="sr-only"]` selector a `width` and `height` property set to `1px`. +Jetzt musst du diese Elemente verkleinern. Weise deinem `span[class~="sr-only"]`-Selektor eine `width`- und `height`-Eigenschaft mit dem Wert `1px` zu. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fdaf9ff894b6a084ecdc1b.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fdaf9ff894b6a084ecdc1b.md index 0fc69c3e2f0..32c8c368652 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fdaf9ff894b6a084ecdc1b.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fdaf9ff894b6a084ecdc1b.md @@ -11,13 +11,13 @@ To prevent the text content from overflowing, give your `span[class~="sr-only"]` # --hints-- -Your `span[class~="sr-only"]` selector should have an `overflow` property set to `hidden`. +Dein `span[class~="sr-only"]`-Selektor sollte eine `overflow`-Eigenschaft auf `hidden` gesetzt haben. ```js assert(new __helpers.CSSHelp(document).getStyle('span[class~="sr-only"]')?.getPropertyValue('overflow') === 'hidden'); ``` -Your `span[class~="sr-only"]` selector should have a `white-space` property set to `nowrap`. +Dein `span[class~="sr-only"]`-Selektor sollte eine `white-space`-Eigenschaft auf `nowrap` gesetzt haben. ```js assert(new __helpers.CSSHelp(document).getStyle('span[class~="sr-only"]')?.getPropertyValue('white-space') === 'nowrap'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fdb04d9939f0a26ca51c2b.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fdb04d9939f0a26ca51c2b.md index b5280731b35..927db880f8f 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fdb04d9939f0a26ca51c2b.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fdb04d9939f0a26ca51c2b.md @@ -7,29 +7,29 @@ dashedName: step-35 # --description-- -Time to style your table heading. Create an `h1` selector. Give it a `max-width` property set to `37.25rem`, a `margin` property set to `0 auto`, and a `padding` property set to `1.5rem 1.25rem`. +Time to style your table heading. Erstelle einen `h1`-Selektor. Weise ihm eine `max-width`-Eigenschaft von `37.25rem`, eine `margin`-Eigenschaft von `0 auto` und eine `padding`-Eigenschaft von `1.5rem 1.25rem` zu. # --hints-- -You should have an `h1` selector. +Du solltest einen `h1`-Selektor haben. ```js assert(new __helpers.CSSHelp(document).getStyle('h1')); ``` -Your `h1` selector should have a `max-width` property set to `37.25rem`. +Dein `h1`-Selektor sollte eine `max-width`-Eigenschaft von `37.25rem` enthalten. ```js assert(new __helpers.CSSHelp(document).getStyle('h1')?.getPropertyValue('max-width') === '37.25rem'); ``` -Your `h1` selector should have a `margin` property set to `0 auto`. +Dein `h1`-Selektor sollte eine `margin`-Eigenschaft von `0 auto` enthalten. ```js assert(new __helpers.CSSHelp(document).getStyle('h1')?.getPropertyValue('margin') === '0px auto'); ``` -Your `h1` selector should have a `padding` property set to `1.5rem 1.25rem`. +Dein `h1`-Selektor sollte eine `padding`-Eigenschaft von `1.5rem 1.25rem` enthalten. ```js assert(new __helpers.CSSHelp(document).getStyle('h1')?.getPropertyValue('padding') === '1.5rem 1.25rem'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/62017b6f47454059bf2d3bd1.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/62017b6f47454059bf2d3bd1.md index 824d407331d..5fe5093008f 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/62017b6f47454059bf2d3bd1.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/62017b6f47454059bf2d3bd1.md @@ -7,13 +7,13 @@ dashedName: step-46 # --description-- -Before you start diving in to the table itself, your `span` elements are currently bolded. Create a `span:not(.sr-only)` selector and give it a `font-weight` property set to `normal`. +Bevor du dich mit der Tabelle beschäftigst: Deine `span`-Elemente sind derzeit fett gedruckt. Create a `span:not(.sr-only)` selector and give it a `font-weight` property set to `normal`. The `:not()` pseudo-selector is used to target all elements that do not match the selector - in this case, any of your `span` elements that do not have the `sr-only` class. This ensures that your earlier rules for the `span[class~="sr-only"]` selector are not overwritten. # --hints-- -You should have a `span:not(.sr-only)` selector. +Du solltest einen `span:not(.sr-only)`-Selektor haben. ```js assert(new __helpers.CSSHelp(document).getStyle('span:not(.sr-only)')); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/6201995d9ab88e80f1989dce.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/6201995d9ab88e80f1989dce.md index e658f9cc03a..7cc6781a2dc 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/6201995d9ab88e80f1989dce.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/6201995d9ab88e80f1989dce.md @@ -11,13 +11,13 @@ The `:nth-of-type()` pseudo-selector is used to target specific elements based o # --hints-- -You should have a `tr.total td:nth-of-type(3)` selector. +Du solltest einen `tr.total td:nth-of-type(3)`-Selektor haben. ```js assert(new __helpers.CSSHelp(document).getStyle('tr.total td:nth-of-type(3)')); ``` -Your `tr.total td:nth-of-type(3)` selector should have a `padding-right` property set to `0.5rem`. +Dein `tr.total td:nth-of-type(3)`-Selektor sollte eine `padding-right`-Eigenschaft von `0.5rem` enthalten. ```js assert(new __helpers.CSSHelp(document).getStyle('tr.total td:nth-of-type(3)')?.getPropertyValue('padding-right') === '0.5rem'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612e813b3ba67633222cbe54.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612e813b3ba67633222cbe54.md index 093cf8a583e..4402b2130b0 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612e813b3ba67633222cbe54.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612e813b3ba67633222cbe54.md @@ -18,42 +18,42 @@ const key = document.querySelectorAll('.key')?.[1]; assert(key?.className?.includes('black--key')); ``` -Your third `.key` should have `black--key` in the `class`. +Dein dritter `.key` sollte `black--key` in der `class` haben. ```js const third = document.querySelectorAll('.key')?.[2]; assert(third?.classList?.contains('black--key')); ``` -Your fifth `.key` should have `black--key` in the `class`. +Dein fünfter `.key` sollte `black--key` in der `class` haben. ```js const fifth = document.querySelectorAll('.key')?.[4]; assert(fifth?.classList?.contains('black--key')); ``` -Your sixth `.key` should have `black--key` in the `class`. +Dein sechster `.key` sollte `black--key` in der `class` haben. ```js const sixth = document.querySelectorAll('.key')?.[5]; assert(sixth?.classList?.contains('black--key')); ``` -Your seventh `.key` should have `black--key` in the `class`. +Dein siebter `.key` sollte `black--key` in der `class` haben. ```js const seventh = document.querySelectorAll('.key')?.[6]; assert(seventh?.classList?.contains('black--key')); ``` -You should have five `.black--key` elements. +Du solltest fünf `.black--key`-Elemente haben. ```js const blackKeys = document.querySelectorAll('.black--key'); assert(blackKeys?.length === 5); ``` -You should have seven `.key` elements. +Du solltest sieben `.key`-Elemente haben. ```js const keys = document.querySelectorAll('.key'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612e96fc87fe8e44f69f7ec5.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612e96fc87fe8e44f69f7ec5.md index 9774fd343fb..ad69d4184ac 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612e96fc87fe8e44f69f7ec5.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612e96fc87fe8e44f69f7ec5.md @@ -7,7 +7,7 @@ dashedName: step-13 # --description-- -Time to style the keys. Visiere unter der `#piano`-Regel das `.keys`-Element mit einem `class`-Selektor an. Weise der neuen Regel eine `background-color`-Eigenschaft von `#040404`, eine `width`-Eigenschaft von `949px` und eine `height`-Eigenschaft von `180px` zu. +Es ist Zeit, die Tasten zu gestalten. Visiere unter der `#piano`-Regel das `.keys`-Element mit einem `class`-Selektor an. Weise der neuen Regel eine `background-color`-Eigenschaft von `#040404`, eine `width`-Eigenschaft von `949px` und eine `height`-Eigenschaft von `180px` zu. # --hints-- @@ -23,13 +23,13 @@ Dein `.keys`-Selektor sollte eine `background-color`-Eigenschaft von `#040404` e assert(new __helpers.CSSHelp(document).getStyle('.keys')?.backgroundColor === 'rgb(4, 4, 4)'); ``` -Your `.keys` selector should have the `width` property set to `949px`. +Dein `.keys`-Selektor sollte die `width`-Eigenschaft auf `949px` gesetzt haben. ```js assert(new __helpers.CSSHelp(document).getStyle('.keys')?.width === '949px'); ``` -Your `.keys` selector should have a `height` property set to `180px`. +Dein `.keys`-Selektor sollte eine `height`-Eigenschaft von `180px` enthalten. ```js assert(new __helpers.CSSHelp(document).getStyle('.keys')?.height === '180px'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612eb4893b63c75bb9251ddf.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612eb4893b63c75bb9251ddf.md index 569d7444faf..78dc2490285 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612eb4893b63c75bb9251ddf.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612eb4893b63c75bb9251ddf.md @@ -7,7 +7,7 @@ dashedName: step-22 # --description-- -Beginne mit der Gestaltung des Logos, indem du einen `.logo`-Selektor erstellst. Set the `width` to `200px`, a `position` of `absolute` and a `top` set to `23px`. +Beginne mit der Gestaltung des Logos, indem du einen `.logo`-Selektor erstellst. Setze die `width` auf `200px`, `position` auf `absolute` und `top` auf `23px`. # --hints-- diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612eb75153591b5e3b1ab65e.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612eb75153591b5e3b1ab65e.md index 33823ed3fe4..18a32e4931d 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612eb75153591b5e3b1ab65e.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612eb75153591b5e3b1ab65e.md @@ -7,11 +7,11 @@ dashedName: step-23 # --description-- -The `img` element needs its parent to have a `position` set as a point of reference. Set the `position` of the `#piano` selector to `relative`. +Das `img`-Element benötigt eine `position` als Referenzpunkt für das Elternelement. Setze die `position` vom `#piano`-Selektor auf `relative`. # --hints-- -Your `#piano` selector should have a `position` property set to `relative`. +Dein `#piano`-Selektor sollte eine `position`-Eigenschaft mit dem Wert `relative` enthalten. ```js assert(new __helpers.CSSHelp(document).getStyle('#piano')?.position === 'relative'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612ebedec97e096c8bf64999.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612ebedec97e096c8bf64999.md index 38bc23b4843..dbab9bc021f 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612ebedec97e096c8bf64999.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612ebedec97e096c8bf64999.md @@ -12,7 +12,7 @@ Within the `@media` query, add a `.keys` selector and set the `width` to `318px` # --hints-- -Your `@media` rule should have a `.keys` selector. +Deine `@media`-Regel sollte einen `.keys`-Selektor enthalten. ```js const rules = new __helpers.CSSHelp(document).getRuleListsWithinMedia('(max-width: 768px)'); @@ -20,7 +20,7 @@ const keys = rules?.find(rule => rule.selectorText === '.keys'); assert(keys); ``` -Your new `.keys` selector should have a `width` of `318px`. +Dein neuer `.keys`-Selektor sollte eine `width` von `318px` enthalten. ```js const rules = new __helpers.CSSHelp(document).getRuleListsWithinMedia('(max-width: 768px)'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad6996c.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad6996c.md index 4923f2eaea9..02acafcc3d9 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad6996c.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad6996c.md @@ -7,15 +7,15 @@ dashedName: step-3 # --description-- -In the CSS box model, every HTML element is treated as a box with four areas. +In dem CSS-Box-Modell wird jedes HTML-Element wie eine Box mit vier Bereichen behandelt. -Imagine you receive a box from your favorite online retailer -- the content is the item in the box, or in our case, a header, paragraph, or image element. +Stelle dir vor, dass du eine Box von deinem Lieblings-Onlinehändler erhältst - der Inhalt ist der Artikel in der Box, oder in unserem Fall, ein Header, Paragraph oder Bildelement. -Change the `src` attribute in the `` from `https://cdn.freecodecamp.org/curriculum/css-box-model/diagram-1.png` to `https://cdn.freecodecamp.org/curriculum/css-box-model/diagram-2.png`. +Ändere das `src`-Attribut im `` von `https://cdn.freecodecamp.org/curriculum/css-box-model/diagram-1.png` zu `https://cdn.freecodecamp.org/curriculum/css-box-model/diagram-2.png`. # --hints-- -The `img` element should have a `src` of `https://cdn.freecodecamp.org/curriculum/css-box-model/diagram-2.png` +Das `img`-Element sollte eine `src` von `https://cdn.freecodecamp.org/curriculum/css-box-model/diagram-2.png` enthalten. ```js assert(document.querySelector('img').getAttribute('src') === 'https://cdn.freecodecamp.org/curriculum/css-box-model/diagram-2.png'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69973.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69973.md index 4805bac22b7..8aad9e2c0d5 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69973.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69973.md @@ -7,7 +7,7 @@ dashedName: step-10 # --description-- -Change the `background-color` of the canvas to `#4d0f00`. +Ändere die `background-color` der Canvas auf `#4d0f00`. # --hints-- @@ -18,7 +18,7 @@ const hasBackground = new __helpers.CSSHelp(document).getCSSRules().some(x => x. assert(hasBackground); ``` -Your `.canvas` element should have a `background-color` of `#4d0f00`. +Dein `.canvas`-Element sollte eine `background-color` von `#4d0f00` enthalten. ```js const canvasBackground = new __helpers.CSSHelp(document).getStyle('.canvas')?.getPropertyValue('background-color'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69976.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69976.md index ae523a3919f..d67723a64ad 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69976.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69976.md @@ -9,18 +9,18 @@ dashedName: step-13 The frame is much too wide. -In `.frame`, set its `width` to 500 pixels. +Setze seine `width` in `.frame` auf 500 Pixel. # --hints-- -You should set the `width` property to `500px`. +Du solltest die `width`-Eigenschaft auf `500px` setzen. ```js const widthFilter = new __helpers.CSSHelp(document).getCSSRules().filter(x => x.style.width === '500px'); assert(widthFilter.length === 2); ``` -Your `.frame` element should have a `width` of `500px`. +Dein `.frame`-Element sollte eine `width` von `500px` enthalten. ```js const frameWidth = new __helpers.CSSHelp(document).getStyle('.frame')?.getPropertyValue('width'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69979.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69979.md index 3229ba06a14..132c4f5b50d 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69979.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69979.md @@ -9,17 +9,17 @@ dashedName: step-16 Add a new `div` element inside of your `.canvas` element. -Give the new `div` the `class` attribute with a value of `one`. This will be your first rectangle. +Weise dem neuen `div` das `class`-Attribut mit einem Wert von `one` zu. Dies wird dein erstes Rechteck sein. # --hints-- -You should create a new `div` element. +Du solltest ein neues `div`-Element erstellen. ```js assert(document.querySelectorAll('div').length === 3); ``` -You should nest the new `div` element within your `.canvas` element. +Du solltest das neue `div`-Element in dein `.canvas`-Element einbetten. ```js assert(document.querySelector('.canvas').children[0].tagName === 'DIV'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad6997b.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad6997b.md index d0ede4f5e3e..877d319e27d 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad6997b.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad6997b.md @@ -7,18 +7,18 @@ dashedName: step-18 # --description-- -Now set the `height` for `.one` to 150 pixels. +Setze nun die `height` für `.one` auf 150 Pixel. # --hints-- -You should set the `height` property to `150px`. +Du solltest die `height`-Eigenschaft auf `150px` setzen. ```js const hasHeight = new __helpers.CSSHelp(document).getCSSRules().some(x => x.style.height === '150px'); assert(hasHeight); ``` -Your `.one` element should have a `height` value of `150px`. +Dein `.one`-Element sollte einen `height`-Wert von `150px` enthalten. ```js const oneHeight = new __helpers.CSSHelp(document).getStyle('.one')?.getPropertyValue('height'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad6997e.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad6997e.md index d009e1c6e16..5430960934e 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad6997e.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad6997e.md @@ -13,14 +13,14 @@ Add `padding` of `1px` to the `.canvas` element to give the `.one` element somet # --hints-- -You should set the `padding` property to `1px`. +Du solltest die `padding`-Eigenschaft auf `1px` setzen. ```js const hasPadding = new __helpers.CSSHelp(document).getCSSRules().some(x => x.style.padding === '1px'); assert(hasPadding); ``` -Your `.canvas` element should have a `padding` value of `1px`. +Dein `.canvas`-Element sollte einen `padding`-Wert von `1px` enthalten. ```js const canvasPadding = new __helpers.CSSHelp(document).getStyle('.canvas')?.getPropertyValue('padding'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69980.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69980.md index 961dbc9fcba..8892759d21e 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69980.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69980.md @@ -7,29 +7,29 @@ dashedName: step-23 # --description-- -Add another `div` with a `class` value of `two` just below your `one` element. This will be your second rectangle. +Füge direkt unter deinem `one`-Element ein weiteres `div` mit einem `class`-Wert von `two` hinzu. Dies wird dein zweites Rechteck sein. # --hints-- -You should not change the existing `.one` element. +Du solltest das vorhandene `.one`-Element nicht ändern. ```js assert(document.querySelectorAll('.one').length === 1); ``` -You should have a second `div` element in your `.canvas` element. +Du solltest ein zweites `div`-Element innerhalb deines `.canvas`-Elements haben. ```js assert(document.querySelector('.canvas').children[1].tagName === 'DIV'); ``` -Your second `div` element should have a `class` value of `two`. +Dein zweites `div`-Element sollte einen `class`-Wert von `two` enthalten. ```js assert(document.querySelector('.canvas').children[1].className.split(' ').includes('two')); ``` -Your `.two` element should come after your `.one` element. +Dein `.two`-Element sollte nach deinem `.one`-Element stehen. ```js assert(document.querySelector('.two').previousElementSibling.className.split(' ').includes('one')); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69988.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69988.md index ec027ff84cd..473cf1cbd3c 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69988.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69988.md @@ -7,18 +7,18 @@ dashedName: step-30 # --description-- -Set the `height` of `.three` to `28%`. +Setze die `height` von `.three` auf `28%`. # --hints-- -You should set the `height` property to `28%`. +Du solltest die `height`-Eigenschaft auf `28%` setzen. ```js const hasHeight = new __helpers.CSSHelp(document).getCSSRules().some(x => x.style.height === '28%'); assert(hasHeight); ``` -Your `.three` element should have a `height` value of `28%`. +Dein `.three`-Element sollte einen `height`-Wert von `28%` enthalten. ```js const threeHeight = new __helpers.CSSHelp(document).getStyle('.three')?.getPropertyValue('height'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad6998d.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad6998d.md index b7d2bf9973b..cab996597e2 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad6998d.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad6998d.md @@ -11,7 +11,7 @@ Create a rule that targets both `.one` and `.two` and increase their `blur` effe # --hints-- -You should have a `.one, .two` selector list. +Du solltest eine `.one, .two`-Selektorliste haben. ```js const oneTwo = new __helpers.CSSHelp(document).getStyle('.one, .two'); @@ -25,7 +25,7 @@ const hasFilter = new __helpers.CSSHelp(document).getCSSRules().some(x => x.styl assert(hasFilter) ``` -Your `.one` element should have a `filter` value of `blur(1px)`. +Dein `.one`-Element sollte einen `filter`-Wert von `blur(1px)` enthalten. ```js const one = document.querySelector('.one'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69992.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69992.md index baa8b14da7d..f485ce49a10 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69992.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69992.md @@ -7,20 +7,20 @@ dashedName: step-40 # --description-- -The corners of each rectangle are still too sharp. +Die Ecken jedes Rechtecks sind immer noch zu scharf. -Round each corner of the `.one` element by 9 pixels, using the `border-radius` property. +Runde jede Ecke des `.one`-Elements um 9 Pixel ab, indem du die `border-radius`-Eigenschaft verwendest. # --hints-- -You should set the `border-radius` property to `9px`. +Du solltest die `border-radius`-Eigenschaft auf `9px` setzen. ```js const hasBorderRadius = new __helpers.CSSHelp(document).getCSSRules().some(x => x.style['border-radius'] === '9px'); assert(hasBorderRadius); ``` -Your `.one` element should have a `border-radius` value of `9px`. +Dein `.one`-Element sollte einen `border-radius`-Wert von `9px` enthalten. ```js const oneBorderRadius =new __helpers.CSSHelp(document).getStyle('.one')?.getPropertyValue('border-radius'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f34948891834dd77655a6.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f34948891834dd77655a6.md index 899df159155..1f92b5a165d 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f34948891834dd77655a6.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f34948891834dd77655a6.md @@ -7,29 +7,29 @@ dashedName: step-3 # --description-- -Add a second `p` element with the text `Serving size 2/3 cup (55g)`. +Füge ein zweites `p`-Element mit dem Text `Serving size 2/3 cup (55g)` hinzu. # --hints-- -You should have a second `p` element. +Du solltest ein zweites `p`-Element haben. ```js assert(document.querySelectorAll('p')?.length === 2); ``` -Your second `p` element should be within your `body` element. +Dein zweites `p`-Element sollte sich innerhalb deines `body`-Elements befinden. ```js assert(document.querySelectorAll('p')?.[1]?.parentElement?.localName === 'body'); ``` -Your second `p` element should come after your existing `p` element. +Dein zweites `p`-Element sollte nach deinem vorhandenen `p`-Element stehen. ```js assert(document.querySelectorAll('p')?.[1]?.previousElementSibling?.localName === 'p'); ``` -Your second `p` element should have the text `Serving size 2/3 cup (55g)`. +Dein zweites `p`-Element sollte den Text `Serving size 2/3 cup (55g)` enthalten. ```js assert(document.querySelectorAll('p')?.[1]?.innerText === 'Serving size 2/3 cup (55g)'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f39d7da41b15851fa3fb9.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f39d7da41b15851fa3fb9.md index 5fc95a009df..893702bcc3e 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f39d7da41b15851fa3fb9.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f39d7da41b15851fa3fb9.md @@ -7,17 +7,17 @@ dashedName: step-10 # --description-- -Give your `.label` selector a `margin` property set to `20px auto`, and a `padding` property set to `0 7px`. +Weise deinem `.label`-Selektor eine `margin`-Eigenschaft von `20px auto` und eine `padding`-Eigenschaft von `0 7px` zu. # --hints-- -Your `.label` selector should have a `margin` property set to `20px auto`. +Dein `.label`-Selektor sollte eine `margin`-Eigenschaft auf `20px auto` gesetzt haben. ```js assert(new __helpers.CSSHelp(document).getStyle('.label')?.margin === '20px auto'); ``` -Your `.label` selector should have a `padding` property set to `0 7px`. +Dein `.label`-Selektor sollte eine `padding`-Eigenschaft auf `0 7px` gesetzt haben. ```js assert(new __helpers.CSSHelp(document).getStyle('.label')?.padding === '0px 7px'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f4f9e4a40566b776a8f38.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f4f9e4a40566b776a8f38.md index a2d0c64f4f5..b8576c2b0bb 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f4f9e4a40566b776a8f38.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f4f9e4a40566b776a8f38.md @@ -7,11 +7,11 @@ dashedName: step-27 # --description-- -Create a new `.large` selector and give it a `height` property set to `10px`. Also create an `.large, .medium` selector and set the `background-color` property to `black`. +Create a new `.large` selector and give it a `height` property set to `10px`. Erstelle auch einen `.large, .medium`-Selektor und setze die `background-color`-Eigenschaft auf `black`. # --hints-- -You should have a new `.large` selector. +Du solltest einen neuen `.large`-Selektor haben. ```js assert(new __helpers.CSSHelp(document).getStyle('.large')); @@ -23,13 +23,13 @@ Your `.large` selector should have a `height` property set to `10px`. assert(new __helpers.CSSHelp(document).getStyle('.large')?.height === '10px'); ``` -You should have a new `.large, .medium` selector. +Du solltest einen neuen `.large, .medium`-Selektor haben. ```js assert(new __helpers.CSSHelp(document).getStyle('.large, .medium')); ``` -Your `.large, .medium` selector should have a `background-color` property set to `black`. +Dein `.large, .medium`-Selektor sollte eine `background-color`-Eigenschaft auf `black` gesetzt haben. ```js assert(new __helpers.CSSHelp(document).getStyle('.large, .medium')?.backgroundColor === 'black'); diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f7de4487b64919bb4aa5e.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f7de4487b64919bb4aa5e.md index 019980348f2..eec938e9abe 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f7de4487b64919bb4aa5e.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f7de4487b64919bb4aa5e.md @@ -7,7 +7,7 @@ dashedName: step-53 # --description-- -Erstelle nach deinem letzten `.divider` ein neues `p`-Element mit dem Text `Cholesterol 0mg 0%`. Wrap the text `Cholesterol` in a `span` element, and give that `span` element the `class` of `bold`. Umschließe den Text `0%` mit einem weiteren `span`-Element, wobei die `class` auf `bold` gesetzt ist. Finally, nest the `Cholesterol` `span` element and the text `0mg` in an additional `span` element for alignment. +Erstelle nach deinem letzten `.divider` ein neues `p`-Element mit dem Text `Cholesterol 0mg 0%`. Umschließe den Text `Cholesterol` mit einem `span`-Element und weise diesem `span`-Element die `class` `bold` zu. Umschließe den Text `0%` mit einem weiteren `span`-Element, wobei die `class` auf `bold` gesetzt ist. Bette schließlich das `Cholesterol`-`span`-Element und den Text `0mg` in einem weiteren `span`-Element zur Ausrichtung ein. # --hints-- @@ -38,7 +38,7 @@ const cholesterolSpan = spans.filter(span => span?.innerHTML?.match(/^[\s\n]*Cho assert(cholesterolSpan.length === 1); ``` -Your `Cholesterol` `span` should have the `class` attribute set to `bold`. +Dein `span`-Element mit `Cholesterol` sollte das `class`-Attribut auf `bold` eingestellt haben. ```js const spans = [...document.querySelector('.daily-value.small-text')?.lastElementChild?.querySelectorAll('span')]; diff --git a/curriculum/challenges/german/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f84f246e8ba98e3cd97be.md b/curriculum/challenges/german/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f84f246e8ba98e3cd97be.md index f3f8b8f913b..c69d0b2678a 100644 --- a/curriculum/challenges/german/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f84f246e8ba98e3cd97be.md +++ b/curriculum/challenges/german/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f84f246e8ba98e3cd97be.md @@ -7,7 +7,7 @@ dashedName: step-60 # --description-- -Below your `.double-indent` element, add a new `p` element with the text `Includes 10g Added Sugars 20%`. Your new `p` element should also be double indented, and have no bottom border. Use a `span` to make the `20%` bold and right aligned. +Füge unter deinem `.double-indent`-Element ein neues `p`-Element mit dem Text `Includes 10g Added Sugars 20%` hinzu. Your new `p` element should also be double indented, and have no bottom border. Use a `span` to make the `20%` bold and right aligned. Then create another divider after that `p` element. @@ -33,13 +33,13 @@ assert(document.querySelector('.daily-value.small-text p:last-of-type')?.classLi assert(document.querySelector('.daily-value.small-text p:last-of-type')?.classList?.contains('no-divider')); ``` -Your new `p` element should have a `span` element. +Dein neues `p`-Element sollte ein `span`-Element enthalten. ```js assert(document.querySelector('.daily-value.small-text p:last-of-type')?.firstElementChild?.localName === 'span'); ``` -Your `span` element should have the `class` attribute set to `bold`. +Dein `span`-Element sollte das `class`-Attribut auf `bold` gesetzt haben. ```js assert(document.querySelector('.daily-value.small-text p:last-of-type')?.firstElementChild?.classList?.contains('bold')); @@ -51,7 +51,7 @@ Your `span` element should wrap the text `20%`. assert(document.querySelector('.daily-value.small-text p:last-of-type span')?.innerText === '20%'); ``` -Your new `div` should have the `class` attribute set to `divider`. +Dein neues `div` sollte das `class`-Attribut auf `divider` gesetzt haben. ```js assert(document.querySelector('.daily-value.small-text')?.lastElementChild?.classList?.contains('divider')); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/build-a-cash-register-project/cash-register.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/build-a-cash-register-project/cash-register.md index f6a792e652d..702826256a5 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/build-a-cash-register-project/cash-register.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/build-a-cash-register-project/cash-register.md @@ -8,21 +8,21 @@ dashedName: build-a-cash-register # --description-- -Design a cash register drawer function `checkCashRegister()` that accepts purchase price as the first argument (`price`), payment as the second argument (`cash`), and cash-in-drawer (`cid`) as the third argument. +Entwirf eine Registrierkassenfunktion `checkCashRegister()`, die als erstes Argument den Kaufpreis (`price`), als zweites Argument das übergebene Bargeld (`cash`) und als drittes Argument den Kassenbestand (`cid`) akzeptiert. -`cid` is a 2D array listing available currency. +`cid` ist ein 2D-Array mit den verfügbaren Währungen. -The `checkCashRegister()` function should always return an object with a `status` key and a `change` key. +Die `checkCashRegister()`-Funktion sollte immer ein Objekt mit den Schlüsseln `status` und `change` zurückgeben. -Return `{status: "INSUFFICIENT_FUNDS", change: []}` if cash-in-drawer is less than the change due, or if you cannot return the exact change. +Gib `{status: "INSUFFICIENT_FUNDS", change: []}` zurück, wenn der Kassenbestand nicht das benötigte Wechselgeld hergibt oder du das genaue Wechselgeld nicht zurückgeben kannst. -Return `{status: "CLOSED", change: [...]}` with cash-in-drawer as the value for the key `change` if it is equal to the change due. +Gib `{status: "CLOSED", change: [...]}` mit dem vorhandenen Wechselgeld als Wert für den Schlüssel `change` zurück, wenn der Kassenbestand gleich dem fälligen Wechselgeld ist. Otherwise, return `{status: "OPEN", change: [...]}`, with the change due in coins and bills, sorted in highest to lowest order, as the value of the `change` key. -
WährungseinheitAmount
Penny$0.01 (PENNY)
Nickel$0.05 (NICKEL)
Dime$0.1 (DIME)
Quarter$0.25 (QUARTER)
Dollar$1 (ONE)
Fünf Dollar$5 (FIVE)
Zehn Dollar$10 (TEN)
Zwanzig Dollar$20 (TWENTY)
Einhundert Dollar$100 (ONE HUNDRED)
+
WährungseinheitBetrag
Penny$0.01 (PENNY)
Nickel$0.05 (NICKEL)
Dime$0.1 (DIME)
Quarter$0.25 (QUARTER)
Dollar$1 (ONE)
Fünf Dollar$5 (FIVE)
Zehn Dollar$10 (TEN)
Zwanzig Dollar$20 (TWENTY)
Einhundert Dollar$100 (ONE HUNDRED)
-See below for an example of a cash-in-drawer array: +Anbei ein Beispiel für einen Array mit Wechselgeld: ```js [ diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/build-a-palindrome-checker-project/palindrome-checker.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/build-a-palindrome-checker-project/palindrome-checker.md index 0ca2cfb5461..e3e02140a83 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/build-a-palindrome-checker-project/palindrome-checker.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/build-a-palindrome-checker-project/palindrome-checker.md @@ -1,6 +1,6 @@ --- id: aaa48de84e1ecc7c742e1124 -title: Build A Palindrome Checker +title: Erstelle einen Palindrom-Prüfer challengeType: 5 forumTopicId: 16004 dashedName: build-a-palindrome-checker @@ -8,19 +8,19 @@ dashedName: build-a-palindrome-checker # --description-- -Return `true` if the given string is a palindrome. Otherwise, return `false`. +Gib `true` zurück, falls der übergebene String ein Palindrom ist. Gib ansonsten `false` zurück. -A palindrome is a word or sentence that's spelled the same way both forward and backward, ignoring punctuation, case, and spacing. +Ein Palindrom kann sowohl ein Wort als auch ein Satz sein, das sowohl vorwärts als auch rückwärts gelesen dasselbe Wort bzw. denselben Satz ergibt. Interpunktion, Leerzeichen sowie Groß- und Kleinschreibung ausgenommen. -**Note:** You'll need to remove **all non-alphanumeric characters** (punctuation, spaces and symbols) and turn everything into the same case (lower or upper case) in order to check for palindromes. +**Hinweis:** Entferne **alle nicht alphanumerischen Zeichen** (Interpunktion, Leerzeichen und Symbole) und setze alles in dieselbe Schreibweise (Klein- oder Großbuchstaben), um nach Palindromen zu filtern. We'll pass strings with varying formats, such as `racecar`, `RaceCar`, and `race CAR` among others. -We'll also pass strings with special symbols, such as `2A3*3a2`, `2A3 3a2`, and `2_A3*3#A2`. +Auch Strings mit speziellen Symbolen wie `2A3*3a2`, `2A3 3a2` und `2_A3*3#A2` werden dir übergeben. # --hints-- -`palindrome("eye")` should return a boolean. +`palindrome("eye")` sollte einen Boolean zurückgeben. ```js assert(typeof palindrome('eye') === 'boolean'); @@ -50,7 +50,7 @@ assert(palindrome('race car') === true); assert(palindrome('not a palindrome') === false); ``` -`palindrome("A man, a plan, a canal. Panama")` should return `true`. +`palindrome("A man, a plan, a canal. Panama")` sollte `true` zurückgeben. ```js assert(palindrome('A man, a plan, a canal. Panama') === true); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/build-a-roman-numeral-converter-project/roman-numeral-converter.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/build-a-roman-numeral-converter-project/roman-numeral-converter.md index 173f96f36d5..89aeb506c4e 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/build-a-roman-numeral-converter-project/roman-numeral-converter.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/build-a-roman-numeral-converter-project/roman-numeral-converter.md @@ -1,6 +1,6 @@ --- id: a7f4d8f2483413a6ce226cac -title: Build A Roman Numeral Converter +title: Erstelle einen Konverter für römische Zahlen challengeType: 5 forumTopicId: 16044 dashedName: build-a-roman-numeral-converter @@ -26,7 +26,7 @@ Konvertiere die übergebene Zahl in eine römische Zahl. | IV | 4 | | I | 1 | -All roman numerals answers should be provided in upper-case. +Römische Ziffern sollten in Großbuchstaben übergeben werden. # --hints-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/build-a-telephone-number-validator-project/telephone-number-validator.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/build-a-telephone-number-validator-project/telephone-number-validator.md index dae62ffb83e..264f3150994 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/build-a-telephone-number-validator-project/telephone-number-validator.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/build-a-telephone-number-validator-project/telephone-number-validator.md @@ -1,6 +1,6 @@ --- id: aff0395860f5d3034dc0bfc9 -title: Build a Telephone Number Validator +title: Erstelle einen Telefonnummern-Validator challengeType: 5 forumTopicId: 16090 dashedName: build-a-telephone-number-validator @@ -8,17 +8,17 @@ dashedName: build-a-telephone-number-validator # --description-- -Return `true` if the passed string looks like a valid US phone number. +Gibt `true` zurück, wenn der übergebene String wie eine gültige US-Telefonnummer aussieht. -Der Benutzer kann das Formularfeld auf jede beliebige Weise ausfüllen, solange es das Format einer gültigen US-Nummer hat. The following are examples of valid formats for US numbers (refer to the tests below for other variants): +Der Benutzer kann das Formularfeld auf jede beliebige Weise ausfüllen, solange es das Format einer gültigen US-Nummer hat. Es folgen Beispiele für gültige US-Nummern-Formate (siehe Tests unten für weitere Varianten):
555-555-5555
(555)555-5555
(555) 555-5555
555 555 5555
5555555555
1 555 555 5555
-For this challenge you will be presented with a string such as `800-692-7753` or `8oo-six427676;laskdjf`. Your job is to validate or reject the US phone number based on any combination of the formats provided above. Die Vorwahl ist erforderlich. If the country code is provided, you must confirm that the country code is `1`. Return `true` if the string is a valid US phone number; otherwise return `false`. +In dieser Aufgabe wird dir ein String wie `800-692-7753` oder `8oo-six427676;laskdjf` übergeben. Du sollst eine US-Telefonnummer anhand von Kombinationen der oben genannten Formate entweder validieren oder als ungültig ablehnen. Die Vorwahl ist erforderlich. Wird dir ein Ländercode übergeben, musst du bestätigen, dass dieser `1` ist. Gebe `true` zurück, wenn der String eine gültige US-Telefonnummer ist, ansonsten `false`. # --hints-- -`telephoneCheck("555-555-5555")` should return a boolean. +`telephoneCheck("555-555-5555")` sollte einen Boolean zurückgeben. ```js assert(typeof telephoneCheck('555-555-5555') === 'boolean'); @@ -30,19 +30,19 @@ assert(typeof telephoneCheck('555-555-5555') === 'boolean'); assert(telephoneCheck('1 555-555-5555') === true); ``` -`telephoneCheck("1 (555) 555-5555")` should return `true`. +`telephoneCheck("1 (555) 555-5555")` sollte `true` zurückgeben. ```js assert(telephoneCheck('1 (555) 555-5555') === true); ``` -`telephoneCheck("5555555555")` should return `true`. +`telephoneCheck("5555555555")` sollte `true` zurückgeben. ```js assert(telephoneCheck('5555555555') === true); ``` -`telephoneCheck("555-555-5555")` should return `true`. +`telephoneCheck("555-555-5555")` sollte `true` zurückgeben. ```js assert(telephoneCheck('555-555-5555') === true); @@ -54,133 +54,133 @@ assert(telephoneCheck('555-555-5555') === true); assert(telephoneCheck('(555)555-5555') === true); ``` -`telephoneCheck("1(555)555-5555")` should return `true`. +`telephoneCheck("1(555)555-5555")` sollte `true` zurückgeben. ```js assert(telephoneCheck('1(555)555-5555') === true); ``` -`telephoneCheck("555-5555")` should return `false`. +`telephoneCheck("555-5555")` sollte `false` zurückgeben. ```js assert(telephoneCheck('555-5555') === false); ``` -`telephoneCheck("5555555")` should return `false`. +`telephoneCheck("5555555")` sollte `false` zurückgeben. ```js assert(telephoneCheck('5555555') === false); ``` -`telephoneCheck("1 555)555-5555")` should return `false`. +`telephoneCheck("1 555)555-5555")` sollte `false` zurückgeben. ```js assert(telephoneCheck('1 555)555-5555') === false); ``` -`telephoneCheck("1 555 555 5555")` should return `true`. +`telephoneCheck("1 555 555 5555")` sollte `true` zurückgeben. ```js assert(telephoneCheck('1 555 555 5555') === true); ``` -`telephoneCheck("1 456 789 4444")` should return `true`. +`telephoneCheck("1 456 789 4444")` sollte `true` zurückgeben. ```js assert(telephoneCheck('1 456 789 4444') === true); ``` -`telephoneCheck("123**&!!asdf#")` should return `false`. +`telephoneCheck("123**&!!asdf#")` sollte `false` zurückgeben. ```js assert(telephoneCheck('123**&!!asdf#') === false); ``` -`telephoneCheck("55555555")` should return `false`. +`telephoneCheck("55555555")` sollte `false` zurückgeben. ```js assert(telephoneCheck('55555555') === false); ``` -`telephoneCheck("(6054756961)")` should return `false`. +`telephoneCheck("(6054756961)")` sollte `false` zurückgeben. ```js assert(telephoneCheck('(6054756961)') === false); ``` -`telephoneCheck("2 (757) 622-7382")` should return `false`. +`telephoneCheck("2 (757) 622-7382")` sollte `false` zurückgeben. ```js assert(telephoneCheck('2 (757) 622-7382') === false); ``` -`telephoneCheck("0 (757) 622-7382")` should return `false`. +`telephoneCheck("0 (757) 622-7382")` sollte `false` zurückgeben. ```js assert(telephoneCheck('0 (757) 622-7382') === false); ``` -`telephoneCheck("-1 (757) 622-7382")` should return `false`. +`telephoneCheck("-1 (757) 622-7382")` sollte `false` zurückgeben. ```js assert(telephoneCheck('-1 (757) 622-7382') === false); ``` -`telephoneCheck("2 757 622-7382")` should return `false`. +`telephoneCheck("2 757 622-7382")` sollte `false` zurückgeben. ```js assert(telephoneCheck('2 757 622-7382') === false); ``` -`telephoneCheck("10 (757) 622-7382")` should return `false`. +`telephoneCheck("10 (757) 622-7382")` sollte `false` zurückgeben. ```js assert(telephoneCheck('10 (757) 622-7382') === false); ``` -`telephoneCheck("27576227382")` should return `false`. +`telephoneCheck("27576227382")` sollte `false` zurückgeben. ```js assert(telephoneCheck('27576227382') === false); ``` -`telephoneCheck("(275)76227382")` should return `false`. +`telephoneCheck("(275)76227382")` sollte `false` zurückgeben. ```js assert(telephoneCheck('(275)76227382') === false); ``` -`telephoneCheck("2(757)6227382")` should return `false`. +`telephoneCheck("2(757)6227382")` sollte `false` zurückgeben. ```js assert(telephoneCheck('2(757)6227382') === false); ``` -`telephoneCheck("2(757)622-7382")` should return `false`. +`telephoneCheck("2(757)622-7382")` sollte `false` zurückgeben. ```js assert(telephoneCheck('2(757)622-7382') === false); ``` -`telephoneCheck("555)-555-5555")` should return `false`. +`telephoneCheck("555)-555-5555")` sollte `false` zurückgeben. ```js assert(telephoneCheck('555)-555-5555') === false); ``` -`telephoneCheck("(555-555-5555")` should return `false`. +`telephoneCheck("(555-555-5555")` sollte `false` zurückgeben. ```js assert(telephoneCheck('(555-555-5555') === false); ``` -`telephoneCheck("(555)5(55?)-5555")` should return `false`. +`telephoneCheck("(555)5(55?)-5555")` sollte `false` zurückgeben. ```js assert(telephoneCheck('(555)5(55?)-5555') === false); ``` -`telephoneCheck("55 55-55-555-5")` should return `false`. +`telephoneCheck("55 55-55-555-5")` sollte `false` zurückgeben. ```js assert(telephoneCheck('55 55-55-555-5') === false); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635060a5c03c950f46174cb5.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635060a5c03c950f46174cb5.md index e85d882fe27..31576a37628 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635060a5c03c950f46174cb5.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635060a5c03c950f46174cb5.md @@ -1,6 +1,6 @@ --- id: 635060a5c03c950f46174cb5 -title: Step 1 +title: Schritt 1 challengeType: 0 dashedName: step-1 --- @@ -21,13 +21,13 @@ You should use the `const` keyword to declare a variable `calculate`. assert.match(code, /const\s*calculate/); ``` -Your `calculate` variable should be a function. +Deine `calculate`-Variable sollte eine Funktion sein. ```js assert.isFunction(calculate); ``` -Your `calculate` function should be empty. +Deine `calculate`-Funktion sollte leer sein. ```js assert.match(calculate.toString(), /\{\s*\}/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507b5ac8a55134223374c7.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507b5ac8a55134223374c7.md index 00cf0fb28b7..094f788b249 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507b5ac8a55134223374c7.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507b5ac8a55134223374c7.md @@ -1,6 +1,6 @@ --- id: 63507b5ac8a55134223374c7 -title: Step 2 +title: Schritt 2 challengeType: 0 dashedName: step-2 --- @@ -13,7 +13,7 @@ Store this in a `value` variable. # --hints-- -Your `calculate` function should have a `value` variable. +Deine `calculate`-Funktion sollte eine `value`-Variable enthalten. ```js assert.match(calculate.toString(), /value/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507bcbfe4ede356e624395.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507bcbfe4ede356e624395.md index 28bf96fe1b6..8fe759f0c83 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507bcbfe4ede356e624395.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507bcbfe4ede356e624395.md @@ -1,33 +1,33 @@ --- id: 63507bcbfe4ede356e624395 -title: Step 3 +title: Schritt 3 challengeType: 0 dashedName: step-3 --- # --description-- -Now that you have the value of the input, you need to split it into an array of numbers. Use the `.split()` method to do this. +Nun, da du den Wert der Eingabe hast, musst du ihn in ein Array von Zahlen aufteilen. Verwende dazu die `.split()`-Methode. -The `.split()` method takes a string and splits it into an array of strings. You can pass it a string of characters or a RegEx to use as a separator. For example, `string.split(",")` would split the string at each comma and return an array of strings. +Die `.split()`-Methode nimmt einen String und zerlegt ihn in einen Array von Strings. You can pass it a string of characters or a RegEx to use as a separator. Zum Beispiel würde `string.split(",")` den String an jedem Komma trennen und ein Array von Strings zurückgeben. -Use a regex to split the `value` string by commas followed by any number of spaces. Store the array in an `array` variable. +Verwende einen regulären Ausdruck, um den `value`-String durch Kommas, gefolgt von einer beliebigen Anzahl von Leerzeichen, zu trennen. Speichere das Array in einer `array`-Vabriablen. # --hints-- -Your `calculate` function should have an `array` variable. +Deine `calculate`-Funktion sollte über eine `array`-Variable verfügen. ```js assert.match(code.toString(), /array/); ``` -Your `calculate` function should call the `.split()` method on the `value` variable. +Deine `calculate`-Funktion sollte die `.split()`-Methode für deine `value`-Variable aufrufen. ```js assert.match(code.toString(), /value\.split()/); ``` -Your `calculate` function should assign the result of the `.split()` method to the `array` variable. +Deine `calculate`-Funktion sollte der `array`-Variablen das Resultat der `.split()`-Methode zuweisen. ```js assert.match(code.toString(), /array\s*=\s*value\.split()/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507c19151201368ee3e16c.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507c19151201368ee3e16c.md index ca4b2482b97..8adc28c26f2 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507c19151201368ee3e16c.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507c19151201368ee3e16c.md @@ -1,19 +1,19 @@ --- id: 63507c19151201368ee3e16c -title: Step 4 +title: Schritt 4 challengeType: 0 dashedName: step-4 --- # --description-- -The value of an input element is always a string, even if the input type is `number`. You need to convert this array of strings into an array of numbers. To do this, you can use the `.map()` method. +Der Wert eines Eingabeelements ist immer ein String, auch wenn der Eingabetyp `number` ist. You need to convert this array of strings into an array of numbers. To do this, you can use the `.map()` method. Create a `numbers` variable and assign it the value of `array.map()`. Remember that `.map()` creates a new array, instead of mutating the original array. # --hints-- -Your `calculate` function should have a `numbers` variable. +Deine `calculate`-Funktion sollte eine `numbers`-Variable enthalten. ```js assert.match(calculate.toString(), /numbers/); @@ -25,7 +25,7 @@ You should use the `.map()` method on your `array` variable. assert.match(calculate.toString(), /array\.map\(\)/); ``` -You should assign the result of your `.map()` call to your `numbers` variable. +Du solltest deiner `numbers`-Variable das Ergebnis deines `.map()`-Aufrufs zuweisen. ```js assert.match(calculate.toString(), /numbers\s*=\s*array.map()/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507c4b63731437227b0134.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507c4b63731437227b0134.md index e6fa1b85dd4..74d0ee6056b 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507c4b63731437227b0134.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507c4b63731437227b0134.md @@ -1,13 +1,13 @@ --- id: 63507c4b63731437227b0134 -title: Step 5 +title: Schritt 5 challengeType: 0 dashedName: step-5 --- # --description-- -The `.map()` method takes a callback function as its first argument. This callback function takes a few arguments, but the first one is the current element being processed. Here is an example: +Die `.map()`-Methode nimmt eine Callback-Funktion als erstes Argument. Diese Callback-Funktion benötigt mehrere Argumente, wobei das erste das aktuell bearbeitete Element ist. Hier ist ein Beispiel: ```js array.map(el => { @@ -15,31 +15,31 @@ array.map(el => { }) ``` -The callback function needs to return a value. In this case, you want to return the value of each element converted to a number. You can do this by using the `Number()` constructor, passing the element as an argument. +Die Callback-Funktion muss einen Wert zurückgeben. In diesem Fall möchtest du den Wert jedes Elements in eine Zahl umgewandelt zurückgeben. Verwende dazu den `Number()`-Konstruktor und übergebe das Element als Argument. -Add a callback function to your `.map()` method that converts each element to a number. +Füge deiner `.map()`-Methode eine Callback-Funktion hinzu, die jedes Element in eine Zahl umwandelt. # --hints-- -Your `.map()` method should have a callback function which takes an `el` argument. +Deine `.map()`-Methode sollte eine Callback-Funktion haben, die ein `el`-Argument verwendet. ```js assert.match(calculate.toString(), /array\.map\(\(?\s*el\s*\)?\s*=>|array\.map\(function\s*\(?el\)\s*\{/) ``` -Your callback function should use the `Number` constructor to convert `el` to a number. +Deine Callback-Funktion sollte den `Number`-Konstruktor verwenden, um `el` in eine Zahl umzuwandeln. ```js assert.match(calculate.toString(), /Number\(\s*el\s*\)/); ``` -Your callback function should not use the `new` keyword with the `Number` constructor. +Deine Callback-Funktion sollte das `new`-Schlüsselwort nicht mit dem `Number`-Konstruktor verwenden. ```js assert.notMatch(calculate.toString(), /new/); ``` -Your callback function should return the element converted to a number. +Deine Callback-Funktion sollte das in eine Zahl umgewandelte Element zurückgeben. ```js assert.match(calculate.toString(), /(array\.map\(\(?\s*el\s*\)?\s*=>|array\.map\(function\s*\(?el\)\s*\{)\s*(return\s*)?Number\(\s*el\s*\)/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507d810f1a2e38f1908fd8.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507d810f1a2e38f1908fd8.md index 6fb1811b2c9..18a680e43f0 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507d810f1a2e38f1908fd8.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507d810f1a2e38f1908fd8.md @@ -1,33 +1,33 @@ --- id: 63507d810f1a2e38f1908fd8 -title: Step 6 +title: Schritt 6 challengeType: 0 dashedName: step-6 --- # --description-- -A user could put any text they want into the input box. You want to make sure that you are only working with numbers. The `Number()` constructor will return `NaN` (which stands for "not a number") if the value passed to it cannot be converted to a number. +Ein Nutzer kann einen beliebigen Text in das Eingabefeld eingeben. Du solltest sicherstellen, dass du nur mit Zahlen arbeitest. Der `Number()`-Konstruktor wird `NaN` zurückgeben (was für "keine Zahl" steht), wenn der an ihn übergebene Wert nicht in eine Zahl umgewandelt werden kann. -You need to filter these values out – thankfully, arrays have a method specifically for this. The `.filter()` method will allow you to filter elements out of an array, creating a new array in the process. +Du musst diese Werte herausfiltern - zum Glück haben Arrays dafür eine Methode. Mit der `.filter()`-Methode kannst du Elemente aus einem Array herausfiltern und dabei ein neues Array erstellen. -Declare a `filtered` variable and assign `numbers.filter()` to it. +Deklariere eine `filtered`-Variable und weise ihr `numbers.filter()` zu. # --hints-- -Your `calculate` function should have a `filtered` variable. +Deine `calculate`-Funktion sollte über eine `filtered`-Variable verfügen. ```js assert.match(calculate.toString(), /filtered/); ``` -Your `calculate` function should use the `.filter()` method on the `numbers` array. +Deine `calculate`-Funktion sollte die `.filter()`-Methode für dein `numbers`-Array verwenden. ```js assert.match(calculate.toString(), /numbers\.filter\(\)/) ``` -You should assign the result of `numbers.filter()` to the `filtered` variable. +Du solltest der `filtered`-Variable das Ergebnis von `numbers.filter()` zuweisen. ```js assert.match(calculate.toString(), /filtered\s*=\s*numbers.filter\(\)/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507e4562cdde3a28e8de1b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507e4562cdde3a28e8de1b.md index e47d7580a32..09319b528be 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507e4562cdde3a28e8de1b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507e4562cdde3a28e8de1b.md @@ -1,6 +1,6 @@ --- id: 63507e4562cdde3a28e8de1b -title: Step 7 +title: Schritt 7 challengeType: 0 dashedName: step-7 --- @@ -15,7 +15,7 @@ array.filter(el => { }) ``` -The callback function needs to return a Boolean value, which indicates whether the element should be included in the new array. In this case, you want to return `true` if the element is not `NaN` (not a number). +Die Callback-Funktion muss einen booleschen Wert zurückgeben, der angibt, ob das Element in das neue Array aufgenommen werden soll. In this case, you want to return `true` if the element is not `NaN` (not a number). However, you cannot check for equality here, because `NaN` is not equal to itself. Instead, you can use the `Number.isNaN()` method, which returns `true` if the argument is `NaN`. @@ -29,13 +29,13 @@ Your `.filter()` method should have a callback which accepts `el` as an argument assert.match(calculate.toString(), /numbers\.filter\(\(?\s*el\s*\)?\s*=>|numbers\.filter\(function\s*\(?el\)\s*\{/) ``` -Your callback function should use `!` and `Number.isNaN()` to check if `el` is NOT `NaN`. +Deine Callback-Funktion sollte `!` und `Number.isNaN()` verwenden, um zu überprüfen, ob `el` NICHT `NaN` ist. ```js assert.match(calculate.toString(), /!(Number\.)?isNaN\(\s*el\s*\)/); ``` -Your callback function should return elements that are not `NaN`. +Deine Callback-Funktion sollte Elemente zurückgeben, die nicht `NaN` entsprechen. ```js assert.match(calculate.toString(), /(numbers\.filter\(\(?\s*el\s*\)?\s*=>|numbers\.filter\(function\s*\(?el\)\s*\{)\s*(return\s*)?!(Number\.)?isNaN\(\s*el\s*\)/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507ebb0c50ce3b9d669cd9.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507ebb0c50ce3b9d669cd9.md index 8d66c847223..78460b68791 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507ebb0c50ce3b9d669cd9.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507ebb0c50ce3b9d669cd9.md @@ -1,13 +1,13 @@ --- id: 63507ebb0c50ce3b9d669cd9 -title: Step 8 +title: Schritt 8 challengeType: 0 dashedName: step-8 --- # --description-- -Array methods can often be chained together to perform multiple operations at once. As an example: +Array methods can often be chained together to perform multiple operations at once. Ein Beispiel: ```js array.map().filter(); @@ -19,7 +19,7 @@ Following that example, remove your `filtered` variable, and chain your `.filter # --hints-- -You should remove the `filtered` variable. +Du solltest die `filtered`-Variable entfernen. ```js assert.notMatch(calculate.toString(), /filtered/); @@ -32,13 +32,13 @@ console.log(calculate.toString()); assert.match(calculate.toString(), /array\.map\(.*\)\.filter\(/s); ``` -You should not remove the `.map()` callback. +Du solltest das `.map()`-Callback nicht entfernen. ```js assert.match(calculate.toString(), /(array\.map\(\(?\s*el\s*\)?\s*=>|array\.map\(function\s*\(?el\)\s*\{)\s*(return\s*)?Number\(\s*el\s*\)/); ``` -You should not remove the `.filter()` callback. +Du solltest das `.filter()`-Callback nicht entfernen. ```js assert.match(calculate.toString(), /(\.filter\(\(?\s*el\s*\)?\s*=>|\.filter\(function\s*\(?el\)\s*\{)\s*(return\s*)?!(Number\.)?isNaN\(\s*el\s*\)/s); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507fc6cc29083cc44df2fb.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507fc6cc29083cc44df2fb.md index 11561c2cc95..f5d7535c64f 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507fc6cc29083cc44df2fb.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63507fc6cc29083cc44df2fb.md @@ -1,6 +1,6 @@ --- id: 63507fc6cc29083cc44df2fb -title: Step 9 +title: Schritt 9 challengeType: 0 dashedName: step-9 --- @@ -9,23 +9,23 @@ dashedName: step-9 That is as far as you can get with the calculate function for now. It is time to write your mean logic. -Create an empty function called `getMean`. It should take a single parameter `array`. +Erstelle eine leere Funktion namens `getMean`. It should take a single parameter `array`. # --hints-- -You should declare a `getMean` function. +Du solltest eine `getMean`-Funktion deklarieren. ```js assert.isFunction(getMean); ``` -Your `getMean` function should take a single `array` argument. +Deine `getMean`-Funktion sollte ein einziges `array`-Argument verwenden. ```js assert.match(getMean.toString(), /\(\s*array\s*\)/); ``` -Your `getMean` function should be empty. +Deine `getMean`-Funktion sollte leer sein. ```js assert.match(getMean.toString(), /\{\s*\}/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6350805fe0fe283dd347b0dc.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6350805fe0fe283dd347b0dc.md index b28037ffcb8..52dcd4b3df5 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6350805fe0fe283dd347b0dc.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6350805fe0fe283dd347b0dc.md @@ -1,31 +1,31 @@ --- id: 6350805fe0fe283dd347b0dc -title: Step 10 +title: Schritt 10 challengeType: 0 dashedName: step-10 --- # --description-- -The mean is the average value of all numbers in a list. The first step in calculating the mean is to take the sum of all numbers in the list. Arrays have another method, called `.reduce()`, which is perfect for this situation. The `.reduce()` method takes an array and applies a callback function to condense the array into a single value. +The mean is the average value of all numbers in a list. Der erste Schritt zur Berechnung des Mittelwerts besteht darin, die Summe aller Zahlen in der Liste zu berechnen. Arrays have another method, called `.reduce()`, which is perfect for this situation. The `.reduce()` method takes an array and applies a callback function to condense the array into a single value. -Declare a `sum` variable and assign `array.reduce()` to it. +Deklariere eine `sum`-Variable und weise ihr `array.reduce()` zu. # --hints-- -Your `getMean` function should have a `sum` variable. +Deine `getMean`-Funktion sollte eine `sum`-Variable enthalten. ```js assert.match(getMean.toString(), /sum/); ``` -Your `getMean` function should use the `.reduce()` method of the `array` argument. +Dein `getMean`-Funktion sollte die `.reduce()`-Methode des `array`-Arguments verwenden. ```js assert.match(getMean.toString(), /array\.reduce\(\)/); ``` -You should assign the result of `array.reduce()` to the `sum` variable. +Du solltest der `sum`-Variable das Ergebnis von `array.reduce()` zuweisen. ```js assert.match(getMean.toString(), /sum\s*=\s*array\.reduce\(\)/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635080d80b72803e973841da.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635080d80b72803e973841da.md index 196a32559cd..9feae2b5e25 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635080d80b72803e973841da.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635080d80b72803e973841da.md @@ -1,13 +1,13 @@ --- id: 635080d80b72803e973841da -title: Step 11 +title: Schritt 11 challengeType: 0 dashedName: step-11 --- # --description-- -Like the other methods, `.reduce()` takes a callback. This callback, however, takes at least two parameters. The first is the accumulator, and the second is the current element in the array. The return value for the callback becomes the value of the accumulator on the next iteration. +Wie die anderen Methoden benötigt auch `.reduce()` einen Callback. Dieser Callback benötigt jedoch mindestens zwei Parameter. The first is the accumulator, and the second is the current element in the array. The return value for the callback becomes the value of the accumulator on the next iteration. ```js array.reduce((acc, el) => { @@ -15,7 +15,7 @@ array.reduce((acc, el) => { }); ``` -For your `sum` variable, pass a callback to `.reduce()` that takes the accumulator and the current element as parameters. The callback should return the sum of the accumulator and the current element. +For your `sum` variable, pass a callback to `.reduce()` that takes the accumulator and the current element as parameters. Der Callback sollte die Summe aus dem Akkumulators und dem aktuellen Element zurückgeben. # --hints-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6350854411ffb73feb6bb84e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6350854411ffb73feb6bb84e.md index b0dd8f59b53..0cc5e242080 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6350854411ffb73feb6bb84e.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6350854411ffb73feb6bb84e.md @@ -1,25 +1,25 @@ --- id: 6350854411ffb73feb6bb84e -title: Step 12 +title: Schritt 12 challengeType: 0 dashedName: step-12 --- # --description-- -The `.reduce()` method takes a second parameter that is used as the initial value of the accumulator. Without a second parameter, the `.reduce()` method uses the first element of the array as the accumulator, which can lead to unexpected results. +Die `.reduce()`-Methode benötigt einen zweiten Parameter, der als Anfangswert des Akkumulators verwendet wird. Ohne einen zweiten Parameter verwendet die `.reduce()`-Methode das erste Element des Arrays als den Akkumulator, was zu unerwarteten Ergebnissen führen kann. -To be safe, it's best to set an initial value. Here is an example of setting the initial value to an empty string: +Um sicher zu gehen, ist es am besten, einen Anfangswert festzulegen. Hier ein Beispiel für die Einstellung des Anfangswertes auf einen leeren String: ```js array.reduce((acc, el) => acc + el.toLowerCase(), ""); ``` -Set the initial value of the accumulator to `0`. +Setze den Anfangswert des Akkumators auf `0`. # --hints-- -Your `reduce` method should have `0` as the initial value. +Deine `reduce`-Methode sollte `0` als Anfangswert haben. ```js assert.match(getMean.toString(), /(array\.reduce\(\(acc\s*,\s*el\s*\)\s*=>|array\.reduce\(function\s*\(acc\s*,\s*el\)\s*\{)\s*(return)?\s*acc\s*\+\s*el;\s*\}?\s*,\s*0\)/) diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508577f69f41409275f877.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508577f69f41409275f877.md index 4839e059df3..4f08d7fab0f 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508577f69f41409275f877.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508577f69f41409275f877.md @@ -1,6 +1,6 @@ --- id: 63508577f69f41409275f877 -title: Step 13 +title: Schritt 13 challengeType: 0 dashedName: step-13 --- @@ -13,7 +13,7 @@ Declare a `mean` variable and assign it the value of `sum` divided by the length # --hints-- -Your `getMean` function should have a `mean` variable. +Deine `getMean`-Funktion sollte eine `mean`-Variable enthalten. ```js assert.match(getMean.toString(), /mean\s*=/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635085da54fc2041e0303e75.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635085da54fc2041e0303e75.md index 0ff64ecf7b7..feaf7f28aba 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635085da54fc2041e0303e75.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635085da54fc2041e0303e75.md @@ -1,6 +1,6 @@ --- id: 635085da54fc2041e0303e75 -title: Step 14 +title: Schritt 14 challengeType: 0 dashedName: step-14 --- @@ -11,13 +11,13 @@ Finally, you need to return the value of `mean`. # --hints-- -Your `getMean` function should use the `return` keyword. +Deine `getMean`-Funktion sollte das `return`-Schlüsselwort verwenden. ```js assert.match(getMean.toString(), /return/); ``` -Your `getMean` function should return the value of `mean`. +Deine `getMean`-Funktion sollte den Wert von `mean` zurückgeben. ```js assert.match(getMean.toString(), /return\s*mean\s*/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635085f80bd9b5429faa40c4.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635085f80bd9b5429faa40c4.md index d15924ec709..bcbb250f0d2 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635085f80bd9b5429faa40c4.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635085f80bd9b5429faa40c4.md @@ -1,6 +1,6 @@ --- id: 635085f80bd9b5429faa40c4 -title: Step 15 +title: Schritt 15 challengeType: 0 dashedName: step-15 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6350866cce4c6d43bdf607c8.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6350866cce4c6d43bdf607c8.md index 443f0323e73..73c4d3bbacc 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6350866cce4c6d43bdf607c8.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6350866cce4c6d43bdf607c8.md @@ -1,6 +1,6 @@ --- id: 6350866cce4c6d43bdf607c8 -title: Step 16 +title: Schritt 16 challengeType: 0 dashedName: step-16 --- @@ -11,7 +11,7 @@ Now you need to use your new `getMean` function. In your `calculate` function, d # --hints-- -Your `calculate` function should have a `mean` variable. +Deine `calculate`-Funktion sollte eine `mean`-Variable enthalten. ```js assert.match(calculate.toString(), /mean\s*=/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508750f040a348a440a0bf.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508750f040a348a440a0bf.md index 3180484e3eb..e2a5e433c24 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508750f040a348a440a0bf.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508750f040a348a440a0bf.md @@ -1,6 +1,6 @@ --- id: 63508750f040a348a440a0bf -title: Step 17 +title: Schritt 17 challengeType: 0 dashedName: step-17 --- @@ -13,7 +13,7 @@ Use a `.querySelector` to find that element, and then set its `.textContent` to # --hints-- -Your `calculate` function should use a `document.querySelector()`. +Deine `calculate`-Funktion sollte einen `document.querySelector()` verwenden. ```js assert.match(calculate.toString(), /document\.querySelector\(/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635089e3bd3e144f2db4094f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635089e3bd3e144f2db4094f.md index f526d6e8f70..4ab2af38fa8 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635089e3bd3e144f2db4094f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635089e3bd3e144f2db4094f.md @@ -1,6 +1,6 @@ --- id: 635089e3bd3e144f2db4094f -title: Step 18 +title: Schritt 18 challengeType: 0 dashedName: step-18 --- @@ -13,7 +13,7 @@ To resolve this, add `return false;` after your `calculate();` call in the `onsu # --hints-- -Your `onsubmit` attribute should have a `return false;` statement. +Dein `onsubmit`-Attribut sollte eine `return false;`-Anweisung haben. ```js assert.match(document.querySelector("form").getAttribute("onsubmit"), /return\s+false;/); @@ -25,7 +25,7 @@ Your `onsubmit` attribute should still call `calculate()`. assert.match(document.querySelector("form").getAttribute("onsubmit"), /calculate\(\s*\)/); ``` -You should return `false` after you call `calculate()`. +Nach dem Aufruf von `calculate()` sollte `false` zurückgegeben werden. ```js assert.match(document.querySelector("form").getAttribute("onsubmit"), /calculate\(\s*\);\s*return\s+false;/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508abbff1c4c5210d68cc5.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508abbff1c4c5210d68cc5.md index 8b54840f3fc..f44bd33d083 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508abbff1c4c5210d68cc5.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508abbff1c4c5210d68cc5.md @@ -1,6 +1,6 @@ --- id: 63508abbff1c4c5210d68cc5 -title: Step 19 +title: Schritt 19 challengeType: 0 dashedName: step-19 --- @@ -9,7 +9,7 @@ dashedName: step-19 Time to start working on the median calculation. The median is the midpoint of a set of numbers. -Begin with an empty function called `getMedian`, which should take an `array` parameter. +Beginne mit einer leeren Funktion namens `getMedian`, die einen `array`-Parameter verwenden soll. # --hints-- @@ -19,13 +19,13 @@ You should define a `getMedian` function. assert.isFunction(getMedian); ``` -Your `getMedian` function should take an `array` parameter. +Dein `getMedian`-Funktion sollte einen `array`-Parameter verwenden. ```js assert.match(getMedian.toString(), /\(\s*array\s*\)/); ``` -Your `getMedian` function should be empty. +Deine `getMedian`-Funktion sollte leer sein. ```js assert.match(getMedian.toString(), /\(\s*array\s*\)\s*\{\s*\}/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508bb4afb069534e81f33b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508bb4afb069534e81f33b.md index 850a88d9cf2..d5f3593553d 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508bb4afb069534e81f33b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508bb4afb069534e81f33b.md @@ -1,19 +1,19 @@ --- id: 63508bb4afb069534e81f33b -title: Step 20 +title: Schritt 20 challengeType: 0 dashedName: step-20 --- # --description-- -The first step in calculating the median is to ensure the list of numbers is sorted from least to greatest. Once again, there is an array method ideal for this – the `.sort()` method. +The first step in calculating the median is to ensure the list of numbers is sorted from least to greatest. Auch hierfür gibt es eine ideale Array-Methode - die `.sort()`-Methode. -Declare a `sorted` variable and assign `array.sort()` to it. +Deklariere eine `sorted`-Variable und weise ihr `array.sort()` zu. # --hints-- -Your `getMedian` function should have a `sorted` variable. +Deine `getMedian`-Funktion sollte über eine `sorted`-Variable verfügen. ```js assert.match(getMedian.toString(), /sorted\s*=/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508c898d753754757bd5e3.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508c898d753754757bd5e3.md index edb42afc1bf..c623820bc43 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508c898d753754757bd5e3.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/63508c898d753754757bd5e3.md @@ -1,6 +1,6 @@ --- id: 63508c898d753754757bd5e3 -title: Step 21 +title: Schritt 21 challengeType: 0 dashedName: step-21 --- @@ -21,7 +21,7 @@ Your `sort` method should have a callback function which takes an `a` and a `b` assert.match(getMedian.toString(), /(array\.sort\(\(\s*a\s*,\s*b\s*\)\s*=>|array\.sort\(function\s*\(\s*a\s*,\s*b\)\s*\{)/) ``` -Your `sort` method should return the result of subtracting `b` from `a`. +Deine `sort`-Methode sollte das Ergebnis der Subtraktion von `b` und `a` zurückgeben. ```js assert.match(getMedian.toString(), /(array\.sort\(\(\s*a\s*,\s*b\s*\)\s*=>|array\.sort\(function\s*\(\s*a\s*,\s*b\)\s*\{)\s*(return)?\s*a\s*\-\s*b/) diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635090f47eb6d9563a6fed05.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635090f47eb6d9563a6fed05.md index f6e0343b71c..304cc570ef5 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635090f47eb6d9563a6fed05.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635090f47eb6d9563a6fed05.md @@ -1,43 +1,43 @@ --- id: 635090f47eb6d9563a6fed05 -title: Step 22 +title: Schritt 22 challengeType: 0 dashedName: step-22 --- # --description-- -The next step is to find the number in the middle of the list. If the list has an odd number of numbers, the middle number is the median. If the list has an even number of numbers, the median is the average of the two middle numbers. +Im nächsten Schritt ist die Suche nach der Zahl in der Mitte der Liste. Wenn die Liste eine ungerade Anzahl von Zahlen enthält, ist die mittlere Zahl der Median. Wenn die Liste eine gerade Anzahl von Zahlen enthält, ist der Median der Durchschnitt der beiden mittleren Zahlen. -You can check if a number is even or odd with the modulus operator, which is represented by the `%` symbol. This operator returns the remainder of the division of two numbers. If the remainder is `0`, the number is even. If the remainder is `1`, the number is odd: +You can check if a number is even or odd with the modulus operator, which is represented by the `%` symbol. Dieser Operator gibt den Rest der Division von zwei Zahlen zurück. Wenn der Rest `0` ist, ist die Zahl gerade. Wenn der Rest `1` ist, ist die Zahl ungerade: ```js array.length % 2 === 0; ``` -Declare a `median` variable. Using the ternary operator, check if the length of `array` is even. If the length of `array` is even, find the two middle numbers and calculate the mean of those numbers. If the length of `array` is odd, find the middle number and assign it to the `median` variable. +Deklariere eine `median`-Variable. Überprüfe mit Hilfe des ternären Operators, ob die Länge von `array` eine gerade Zahl ist. Wenn die Länge von `array` eine gerade Zahl ist, finde die beiden mittleren Zahlen und berechne den Mittelwert dieser Zahlen. Wenn die Länge von `array` eine ungerade Zahl ist, finde die mittlere Zahl und weise sie der `median`-Variablen zu. # --hints-- -Your `getMedian` function should have a `median` variable. +Deine `getMedian`-Funktion sollte über eine `median`-Variable verfügen. ```js assert.match(getMedian.toString(), /median\s*=/); ``` -Your `median` variable should use a ternary operator to check if the `array.length` is even. +Deine `median`-Variable sollte einen ternären Operator verwenden, um zu überprüfen, ob die `array.length` eine gerade Zahl ist. ```js assert.match(getMedian.toString(), /median\s*=\s*array\.length\s*%\s*2\s*===\s*0\s*\?/); ``` -If the `array.length` is even, your `median` variable should use the `getMean` function to calculate the mean of the two middle numbers. Your first argument should be the value of `sorted` at `array.length / 2`, and the second at `array.length / 2 - 1`. +Wenn die `array.length` eine gerade Zahl ist, sollte deine `median`-Variable die `getMean`-Funktion verwenden, um den Mittelwert der beiden mittleren Zahlen zu berechnen. Your first argument should be the value of `sorted` at `array.length / 2`, and the second at `array.length / 2 - 1`. ```js assert.match(getMedian.toString(), /median\s*=\s*array\.length\s*%\s*2\s*===\s*0\s*\?\s*getMean\(\s*\[sorted\[array\.length\s*\/\s*2\]\s*,\s*sorted\[\s*array\.length\s*\/\s*2\s*-\s*1\]\]\)\s*\:/); ``` -If the `array.length` is odd, your `median` variable should assign the middle number to the `median` variable. The middle number is the value of `sorted` at `Math.floor(array.length / 2)`. +Wenn die `array.length` eine ungerade Zahl ist, sollte deine `median`-Variable der `median`-Variablen die mittlere Zahl zuweisen. The middle number is the value of `sorted` at `Math.floor(array.length / 2)`. ```js assert.match(getMedian.toString(), /median\s*=\s*array\.length\s*%\s*2\s*===\s*0\s*\?\s*getMean\(\s*\[sorted\[array\.length\s*\/\s*2\]\s*,\s*sorted\[\s*array\.length\s*\/\s*2\s*-\s*1\]\]\)\s*\:\s*sorted\[\s*Math\.floor\(\s*array\.length\s*\/\s*2\)\];/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md index 5306ff72463..1f07dbe4e02 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635091f8dbf554575fb5aa0c.md @@ -1,19 +1,19 @@ --- id: 635091f8dbf554575fb5aa0c -title: Step 23 +title: Schritt 23 challengeType: 0 dashedName: step-23 --- # --description-- -Finally, return the value of `median`. +Gib schließlich den Wert von `median` zurück. -Like the `getMean` function, you could condense this code into one line and reduce the number of variables you instantiate. However, it is important to remember that shorter code is not always better code. In this case, reducing the lines of code would make the code harder to read and understand, impacting future maintainability. +Like the `getMean` function, you could condense this code into one line and reduce the number of variables you instantiate. Es ist jedoch wichtig zu bedenken, dass ein kürzerer Code nicht immer besser ist. In diesem Fall würde eine Verkürzung der Codezeilen die Lesbarkeit und das Verständnis des Codes erschweren, was sich auf die künftige Wartbarkeit auswirken würde. # --hints-- -Your `getMedian` function should return the value of `median`. +Deine `getMedian`-Funktion sollte den Wert des `median` zurückgeben. ```js assert.match(getMedian.toString(), /return\s+median;/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e79d15aae30fac58f48e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e79d15aae30fac58f48e.md index 0f80bd629be..d7e42e99487 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e79d15aae30fac58f48e.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e79d15aae30fac58f48e.md @@ -1,6 +1,6 @@ --- id: 6352e79d15aae30fac58f48e -title: Step 24 +title: Schritt 24 challengeType: 0 dashedName: step-24 --- @@ -13,7 +13,7 @@ Declare a variable `median` and assign it the value of `getMedian(numbers)`. The # --hints-- -Your `calculate` function should have a `median` variable. +Deine `calculate`-Funktion sollte eine `median`-Variable enthalten. ```js assert.match(calculate.toString(), /median\s*=/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e93db104661305c5f658.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e93db104661305c5f658.md index 8473932561c..b876c50a5dd 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e93db104661305c5f658.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e93db104661305c5f658.md @@ -11,13 +11,13 @@ In your new function, declare an empty `counts` object. You will use this to tra # --hints-- -Your `getMode` function should have a `counts` variable. +Deine `getMode`-Funktion sollte eine `counts`-Variable enthalten. ```js assert.match(getMode.toString(), /counts\s*=/); ``` -Your `counts` variable should be an empty object. +Deine `counts`-Variable sollte ein leeres Objekt sein. ```js assert.match(getMode.toString(), /counts\s*=\s*\{\s*\};/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e96d2604f813c656750b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e96d2604f813c656750b.md index 8f07fdfe9ee..5508cc16096 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e96d2604f813c656750b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352e96d2604f813c656750b.md @@ -1,6 +1,6 @@ --- id: 6352e96d2604f813c656750b -title: Step 27 +title: Schritt 27 challengeType: 0 dashedName: step-27 --- @@ -13,7 +13,7 @@ Use the `.forEach()` method to loop through the `array`. In the callback, use th # --hints-- -Your `getMode` function should use the `.forEach()` method. +Deine `getMode`-Funktion sollte die `.forEach()`-Methode verwenden. ```js assert.match(getMode.toString(), /array\.forEach\(/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ea3a5b79e614ee2282fd.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ea3a5b79e614ee2282fd.md index fec7d654aa5..b920dcd37b6 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ea3a5b79e614ee2282fd.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ea3a5b79e614ee2282fd.md @@ -1,6 +1,6 @@ --- id: 6352ea3a5b79e614ee2282fd -title: Step 28 +title: Schritt 28 challengeType: 0 dashedName: step-28 --- @@ -15,7 +15,7 @@ Start by creating an `if` statement. In the condition, create a `Set` with `new # --hints-- -Your `getMode` function should have an `if` statement. +Deine `getMode`-Funktion sollte eine `if`-Anweisung enthalten. ```js assert.match(getMode.toString(), /if\s*\(/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ebd3ab962c168a122e85.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ebd3ab962c168a122e85.md index b7b8aa2f930..4020f07aa8e 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ebd3ab962c168a122e85.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ebd3ab962c168a122e85.md @@ -1,19 +1,19 @@ --- id: 6352ebd3ab962c168a122e85 -title: Step 29 +title: Schritt 29 challengeType: 0 dashedName: step-29 --- # --description-- -Now you need to find the value that occurs with the highest frequency. You'll use the `Object.keys()` method for this. +Now you need to find the value that occurs with the highest frequency. Hierfür verwendest du die `Object.keys()`-Methode. -Start by declaring a `highest` variable, and assigning it the value of the `counts` object's `Object.keys()` method. +Beginne mit der Deklaration einer `highest`-Variablen und weise ihr den Wert der `Object.keys()`-Methode des `counts`-Objekts zu. # --hints-- -Your `getMode` function should have a `highest` variable. +Deine `getMode`-Funktion sollte über eine `highest`-Variable verfügen. ```js assert.match(getMode.toString(), /highest\s*=/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ec8b9c70fd17b8c7ba3f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ec8b9c70fd17b8c7ba3f.md index cc699ca81f3..591828853af 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ec8b9c70fd17b8c7ba3f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ec8b9c70fd17b8c7ba3f.md @@ -1,13 +1,13 @@ --- id: 6352ec8b9c70fd17b8c7ba3f -title: Step 30 +title: Schritt 30 challengeType: 0 dashedName: step-30 --- # --description-- -Now you need to sort the values properly. Chain the `.sort()` method to your `Object.keys()` call. +Nun musst du die Werte richtig sortieren. Chain the `.sort()` method to your `Object.keys()` call. For the callback, you'll need to use the `counts` object to compare the values of each key. You can use the `a` and `b` parameters to access the keys. Then, return the value of `counts[b]` minus the value of `counts[a]`. @@ -15,7 +15,7 @@ Finally, access the first element in the array using bracket notation to complet # --hints-- -Your `getMode` function should use the `sort` method to sort the `Object.keys()` array. +Deine `getMode`-Funktion sollte die `sort`-Methode verwenden, um das `Object.keys()`-Array zu sortieren. ```js assert.match(getMode.toString(), /highest\s*=\s*Object\.keys\(\s*counts\s*\)\.sort\(/) diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ecef9f045519063da9b3.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ecef9f045519063da9b3.md index 381683844e0..645f08df992 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ecef9f045519063da9b3.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ecef9f045519063da9b3.md @@ -1,25 +1,25 @@ --- id: 6352ecef9f045519063da9b3 -title: Step 31 +title: Schritt 31 challengeType: 0 dashedName: step-31 --- # --description-- -If multiple numbers in a series occur at the same highest frequency, they are all considered the mode. Otherwise, the mode is the number that occurs most often, that single number is the mode. +Wenn mehrere Zahlen in einer Reihe mit der gleichen höchsten Frequenz auftreten, werden sie alle als Modus betrachtet. Otherwise, the mode is the number that occurs most often, that single number is the mode. -Thankfully, you can handle both of these cases at once with the `.filter()` method. Start by declaring a `mode` variable and assigning it the value of `Object.keys(counts)`. +Glücklicherweise kannst du mit der `.filter()`-Methode beide Fälle auf einmal behandeln. Deklariere zunächst eine `mode`-Variable und weise ihr den Wert `Object.keys(counts)` zu. # --hints-- -Your `getMode` function should have a `mode` variable. +Deine `getMode`-Funktion sollte eine `mode`-Variable enthalten. ```js assert.match(getMode.toString(), /mode\s*=/); ``` -Your `getMode` function should use the `Object.keys()` method to get the keys of the `counts` object and assign them to the `mode` variable. +Deine `getMode`-Funktion sollte die `Object.keys()`-Methode verwenden, um die Tasten des `counts`-Objekts zu erhalten und sie der `mode`-Variable zuzuweisen. ```js assert.match(getMode.toString(), /mode\s*=\s*Object\.keys\(\s*counts\s*\)/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352edee8a4de01ad693f0e4.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352edee8a4de01ad693f0e4.md index fa1ae3702f8..ba7f8b9fd01 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352edee8a4de01ad693f0e4.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352edee8a4de01ad693f0e4.md @@ -1,6 +1,6 @@ --- id: 6352edee8a4de01ad693f0e4 -title: Step 32 +title: Schritt 32 challengeType: 0 dashedName: step-32 --- @@ -23,7 +23,7 @@ Your `.filter()` method should take a callback function with a parameter `el`. assert.match(getMode.toString(), /mode\s*=\s*Object\.keys\(\s*counts\s*\)\.filter\(function\s*\(\s*el\s*\)/); ``` -Your `.filter()` method should return whether the value of `counts[el]` is equal to `counts[highest]`. +Deine `.filter()`-Methode sollte zurückgeben, ob der Wert von `counts[el]` `counts[highest]` ergibt. ```js assert.match(getMode.toString(), /mode\s*=\s*Object\.keys\(\s*counts\s*\)\.filter\(function\s*\(\s*el\s*\)\s*\{\s*return\s*counts\[\s*el\s*\]\s*===\s*counts\[\s*highest\s*\];\s*\}/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ee566a59d31d24bde74b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ee566a59d31d24bde74b.md index 41d854b50bc..c907fc841bc 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ee566a59d31d24bde74b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ee566a59d31d24bde74b.md @@ -1,31 +1,31 @@ --- id: 6352ee566a59d31d24bde74b -title: Step 33 +title: Schritt 33 challengeType: 0 dashedName: step-33 --- # --description-- -Time to return your `mode` variable. +Zeit, deine `mode`-Variable zurückzugeben. -`mode` is an array, so return it as a string with the `.join()` method. Separate the elements with a comma followed by a space. +`mode` ist ein Array, also gib ihn mit der `.join()`-Methode als String zurück. Trenne die Elemente durch ein Komma, gefolgt von einem Leerzeichen. # --hints-- -Your `getMode` function should return the `mode` variable. +Deine `getMode`-Funktion sollte die `mode`-Variable zurückgeben. ```js assert.match(getMode.toString(), /return\s*mode\s*/) ``` -Your `mode` variable should be returned as a string with the `join` method. +Deine `mode`-Variable sollte mit der `join`-Methode als String zurückgegeben werden. ```js assert.match(getMode.toString(), /return\s*mode\.join\(/) ``` -You should separate the elements of the `mode` array with a comma and a space. +Du solltest die Elemente des `mode`-Arrays durch ein Komma und ein Leerzeichen trennen. ```js assert.match(getMode.toString(), /return\s*mode\.join\(\s*('|"),\s\1\s*\);/) diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f09b1e53a420e7873344.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f09b1e53a420e7873344.md index 9ef808c7073..51a4f96bd57 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f09b1e53a420e7873344.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f09b1e53a420e7873344.md @@ -1,6 +1,6 @@ --- id: 6352f09b1e53a420e7873344 -title: Step 34 +title: Schritt 34 challengeType: 0 dashedName: step-34 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f179bdca23221298a5ba.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f179bdca23221298a5ba.md index c88ce39ce83..ea03fb7780e 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f179bdca23221298a5ba.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f179bdca23221298a5ba.md @@ -1,6 +1,6 @@ --- id: 6352f179bdca23221298a5ba -title: Step 35 +title: Schritt 35 challengeType: 0 dashedName: step-35 --- @@ -49,7 +49,7 @@ Your `getRange` function should use `Math.min` on the spread `array` parameter. assert.match(code.split("getRange")[1], /Math\.min\(\s*\.\.\.array\s*\)/); ``` -Your `getRange` function should return the difference between the largest and smallest numbers in the list. +Deine `getRange`-Funktion sollte die Differenz zwischen der größten und der kleinsten Zahl in der Liste zurückgeben. ```js assert.equal(getRange([1, 2, 3, 4, 5]), 4); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f2526dccb523150b64fb.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f2526dccb523150b64fb.md index d562fff11bf..e3d7086fcbe 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f2526dccb523150b64fb.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f2526dccb523150b64fb.md @@ -1,6 +1,6 @@ --- id: 6352f2526dccb523150b64fb -title: Step 36 +title: Schritt 36 challengeType: 0 dashedName: step-36 --- @@ -11,13 +11,13 @@ Add the logic for calculating and displaying the range to your `calculate` funct # --hints-- -Your `calculate` function should set a `range` variable to the result of `getRange(numbers)`. +Deine `calculate`-Funktion sollte eine `range`-Variable auf das Resultat von `getRange(numbers)` setzen. ```js assert.match(calculate.toString(), /range\s*=\s*getRange\(numbers\);/); ``` -Your `calculate` function should set the `#range` element's `textContent` to the `range` variable. +Deine `calculate`-Funktion sollte den `textContent` des `#range`-Elements auf den Wert der `range`-Variable setzen. ```js assert.match(calculate.toString(), /document\.querySelector\(('|")#range\1\)\.textContent\s*=\s*range;/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f2a24eb71b24284ca2b6.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f2a24eb71b24284ca2b6.md index c19384026eb..4c29c5210d5 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f2a24eb71b24284ca2b6.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352f2a24eb71b24284ca2b6.md @@ -1,6 +1,6 @@ --- id: 6352f2a24eb71b24284ca2b6 -title: Step 37 +title: Schritt 37 challengeType: 0 dashedName: step-37 --- @@ -25,7 +25,7 @@ Your `getVariance` function should take an `array` parameter. assert.match(getVariance.toString(), /array/); ``` -Your `getVariance` function should declare a `mean` variable. +Deine `getVariance`-Funktion sollte eine `mean`-Variable deklarieren. ```js assert.match(getVariance.toString(), /mean\s*=/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352faf71a9db52631864634.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352faf71a9db52631864634.md index 5deeebe823b..c33fdbb0c5c 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352faf71a9db52631864634.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352faf71a9db52631864634.md @@ -1,35 +1,35 @@ --- id: 6352faf71a9db52631864634 -title: Step 38 +title: Schritt 38 challengeType: 0 dashedName: step-38 --- # --description-- -The next step is to calculate how far each element is from the mean. Declare a `differences` variable, and assign it the value of `array.map()`. For the callback, return the value of `el` minus `mean`. +Im nächsten Schritt wird berechnet, wie weit jedes Element vom Mittelwert entfernt ist. Deklariere eine `differences`-Variable und weise ihr den Wert von `array.map()` zu. Für den Callback wird der Wert von `el` minus `mean` zurückgegeben. # --hints-- -Your `getVariance` function should have a `differences` variable. +Deine `getVariance`-Funktion sollte eine `differences`-Variable haben. ```js assert.match(getVariance.toString(), /differences\s*=/); ``` -Your `differences` variable should use the `array.map()` method. +Deine `differences`-Variable sollte die `array.map()`-Methode verwenden. ```js assert.match(getVariance.toString(), /differences\s*=\s*array\.map\(/); ``` -Your `differences` variable should use the `el` parameter in the callback function. +Deine `differences`-Variable sollte den `el`-Parameter in der Callback-Funktion verwenden. ```js assert.match(getVariance.toString(), /differences\s*=\s*array\.map\(function\s*\(?\s*el\s*\)?/); ``` -Your `map` callback should return the value of `el` minus `mean`. +Dein `map`-Callback sollte den Wert von `el` minus `mean` zurückgeben. ```js assert.match(getVariance.toString(), /differences\s*=\s*array\.map\(function\s*\(?\s*el\s*\)?\s*\{\s*return\s*el\s*-\s*mean;?\s*\}/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fbb93a91a8272f838d42.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fbb93a91a8272f838d42.md index 97df312aae6..5c144c54230 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fbb93a91a8272f838d42.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fbb93a91a8272f838d42.md @@ -1,43 +1,43 @@ --- id: 6352fbb93a91a8272f838d42 -title: Step 39 +title: Schritt 39 challengeType: 0 dashedName: step-39 --- # --description-- -The next step is to square each of the differences. To square a value, you can use the `**` operator. For example, `3 ** 2` would return `9`. +The next step is to square each of the differences. To square a value, you can use the `**` operator. Zum Beispiel würde `3 ** 2` `9` zurückgeben. -Declare a `squaredDifferences` variable, and assign it the value of `differences.map()`. For the callback, return the value of `el` squared. +Deklariere eine `squaredDifferences`-Variable und weise ihr den Wert von `differences.map()` zu. For the callback, return the value of `el` squared. # --hints-- -You should have a `squaredDifferences` variable. +Du solltest eine `squaredDifferences`-Variable haben. ```js assert.match(getVariance.toString(), /squaredDifferences\s*=/); ``` -Your `squaredDifferences` variable should use the `differences.map()` method. +Die `squaredDifferences`-Variable sollte die `differences.map()`-Methode verwenden. ```js assert.match(getVariance.toString(), /squaredDifferences\s*=\s*differences\.map\(/); ``` -Your `squaredDifferences` variable should use the `el` parameter in the callback function. +Deine `squaredDifferences`-Variable sollte den `el`-Parameter in der Callback-Funktion verwenden. ```js assert.match(getVariance.toString(), /squaredDifferences\s*=\s*differences\.map\(function\s*\(?\s*el\s*\)?/); ``` -Your `map` callback should return the value of `el` squared. +Dein `map`-Callback sollte den Wert von `el` zum Quadrat zurückgeben. ```js assert.match(getVariance.toString(), /squaredDifferences\s*=\s*differences\.map\(function\s*\(?\s*el\s*\)?\s*\{\s*return\s*Math\.pow\(\s*el\s*,\s*2\s*\);\s*\}/); ``` -Your `map` callback should use the `**` operator. +Dein `map`-Callback sollte den `**`-Operator verwenden. ```js assert.match(code.split("getVariance")[1], /el\s*\*\*\s*2/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fcb156834128001ea945.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fcb156834128001ea945.md index a2b550ebf67..6a21a01ad4d 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fcb156834128001ea945.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fcb156834128001ea945.md @@ -1,6 +1,6 @@ --- id: 6352fcb156834128001ea945 -title: Step 40 +title: Schritt 40 challengeType: 0 dashedName: step-40 --- @@ -13,19 +13,19 @@ Declare a `sumSquaredDifferences` variable, and assign it the value of `squaredD # --hints-- -You should have a `sumSquaredDifferences` variable. +Du solltest eine `sumSquaredDifferences`-Variable haben. ```js assert.match(getVariance.toString(), /sumSquaredDifferences\s*=/); ``` -Your `sumSquaredDifferences` variable should use the `squaredDifferences.reduce()` method. +Deine `sumSquaredDifferences`-Variable sollte die `squaredDifferences.reduce()`-Methode verwenden. ```js assert.match(getVariance.toString(), /sumSquaredDifferences\s*=\s*squaredDifferences\.reduce\(/); ``` -Your `sumSquaredDifferences` variable should use the `acc` and `el` parameters in the callback function. +Deine `sumSquaredDifferences`-Variable sollte die `acc`- und `el`-Parameter in der Callback-Funktion verwenden. ```js assert.match(getVariance.toString(), /sumSquaredDifferences\s*=\s*squaredDifferences\.reduce\(function\s*\(?\s*acc\s*,\s*el\s*\)?/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fce75b2d3b2924930f1e.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fce75b2d3b2924930f1e.md index a9de0de327d..2343f30eeee 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fce75b2d3b2924930f1e.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fce75b2d3b2924930f1e.md @@ -1,6 +1,6 @@ --- id: 6352fce75b2d3b2924930f1e -title: Step 41 +title: Schritt 41 challengeType: 0 dashedName: step-41 --- @@ -9,53 +9,53 @@ dashedName: step-41 With two `.map()` calls and a `.reduce()` call, you're creating extra arrays and iterating more times than needed. You should move all of the logic into the `.reduce()` call to save time and memory. -Remove the `differences`, `squaredDifferences`, and `sumSquaredDifferences` variables (and their values). Declare a `variance` variable, and assign it the value of `array.reduce()`. For the callback, pass in your standard `acc` and `el` parameters, but leave the function body empty for now. Don't forget to set the initial value to `0`. +Entferne die `differences`, `squaredDifferences` und `sumSquaredDifferences`-Variablen (und deren Werte). Deklariere eine `variance`-Variable und weise ihr den Wert von `array.reduce()` zu. For the callback, pass in your standard `acc` and `el` parameters, but leave the function body empty for now. Denke daran, den Ausgangswert auf `0` zu setzen. # --hints-- -You should remove the `differences` variable. +Du solltest die `differences`-Variablen entfernen. ```js assert.notMatch(getVariance.toString(), /differences\s*=/); ``` -You should remove the `squaredDifferences` variable. +Du solltest die `squaredDifferences`-Variablen entfernen. ```js assert.notMatch(getVariance.toString(), /squaredDifferences\s*=/); ``` -You should remove the `sumSquaredDifferences` variable. +Du solltest die `sumSquaredDifferences`-Variablen entfernen. ```js assert.notMatch(getVariance.toString(), /sumSquaredDifferences\s*=/); ``` -You should have a `variance` variable. +Du solltest eine `variance`-Variable haben. ```js assert.match(getVariance.toString(), /variance\s*=/); ``` -Your `variance` variable should use the `array.reduce()` method. +Deine `variance`-Variable sollte die `array.reduce()`-Methode verwenden. ```js assert.match(getVariance.toString(), /variance\s*=\s*array\.reduce\(/); ``` -Your `variance` variable should use the `acc` and `el` parameters in the callback function. +Deine `variance`-Variable sollte die `acc`- und `el`-Parameter in der Callback-Funktion verwenden. ```js assert.match(getVariance.toString(), /variance\s*=\s*array\.reduce\(function\s*\(?\s*acc\s*,\s*el\s*\)?/); ``` -Your `reduce` callback should be an empty function. +Deine `reduce`-Callback sollte eine leere Funktion sein. ```js assert.match(getVariance.toString(), /variance\s*=\s*array\.reduce\(function\s*\(?\s*acc\s*,\s*el\s*\)?\s*\{\s*\}/); ``` -Your `reduce` callback should have an initial value of `0`. +Dein `reduce`-Callback sollte einen Ausgangswert von `0` haben. ```js assert.match(getVariance.toString(), /variance\s*=\s*array\.reduce\(function\s*\(?\s*acc\s*,\s*el\s*\)?\s*\{\s*\}\s*,\s*0\s*\)/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fe473d53592a40ae403b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fe473d53592a40ae403b.md index 2a4c44726d9..850d1096642 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fe473d53592a40ae403b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fe473d53592a40ae403b.md @@ -1,47 +1,47 @@ --- id: 6352fe473d53592a40ae403b -title: Step 42 +title: Schritt 42 challengeType: 0 dashedName: step-42 --- # --description-- -Within your empty `.reduce()` callback, declare a variable `difference` and set it to the value of `el` minus `mean`. Then declare a `squared` variable, and set it to the value of `difference` to the power of `2`. Finally, return the value of `acc` plus `squared`. +Deklariere eine Variable `difference` innerhalb deines leeren `.reduce()`-Callbacks und setze sie auf den Wert von `el` minus `mean`. Deklariere dann eine `squared`-Variable und setze sie auf den Wert von `difference` hoch `2`. Gib schließlich den Wert von `acc` plus `squared` zurück. # --hints-- -Your `reduce` callback should have a `difference` variable. +Dein `reduce`-Callback sollte über eine `difference`-Variable verfügen. ```js assert.match(getVariance.toString(), /variance\s*=\s*array\.reduce\(function\s*\(?\s*acc\s*,\s*el\s*\)?\s*\{\s*var\s*difference\s*=/); ``` -Your `difference` variable should be set to the value of `el` minus `mean`. +Deine `difference`-Variable sollte auf den Wert von `el` minus `mean` gesetzt werden. ```js assert.match(getVariance.toString(), /variance\s*=\s*array\.reduce\(function\s*\(?\s*acc\s*,\s*el\s*\)?\s*\{\s*var\s*difference\s*=\s*el\s*-\s*mean\s*;/); ``` -Your `reduce` callback should have a `squared` variable. +Dein `reduce`-Callback sollte über eine `squared`-Variable verfügen. ```js assert.match(getVariance.toString(), /variance\s*=\s*array\.reduce\(function\s*\(?\s*acc\s*,\s*el\s*\)?\s*\{\s*var\s*difference\s*=\s*el\s*-\s*mean\s*;\s*var\s*squared\s*=/); ``` -Your `squared` variable should be set to the value of `difference` to the power of 2. +Deine `squared`-Variable sollte auf den Wert von `difference` hoch 2 gesetzt werden. ```js assert.match(getVariance.toString(), /variance\s*=\s*array\.reduce\(function\s*\(?\s*acc\s*,\s*el\s*\)?\s*\{\s*var\s*difference\s*=\s*el\s*-\s*mean\s*;\s*var\s*squared\s*=\s*Math\.pow\(\s*difference\s*,\s*2\s*\);/); ``` -Your `reduce` callback should return the value of `acc` plus `squared`. +Dein `reduce`-Callback sollte den Wert von `acc` plus `squared` zurückgeben. ```js assert.match(getVariance.toString(), /variance\s*=\s*array\.reduce\(function\s*\(?\s*acc\s*,\s*el\s*\)?\s*\{\s*var\s*difference\s*=\s*el\s*-\s*mean\s*;\s*var\s*squared\s*=\s*Math\.pow\(\s*difference\s*,\s*2\s*\);\s*return\s*acc\s*\+\s*squared\s*;/); ``` -You should not remove the initial value of `0` from your `.reduce()` method. +Du solltest den Ausgangswert von `0` nicht aus deiner `.reduce()`-Methode entfernen. ```js assert.match(getVariance.toString(), /variance\s*=\s*array\.reduce\(function\s*\(?\s*acc\s*,\s*el\s*\)?\s*\{\s*var\s*difference\s*=\s*el\s*-\s*mean\s*;\s*var\s*squared\s*=\s*Math\.pow\(\s*difference\s*,\s*2\s*\);\s*return\s*acc\s*\+\s*squared\s*;\s*\}\s*,\s*0\)/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fed209792d2b89e92ea1.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fed209792d2b89e92ea1.md index c028581116d..bde3955ba37 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fed209792d2b89e92ea1.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352fed209792d2b89e92ea1.md @@ -1,6 +1,6 @@ --- id: 6352fed209792d2b89e92ea1 -title: Step 43 +title: Schritt 43 challengeType: 0 dashedName: step-43 --- @@ -9,17 +9,17 @@ dashedName: step-43 The final step in calculating the variance is to divide the sum of the squared differences by the count of numbers. -Divide your `.reduce()` call by the length of the array (in your `variance` declaration). Then, return `variance`. +Teile deinen `.reduce()`-Aufruf durch die Länge des Arrays (in deiner `variance`-Deklaration). Gib dann `variance` zurück. # --hints-- -You should divide the result of the `.reduce()` call by the length of the array. +Du solltest das Ergebnis des `.reduce()`-Aufrufs durch die Länge des Arrays teilen. ```js assert.match(getVariance.toString(), /variance\s*=\s*array\.reduce\(function\s*\(?\s*acc\s*,\s*el\s*\)?\s*\{\s*var\s*difference\s*=\s*el\s*-\s*mean\s*;\s*var\s*squared\s*=\s*Math\.pow\(\s*difference\s*,\s*2\s*\);\s*return\s*acc\s*\+\s*squared\s*;\s*\}\s*,\s*0\)\s*\/\s*array\.length;/); ``` -You should return the value of `variance`. +Du solltest den Wert von `variance` zurückgeben. ```js assert.match(getVariance.toString(), /return\s*variance\s*;/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ff27e0e51b2c7dce0010.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ff27e0e51b2c7dce0010.md index 2d2caf9b81e..39b6a6de2d8 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ff27e0e51b2c7dce0010.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ff27e0e51b2c7dce0010.md @@ -1,6 +1,6 @@ --- id: 6352ff27e0e51b2c7dce0010 -title: Step 44 +title: Schritt 44 challengeType: 0 dashedName: step-44 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ffe4cfafa72d595a0007.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ffe4cfafa72d595a0007.md index 40bae5a85aa..95be50a86fb 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ffe4cfafa72d595a0007.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6352ffe4cfafa72d595a0007.md @@ -1,6 +1,6 @@ --- id: 6352ffe4cfafa72d595a0007 -title: Step 45 +title: Schritt 45 challengeType: 0 dashedName: step-45 --- @@ -13,19 +13,19 @@ Begin by declaring a `getStandardDeviation` function, with the `array` parameter # --hints-- -You should have a `getStandardDeviation` function. +Du solltest eine `getStandardDeviation`-Funktion haben. ```js assert.isFunction(getStandardDeviation); ``` -Your `getStandardDeviation` function should have an `array` parameter. +Deine `getStandardDeviation`-Funktion sollte einen `array`-Parameter enthalten. ```js assert.match(getStandardDeviation.toString(), /array/); ``` -Your `getStandardDeviation` function should have a `variance` variable. +Deine `getStandardDeviation`-Funktion sollte eine `variance`-Variable enthalten. ```js assert.match(getStandardDeviation.toString(), /variance\s*=/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353004b235d7a2e0b913f2b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353004b235d7a2e0b913f2b.md index daa8ca0fda1..4500ca96d2c 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353004b235d7a2e0b913f2b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353004b235d7a2e0b913f2b.md @@ -1,6 +1,6 @@ --- id: 6353004b235d7a2e0b913f2b -title: Step 46 +title: Schritt 46 challengeType: 0 dashedName: step-46 --- @@ -13,19 +13,19 @@ Declare a `standardDeviation` variable, and use the `Math.pow()` function to ass # --hints-- -You should have a `standardDeviation` variable. +Du solltest eine `standardDeviation`-Variable haben. ```js assert.match(getStandardDeviation.toString(), /standardDeviation\s*=/); ``` -Your `standardDeviation` variable should use the `Math.pow()` function. +Deine `standardDeviation`-Variable sollte die `Math.pow()`-Funktion verwenden. ```js assert.match(getStandardDeviation.toString(), /standardDeviation\s*=\s*Math\.pow\(/); ``` -Your `standardDeviation` variable should use the `variance` variable. +Deine `standardDeviation`-Variable sollte die `variance`-Variable verwenden. ```js assert.match(getStandardDeviation.toString(), /standardDeviation\s*=\s*Math\.pow\(\s*variance\s*,/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353024f5eab012fa2f57eec.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353024f5eab012fa2f57eec.md index 0effb1d2fe9..74f2ce09cc8 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353024f5eab012fa2f57eec.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353024f5eab012fa2f57eec.md @@ -1,6 +1,6 @@ --- id: 6353024f5eab012fa2f57eec -title: Step 47 +title: Schritt 47 challengeType: 0 dashedName: step-47 --- @@ -13,7 +13,7 @@ Change your `standardDeviation` variable to use this method instead of `Math.pow # --hints-- -Your `standardDeviation` variable should use `Math.sqrt()`. +Deine `standardDeviation`-Variable sollte `Math.sqrt()` verwenden. ```js assert.match(getStandardDeviation.toString(), /standardDeviation\s*=\s*Math\.sqrt\(\s*variance\s*\);/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353028147d3c7309017216a.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353028147d3c7309017216a.md index 760063659a1..f6743236c5a 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353028147d3c7309017216a.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6353028147d3c7309017216a.md @@ -1,6 +1,6 @@ --- id: 6353028147d3c7309017216a -title: Step 48 +title: Schritt 48 challengeType: 0 dashedName: step-48 --- @@ -11,7 +11,7 @@ Return your `standardDeviation` variable. # --hints-- -Your `getStandardDeviation` function should return the `standardDeviation` variable. +Deine `getStandardDeviation`-Funktion sollte die `standardDeviation`-Variable zurückgeben. ```js assert.match(getStandardDeviation.toString(), /return\s*standardDeviation;/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635302be760d6031d11a06cd.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635302be760d6031d11a06cd.md index 015e50b74a6..09f9d6f29c9 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635302be760d6031d11a06cd.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/635302be760d6031d11a06cd.md @@ -1,6 +1,6 @@ --- id: 635302be760d6031d11a06cd -title: Step 49 +title: Schritt 49 challengeType: 0 dashedName: step-49 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6374249d3fbf2a5b079ba036.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6374249d3fbf2a5b079ba036.md index 6ff38ec6626..7a1345c3a06 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6374249d3fbf2a5b079ba036.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-advanced-array-methods-by-building-a-statistics-calculator/6374249d3fbf2a5b079ba036.md @@ -1,13 +1,13 @@ --- id: 6374249d3fbf2a5b079ba036 -title: Step 50 +title: Schritt 50 challengeType: 0 dashedName: step-50 --- # --description-- -There is one last thing to fix. The `.sort()` method mutates the array it's called on. It is generally bad practice to mutate a function argument, which `array` is. +Es gibt noch eine letzte Sache, die zu beheben ist. The `.sort()` method mutates the array it's called on. It is generally bad practice to mutate a function argument, which `array` is. To fix this, add an empty `.slice()` call before your `.sort()` method. The empty `.slice()` call will make a shallow copy of the `array`, which you are free to mutate. diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6406a71d2b35103a340dba06.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6406a71d2b35103a340dba06.md index 5cbbf56b6ed..847b7db816c 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6406a71d2b35103a340dba06.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6406a71d2b35103a340dba06.md @@ -1,17 +1,17 @@ --- id: 6406a71d2b35103a340dba06 -title: Step 3 +title: Schritt 3 challengeType: 0 dashedName: step-3 --- # --description-- -You will be using this as an event listener for the `sortButton`. Because buttons associated with a `form` element submit by default, you need to prevent that behavior. Call `event.preventDefault()` in your function to do this. +Du wirst dies als Eventlistener für den `sortButton` verwenden. Da Buttons, die mit einem `form`-Element verbunden sind, standardmäßig übergeben werden, musst du dieses Verhalten verhindern. Rufe dazu `event.preventDefault()` in deiner Funktion auf. # --hints-- -Your `sortInputArray` function should call `event.preventDefault()`. +Deine `sortInputArray`-Funktion sollte `event.preventDefault()` aufrufen. ```js assert.match(sortInputArray.toString(), /event\.preventDefault\(\)/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6406a9945fa5d23c225d31cc.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6406a9945fa5d23c225d31cc.md index aff0f01b51b..985d0785475 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6406a9945fa5d23c225d31cc.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6406a9945fa5d23c225d31cc.md @@ -1,13 +1,13 @@ --- id: 6406a9945fa5d23c225d31cc -title: Step 4 +title: Schritt 4 challengeType: 0 dashedName: step-4 --- # --description-- -To test your code as you write it, mount an event listener to your `sortButton` element. It should listen for the `click` event, and take `sortInputArray` as the callback. +Um deinen Code zu testen, während du ihn schreibst, kannst du zu deinem `sortButton`-Element einen Eventlistener hinzufügen. It should listen for the `click` event, and take `sortInputArray` as the callback. # --hints-- @@ -23,7 +23,7 @@ Your `.addEventListener()` method should listen for the `click` event. assert.match(code, /sortButton\s*\.\s*addEventListener\s*\(\s*('|"|`)click\1\s*,/); ``` -Your `.addEventListener()` method should take `sortInputArray` as the callback. Remember to pass the function reference, not the function call. +Deine `.addEventListener()`-Methode sollte `sortInputArray` als Callback verwenden. Denke daran, die Funktionsreferenz zu übergeben und nicht den Funktionsaufruf. ```js assert.match(code, /sortButton\s*\.\s*addEventListener\s*\(\s*('|"|`)click\1\s*,\s*sortInputArray\s*\)/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6406adbca6b41d3d7cef85ab.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6406adbca6b41d3d7cef85ab.md index 046e6ab37cd..27e339e0cc5 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6406adbca6b41d3d7cef85ab.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6406adbca6b41d3d7cef85ab.md @@ -1,31 +1,31 @@ --- id: 6406adbca6b41d3d7cef85ab -title: Step 5 +title: Schritt 5 challengeType: 0 dashedName: step-5 --- # --description-- -Back in your `sortInputArray` function, you need to get the values from your `select` elements. Since they all have the class `values-dropdown`, you can query them all at once. +Zurück in deiner `sortInputArray`-Funktion musst du die Werte aus deinen `select`-Elementen abrufen. Da sie alle die Klasse `values-dropdown` verwenden, kannst du sie alle gleichzeitig abfragen. -Use `document.getElementsByClassName()` to get all the elements with the class `values-dropdown`. Assign that to an `inputValues` variable. +Verwende `document.getElementsByClassName()`, um alle Elemente mit der Klasse `values-dropdown` abzurufen. Weise diese einer `inputValues`-Variable zu. # --hints-- -You should use `document.getElementsByClassName()` to get all the elements with the class `values-dropdown`. +Du solltest `document.getElementsByClassName()` verwenden, um alle Elemente mit der Klasse `values-dropdown` abzurufen. ```js assert.match(sortInputArray.toString(), /document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)/); ``` -You should assign the result of `document.getElementsByClassName()` to a variable named `inputValues`. +Du solltest das Ergebnis von `document.getElementsByClassName()` einer Variablen mit dem Namen `inputValues` zuweisen. ```js assert.match(sortInputArray.toString(), /inputValues\s*=\s*document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)/); ``` -You should use `const` to declare `inputValues`. +Du solltest `const` verwenden, um `inputValues` zu deklarieren. ```js assert.match(code, /const\s+inputValues\s*=\s*document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6406bb32f9ed593f26c33b2b.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6406bb32f9ed593f26c33b2b.md index 8f7df60d313..f3b1dde37d6 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6406bb32f9ed593f26c33b2b.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6406bb32f9ed593f26c33b2b.md @@ -1,25 +1,25 @@ --- id: 6406bb32f9ed593f26c33b2b -title: Step 6 +title: Schritt 6 challengeType: 0 dashedName: step-6 --- # --description-- -Remember that `.getElementsByClassName()` returns an array-like object. You can use the spread operator to convert it into an array. +Denke daran, dass `.getElementsByClassName()` ein array-ähnliches Objekt zurückgibt. Mit dem spread-Operator kannst du es in ein Array umwandeln. -Convert the `document.getElementsByClassName()` call to an array with the spread operator and assign it to a variable called `inputValues`. +Konvertiere den `document.getElementsByClassName()`-Aufruf mit dem spread-Operator zu einem Array und weise ihn einer Variablen namens `inputValues` zu. # --hints-- -You should use the spread operator on `document.getElementsByClassName()`. +Du solltest den spread-Operator für `document.getElementsByClassName()` verwenden. ```js assert.match(code, /\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)/); ``` -You should wrap the spread operator and `.getElementsByClassName()` in square brackets to create an array. +Du solltest den spread-Operator und `.getElementsByClassName()` in eckige Klammern umschließen, um ein Array zu erstellen. ```js assert.match(code, /\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md index a3e273cd5b4..6df543db043 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407b940b8983005578d0824.md @@ -1,37 +1,37 @@ --- id: 6407b940b8983005578d0824 -title: Step 7 +title: Schritt 7 challengeType: 0 dashedName: step-7 --- # --description-- -You need to get the values from your `select` elements. However, these values are strings, and you need them to be numbers. +Du musst die Werte aus deinen `select`-Elementen abrufen. Bei diesen Werten handelt es sich jedoch um Strings, und du benötigst Zahlen. -Since you have an array, you can use the `map` method to convert each value to a number. Do this by passing a callback function to `map` that takes a `dropdown` parameter and returns `Number(dropdown.value)`. +Da du ein Array hast, kannst du die `map`-Methode verwenden, um jeden Wert in eine Zahl umzuwandeln. Übergib dazu eine Callback-Funktion an `map`, die einen `dropdown`-Parameter verwendet und `Number(dropdown.value)` zurückgibt. # --hints-- -You should chain the `map` method directly on your array. +Du solltest die `map`-Methode direkt mit deinem Array verketten. ```js assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\(/); ``` -Your `map` callback function should use arrow function syntax. +Deine `map`-Callback-Funktion sollte eine Arrow-Funktion-Syntax verwenden. ```js assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*\(?dropdown?\)?\s*\s*=>/); ``` -Your `map` callback function should take a `dropdown` parameter. +Deine `map`-Callback-Funktion sollte einen `dropdown`-Parameter verwenden. ```js assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*\(?dropdown\s*\)?\s*=>/); ``` -Your `map` callback function should implicitly return `Number(dropdown.value)`. +Deine `map`-Callback-Funktion sollte implizit `Number(dropdown.value)` zurückgeben. ```js assert.match(code, /inputValues\s*=\s*\[\s*\.\.\.document\.getElementsByClassName\(\s*('|"|`)values-dropdown\1\s*\)\s*\]\s*\.map\s*\(\s*\(?dropdown\s*\)?\s*=>\s*Number\s*\(\s*dropdown\.value\s*\)/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md index 77e77b395f9..0f9693a5ee3 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c303b4272606c019f338.md @@ -1,15 +1,15 @@ --- id: 6407c303b4272606c019f338 -title: Step 8 +title: Schritt 8 challengeType: 0 dashedName: step-8 --- # --description-- -You need a function to update the display with the sorted numbers. Start by using arrow syntax to declare an `updateUI` function that takes a single `array` parameter. +Du benötigst eine Funktion, um das Display mit den sortierten Zahlen zu aktualisieren. Beginne, indem du die Arrow-Syntax verwendest, um eine `updateUI`-Funktion zu deklarieren, die einen einzelnen `array`-Parameter verwendet. -Because you will be writing algorithms that won't immediately have a return value, set a fallback value for `array` to be an empty array. Here is an example of a function that has a fallback value: +Because you will be writing algorithms that won't immediately have a return value, set a fallback value for `array` to be an empty array. Hier ist ein Beispiel für eine Funktion, die einen Fallback-Wert hat: ```js const myFunction = (string = "") => { @@ -19,37 +19,37 @@ const myFunction = (string = "") => { # --hints-- -You should use `const` to declare an `updateUI` variable. +Du solltest `const` verwenden, um eine `updateUI`-Variable zu deklarieren. ```js assert.match(code, /const\s+updateUI\s*=/); ``` -`updateUI` should be a function. +`updateUI` sollte eine Funktion sein. ```js assert.isFunction(updateUI); ``` -`updateUI` should use arrow syntax. +`updateUI` sollte eine Arrow-Syntax verwenden. ```js assert.match(code, /const\s+updateUI\s*=\s*\(.*\)\s*=>/); ``` -`updateUI` should take a single `array` parameter. +`updateUI` sollte einen einzelnen `array`-Parameter verwenden. ```js assert.match(code, /const\s+updateUI\s*=\s*\(\s*array/); ``` -`updateUI` should have a fallback value of an empty array for `array`. +`updateUI` sollte einen Fallback-Wert eines leeren Arrays für `array` haben. ```js assert.match(code, /const\s+updateUI\s*=\s*\(\s*array\s*=\s*\[\s*\]\s*\)/); ``` -`updateUI` should be empty. +`updateUI` sollte leer sein. ```js assert.match(code, /const\s+updateUI\s*=\s*\(\s*array\s*=\s*\[\s*\]\s*\)\s*=>\s*{\s*}/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md index e8163807e50..f6d1876e65d 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c4abf5be6d07d8c12ade.md @@ -1,6 +1,6 @@ --- id: 6407c4abf5be6d07d8c12ade -title: Step 9 +title: Schritt 9 challengeType: 0 dashedName: step-9 --- @@ -31,7 +31,7 @@ Your callback function should take two parameters, `num` and `i`. assert.match(code, /array\.forEach\s*\(\s*\(\s*num\s*,\s*i\s*\)\s*=>/); ``` -Your callback function should be empty. +Deine Callback-Funktion sollte leer sein. ```js assert.match(code, /array\.forEach\s*\(\s*\(\s*num\s*,\s*i\s*\)\s*=>\s*{\s*}\s*\)/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md index 2c5d47b2578..d05ae33845a 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c627ddc93708c8dee796.md @@ -1,29 +1,29 @@ --- id: 6407c627ddc93708c8dee796 -title: Step 10 +title: Schritt 10 challengeType: 0 dashedName: step-10 --- # --description-- -Create a variable named `outputValueNode` and set its value to the result of calling the `document.getElementById()` method. Use template literal syntax to pass in the `output-value-${i}` string to `.getElementById()`. +Erstelle eine Variable mit dem Namen `outputValueNode` und setze ihren Wert auf das Ergebnis des Aufrufs der `document.getElementById()`-Methode. Verwende die Template-Literal-Syntax, um dem `.getElementById()` den `output-value-${i}`-String zu übergeben. # --hints-- -Use `const` to declare an `outputValueNode` variable in your `.forEach()` callback. +Verwende `const`, um eine `outputValueNode`-Variable in deinem `.forEach()`-Callback zu deklarieren. ```js assert.match(code, /array\.forEach\s*\(\s*\(\s*num\s*,\s*i\s*\)\s*=>\s*\{\s*const\s*outputValueNode\s*=/) ``` -`outputValueNode` should be assigned the value of calling `document.getElementById()`. +`outputValueNode` sollte der Wert des Aufrufs von `document.getElementById()` zugewiesen werden. ```js assert.match(code, /array\.forEach\s*\(\s*\(\s*num\s*,\s*i\s*\)\s*=>\s*\{\s*const\s*outputValueNode\s*=\s*document\.getElementById\s*\(/) ``` -Use template literal syntax to pass in the `output-value-${i}` string to `.getElementById()`. +Verwende die Template-Literal-Syntax, um dem `.getElementById()` den `output-value-${i}`-String zu übergeben. ```js assert.match(code, /array\.forEach\s*\(\s*\(\s*num\s*,\s*i\s*\)\s*=>\s*\{\s*const\s*outputValueNode\s*=\s*document\.getElementById\s*\(\s*`output-value-\$\{i\}`\s*\)/) diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md index 4821ca6d0cb..c8ad9c5633c 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6a2c2159309994779a5.md @@ -1,23 +1,23 @@ --- id: 6407c6a2c2159309994779a5 -title: Step 11 +title: Schritt 11 challengeType: 0 dashedName: step-11 --- # --description-- -Set the `innerText` property of `outputValueNode` to `num`. +Setze die `innerText`-Eigenschaft von `outputValueNode` auf `num`. # --hints-- -You should use `innerText` to set the text of `outputValueNode`. +Du solltest `innerText` verwenden, um den Text von `outputValueNode` festzulegen. ```js assert.match(code, /array\.forEach\s*\(\s*\(\s*num\s*,\s*i\s*\)\s*=>\s*\{\s*const\s*outputValueNode\s*=\s*document\.getElementById\s*\(\s*`output-value-\$\{i\}`\s*\)\s*;?\s*outputValueNode\.innerText/) ``` -You should use `innerText` to set the text of `outputValueNode` to `num`. +Du solltest `innerText` verwenden, um den Text von `outputValueNode` auf `num` zu setzen. ```js assert.match(code, /array\.forEach\s*\(\s*\(\s*num\s*,\s*i\s*\)\s*=>\s*\{\s*const\s*outputValueNode\s*=\s*document\.getElementById\s*\(\s*`output-value-\$\{i\}`\s*\)\s*;?\s*outputValueNode\.innerText\s*=\s*num;?/) diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md index e8484393948..ce770c612e2 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c6d3f19c4e0a7ba320bb.md @@ -1,6 +1,6 @@ --- id: 6407c6d3f19c4e0a7ba320bb -title: Step 12 +title: Schritt 12 challengeType: 0 dashedName: step-12 --- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md index 5dbf3c2389f..853f8cce1bb 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6407c722498bc80b76d29073.md @@ -1,6 +1,6 @@ --- id: 6407c722498bc80b76d29073 -title: Step 13 +title: Schritt 13 challengeType: 0 dashedName: step-13 --- @@ -13,13 +13,13 @@ Begin by declaring a `bubbleSort` variable and assigning it an arrow function th # --hints-- -You should use `const` to declare a `bubbleSort` variable. +Du solltest `const` verwenden, um eine `bubbleSort`-Variable zu deklarieren. ```js assert.match(code, /const\s+bubbleSort\s*=/); ``` -`bubbleSort` should be a function. +`bubbleSort` sollte eine Funktion sein. ```js assert.isFunction(bubbleSort); @@ -37,7 +37,7 @@ assert.match(code, /const\s+bubbleSort\s*=\s*\(.*\)\s*=>/); assert.match(code, /const\s+bubbleSort\s*=\s*\(?\s*array\s*\)?\s*=>/); ``` -`bubbleSort` should be empty. +`bubbleSort` sollte leer sein. ```js assert.match(code, /const\s+bubbleSort\s*=\s*\(?\s*array\s*\)?\s*=>\s*{\s*}/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md index c29b8ab41fd..bd186ece554 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410da6df463a606dfade96f.md @@ -1,6 +1,6 @@ --- id: 6410da6df463a606dfade96f -title: Step 14 +title: Schritt 14 challengeType: 0 dashedName: step-14 --- @@ -11,7 +11,7 @@ You'll need to iterate through the array. For simplicity, use a `for` loop to do # --hints-- -You should use a `for` loop to iterate through the array. +Du solltest eine `for`-Schleife verwenden, um das Array zu durchlaufen. ```js assert.match(code, /const\s+bubbleSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(/) @@ -23,19 +23,19 @@ Your `for` loop should initialize `i` to `0`. assert.match(code, /const\s+bubbleSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(\s*let\s+i\s*=\s*0\s*;/); ``` -Your `for` loop should have a condition that checks the value of `i` is less than the length of the array. +Deine `for`-Schleife sollte eine Bedingung enthalten, die sicherstellt, dass der Wert von `i` kleiner ist als die Länge des Arrays. ```js assert.match(code, /const\s+bubbleSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(\s*let\s+i\s*=\s*0\s*;\s*i\s*<\s*array\.length\s*;/); ``` -Your `for` loop should increment `i` by `1` each time it runs. +Deine `for`-Schleife sollte `i` bei jedem Durchlauf um `1` erhöhen. ```js assert.match(code, /const\s+bubbleSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(\s*let\s+i\s*=\s*0\s*;\s*i\s*<\s*array\.length\s*;\s*i\s*\+\+\s*\)/); ``` -Your `for` loop should be empty. +Deine `for`-Schleife sollte leer sein. ```js assert.match(code, /const\s+bubbleSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(\s*let\s+i\s*=\s*0\s*;\s*i\s*<\s*array\.length\s*;\s*i\s*\+\+\s*\)\s*{\s*}\s*}/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md index 02662b68c30..cea97a40ff7 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410dfb965c72108196ef24a.md @@ -1,17 +1,17 @@ --- id: 6410dfb965c72108196ef24a -title: Step 15 +title: Schritt 15 challengeType: 0 dashedName: step-15 --- # --description-- -Because you need to compare elements, you'll need to use a nested `for` loop. This loop should iterate through every element in the array *except* the last one. Use `j` as your inner loop's iterator variable. +Da du Elemente vergleichen musst, musst du eine eigebettete `for`-Schleife verwenden. This loop should iterate through every element in the array *except* the last one. Use `j` as your inner loop's iterator variable. # --hints-- -You should have a nested `for` loop. +Du solltest eine eingebettete `for`-Schleife haben. ```js assert.match(code, /const\s+bubbleSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(\s*let\s+i\s*=\s*0\s*;\s*i\s*<\s*array\.length\s*;\s*i\s*\+\+\s*\)\s*{\s*for\s*\(/); @@ -35,7 +35,7 @@ Your inner `for` loop should increment `j` by `1` each time. assert.match(code, /const\s+bubbleSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(\s*let\s+i\s*=\s*0\s*;\s*i\s*<\s*array\.length\s*;\s*i\s*\+\+\s*\)\s*{\s*for\s*\(\s*let\s+j\s*=\s*0\s*;\s*j\s*<\s*array\.length\s*-\s*1\s*;\s*j\s*\+\+\s*\)/); ``` -Your inner `for` loop should be empty. +Deine innere `for`-Schleife sollte leer sein. ```js assert.match(code, /const\s+bubbleSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(\s*let\s+i\s*=\s*0\s*;\s*i\s*<\s*array\.length\s*;\s*i\s*\+\+\s*\)\s*{\s*for\s*\(\s*let\s+j\s*=\s*0\s*;\s*j\s*<\s*array\.length\s*-\s*1\s*;\s*j\s*\+\+\s*\)\s*{\s*}\s*}/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md index da0a4869be8..9b5867ce486 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e1b58efc2c091a13bcd9.md @@ -1,35 +1,35 @@ --- id: 6410e1b58efc2c091a13bcd9 -title: Step 16 +title: Schritt 16 challengeType: 0 dashedName: step-16 --- # --description-- -For debugging purposes, add a `console.log()` call in your inner loop. Pass it the arguments `array`, `array[j]`, and `array[j+1]`. +For debugging purposes, add a `console.log()` call in your inner loop. Weise ihm die Argumente `array`, `array[j]` und `array[j+1]` zu. # --hints-- -You should use a `console.log()` call in your inner loop. +Du solltest einen `console.log()`-Aufruf in deiner inneren Schleife verwenden. ```js assert.match(code, /const\s+bubbleSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(\s*let\s+i\s*=\s*0\s*;\s*i\s*<\s*array\.length\s*;\s*i\s*\+\+\s*\)\s*{\s*for\s*\(\s*let\s+j\s*=\s*0\s*;\s*j\s*<\s*array\.length\s*-\s*1\s*;\s*j\s*\+\+\s*\)\s*{\s*console\.log\(/); ``` -You should pass `array` as the first argument to `console.log()`. +Du solltest `array` als erstes Argument `console.log()` übergeben. ```js assert.match(code, /const\s+bubbleSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(\s*let\s+i\s*=\s*0\s*;\s*i\s*<\s*array\.length\s*;\s*i\s*\+\+\s*\)\s*{\s*for\s*\(\s*let\s+j\s*=\s*0\s*;\s*j\s*<\s*array\.length\s*-\s*1\s*;\s*j\s*\+\+\s*\)\s*{\s*console\.log\s*\(\s*array\s*,/); ``` -You should pass `array[j]` as the second argument to `console.log()`. +Du solltest `array[j]` als zweites Argument an `console.log()` übergeben. ```js assert.match(code, /const\s+bubbleSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(\s*let\s+i\s*=\s*0\s*;\s*i\s*<\s*array\.length\s*;\s*i\s*\+\+\s*\)\s*{\s*for\s*\(\s*let\s+j\s*=\s*0\s*;\s*j\s*<\s*array\.length\s*-\s*1\s*;\s*j\s*\+\+\s*\)\s*{\s*console\.log\s*\(\s*array\s*,\s*array\s*\[\s*j\s*\]\s*,/); ``` -You should pass `array[j+1]` as the third argument to `console.log()`. +Du solltest `array[j+1]` als drittes Argument `console.log()` übergeben. ```js assert.match(code, /const\s+bubbleSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(\s*let\s+i\s*=\s*0\s*;\s*i\s*<\s*array\.length\s*;\s*i\s*\+\+\s*\)\s*{\s*for\s*\(\s*let\s+j\s*=\s*0\s*;\s*j\s*<\s*array\.length\s*-\s*1\s*;\s*j\s*\+\+\s*\)\s*{\s*console\.log\s*\(\s*array\s*,\s*array\s*\[\s*j\s*\]\s*,\s*array\s*\[\s*j\s*\+\s*1\s*\]\s*\)/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md index 5d6ceddfbd7..532b852f991 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e3c19c21cd09c32dc7c6.md @@ -1,6 +1,6 @@ --- id: 6410e3c19c21cd09c32dc7c6 -title: Step 17 +title: Schritt 17 challengeType: 0 dashedName: step-17 --- @@ -13,7 +13,7 @@ Then, update your `updateUI` call to take `sortedValues` as the parameter. # --hints-- -You should use `const` to declare a `sortedValues` variable. +Du solltest `const` verwenden, um eine `sortedValues`-Variable zu deklarieren. ```js assert.match(code, /const\s+sortedValues\s*=/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md index dd24c24ed82..c62b9b98fc3 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410e70c84bb660b4d2a5ea1.md @@ -1,37 +1,37 @@ --- id: 6410e70c84bb660b4d2a5ea1 -title: Step 18 +title: Schritt 18 challengeType: 0 dashedName: step-18 --- # --description-- -To achieve the "bubble up" result, you need to check if the current element is larger than the next element. You can do this by accessing the `array` at `j` and `j+1`. +To achieve the "bubble up" result, you need to check if the current element is larger than the next element. Dies kannst du tun, indem du auf das `array` bei `j` und `j+1` zugreifst. -Create an `if` condition that checks if the current element is larger than the next element. +Erstelle eine `if`-Anweisung, die prüft, ob das aktuelle Element größer ist als das darauf folgende Element. # --hints-- -You should not remove your `console.log` statement. +Du solltest nicht deine `console.log`-Anweisung entfernen. ```js assert.match(code, /const\s+bubbleSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(\s*let\s+i\s*=\s*0\s*;\s*i\s*<\s*array\.length\s*;\s*i\s*\+\+\s*\)\s*{\s*for\s*\(\s*let\s+j\s*=\s*0\s*;\s*j\s*<\s*array\.length\s*-\s*1\s*;\s*j\s*\+\+\s*\)\s*{\s*console\.log\s*\(\s*array\s*,\s*array\s*\[\s*j\s*\]\s*,\s*array\s*\[\s*j\s*\+\s*1\s*\]\s*\);?/); ``` -You should use an `if` statement in your nested loop. +Du solltest eine `if`-Anweisung in deiner eingebetteten Schleife verwenden. ```js assert.match(code, /const\s+bubbleSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(\s*let\s+i\s*=\s*0\s*;\s*i\s*<\s*array\.length\s*;\s*i\s*\+\+\s*\)\s*{\s*for\s*\(\s*let\s+j\s*=\s*0\s*;\s*j\s*<\s*array\.length\s*-\s*1\s*;\s*j\s*\+\+\s*\)\s*{\s*console\.log\s*\(\s*array\s*,\s*array\s*\[\s*j\s*\]\s*,\s*array\s*\[\s*j\s*\+\s*1\s*\]\s*\);?\s*if\s*\(/); ``` -Your `if` statement should check if the `array[j]` is larger than the `array[j+1]`. +Deine `if`-Anweisung sollte prüfen, ob das `array[j]` größer als das `array[j+1]` ist. ```js assert.match(code, /const\s+bubbleSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(\s*let\s+i\s*=\s*0\s*;\s*i\s*<\s*array\.length\s*;\s*i\s*\+\+\s*\)\s*{\s*for\s*\(\s*let\s+j\s*=\s*0\s*;\s*j\s*<\s*array\.length\s*-\s*1\s*;\s*j\s*\+\+\s*\)\s*{\s*console\.log\s*\(\s*array\s*,\s*array\s*\[\s*j\s*\]\s*,\s*array\s*\[\s*j\s*\+\s*1\s*\]\s*\);?\s*if\s*\(\s*array\s*\[\s*j\s*\]\s*>\s*array\s*\[\s*j\s*\+\s*1\s*\]\s*\)/); ``` -Your `if` statement should be empty. +Deine `if`-Anweisung sollte leer sein. ```js assert.match(code, /const\s+bubbleSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(\s*let\s+i\s*=\s*0\s*;\s*i\s*<\s*array\.length\s*;\s*i\s*\+\+\s*\)\s*{\s*for\s*\(\s*let\s+j\s*=\s*0\s*;\s*j\s*<\s*array\.length\s*-\s*1\s*;\s*j\s*\+\+\s*\)\s*{\s*console\.log\s*\(\s*array\s*,\s*array\s*\[\s*j\s*\]\s*,\s*array\s*\[\s*j\s*\+\s*1\s*\]\s*\);?\s*if\s*\(\s*array\s*\[\s*j\s*\]\s*>\s*array\s*\[\s*j\s*\+\s*1\s*\]\s*\)\s*{\s*}/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md index 7318c7fd6ef..d37e58070a4 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410edb33eeaf50dd9a22ab4.md @@ -1,37 +1,37 @@ --- id: 6410edb33eeaf50dd9a22ab4 -title: Step 19 +title: Schritt 19 challengeType: 0 dashedName: step-19 --- # --description-- -When your `if` condition is true, you need to swap the two elements, "bubbling" the larger element up toward the end of the array. +Wenn deine `if`-Bedingung true ist, musst du die beiden Elemente austauschen, indem du das größere Element an das Ende des Arrays "schiebst". -To do this, declare a `temp` variable and assign it the value of `array[j]`. Then assign `array[j]` the value of `array[j + 1]`. Finally, assign `array[j + 1]` the value of `temp`. +Deklariere dazu eine `temp`-Variable und weise ihr den Wert `array[j]` zu. Weise dann `array[j]` den Wert von `array[j + 1]` zu. Weise schließlich `array[j + 1]` den Wert von `temp` zu. # --hints-- -Within your `if` statement, you should declare a `temp` variable. +Du solltest innerhalb deiner `if`-Anweisung eine `temp`-Variable deklarieren. ```js assert.match(code, /const\s+bubbleSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(\s*let\s+i\s*=\s*0\s*;\s*i\s*<\s*array\.length\s*;\s*i\s*\+\+\s*\)\s*{\s*for\s*\(\s*let\s+j\s*=\s*0\s*;\s*j\s*<\s*array\.length\s*-\s*1\s*;\s*j\s*\+\+\s*\)\s*{\s*console\.log\s*\(\s*array\s*,\s*array\s*\[\s*j\s*\]\s*,\s*array\s*\[\s*j\s*\+\s*1\s*\]\s*\);?\s*if\s*\(\s*array\s*\[\s*j\s*\]\s*>\s*array\s*\[\s*j\s*\+\s*1\s*\]\s*\)\s*{\s*const\s*temp\s*=/); ``` -You should assign `temp` the value of `array[j]`. +Du solltest `temp` den Wert `array[j]` zuweisen. ```js assert.match(code, /const\s+bubbleSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(\s*let\s+i\s*=\s*0\s*;\s*i\s*<\s*array\.length\s*;\s*i\s*\+\+\s*\)\s*{\s*for\s*\(\s*let\s+j\s*=\s*0\s*;\s*j\s*<\s*array\.length\s*-\s*1\s*;\s*j\s*\+\+\s*\)\s*{\s*console\.log\s*\(\s*array\s*,\s*array\s*\[\s*j\s*\]\s*,\s*array\s*\[\s*j\s*\+\s*1\s*\]\s*\);?\s*if\s*\(\s*array\s*\[\s*j\s*\]\s*>\s*array\s*\[\s*j\s*\+\s*1\s*\]\s*\)\s*{\s*const\s*temp\s*=\s*array\s*\[\s*j\s*\];?\s*array\s*\[\s*j\s*\]\s*=\s*array\s*\[\s*j\s*\+\s*1\s*\];?\s*array\s*\[\s*j\s*\+\s*1\s*\]\s*=\s*temp\s*;?/); ``` -You should assign `array[j]` the value of `array[j + 1]`. +Du solltest `array[j]` den Wert `array[j + 1]` zuweisen. ```js assert.match(code, /const\s+bubbleSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(\s*let\s+i\s*=\s*0\s*;\s*i\s*<\s*array\.length\s*;\s*i\s*\+\+\s*\)\s*{\s*for\s*\(\s*let\s+j\s*=\s*0\s*;\s*j\s*<\s*array\.length\s*-\s*1\s*;\s*j\s*\+\+\s*\)\s*{\s*console\.log\s*\(\s*array\s*,\s*array\s*\[\s*j\s*\]\s*,\s*array\s*\[\s*j\s*\+\s*1\s*\]\s*\);?\s*if\s*\(\s*array\s*\[\s*j\s*\]\s*>\s*array\s*\[\s*j\s*\+\s*1\s*\]\s*\)\s*{\s*const\s*temp\s*=\s*array\s*\[\s*j\s*\];?\s*array\s*\[\s*j\s*\]\s*=\s*array\s*\[\s*j\s*\+\s*1\s*\];?/); ``` -You should assign `array[j + 1]` the value of `temp`. +Du solltest `array[j + 1]` den Wert `temp` zuweisen. ```js assert.match(code, /const\s+bubbleSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(\s*let\s+i\s*=\s*0\s*;\s*i\s*<\s*array\.length\s*;\s*i\s*\+\+\s*\)\s*{\s*for\s*\(\s*let\s+j\s*=\s*0\s*;\s*j\s*<\s*array\.length\s*-\s*1\s*;\s*j\s*\+\+\s*\)\s*{\s*console\.log\s*\(\s*array\s*,\s*array\s*\[\s*j\s*\]\s*,\s*array\s*\[\s*j\s*\+\s*1\s*\]\s*\);?\s*if\s*\(\s*array\s*\[\s*j\s*\]\s*>\s*array\s*\[\s*j\s*\+\s*1\s*\]\s*\)\s*{\s*const\s*temp\s*=\s*array\s*\[\s*j\s*\];?\s*array\s*\[\s*j\s*\]\s*=\s*array\s*\[\s*j\s*\+\s*1\s*\];?\s*array\s*\[\s*j\s*\+\s*1\s*\]\s*=\s*temp\s*;?/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md index 4d3522a57e9..bda145b9f91 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410efff0ae97c0f06856511.md @@ -1,13 +1,13 @@ --- id: 6410efff0ae97c0f06856511 -title: Step 20 +title: Schritt 20 challengeType: 0 dashedName: step-20 --- # --description-- -Finally, after your outer loop has finished executing, return the sorted array. +Nachdem soll deine äußere Schleife ausgeführt wurde, solltest du das sortierte Array zurückgeben. # --hints-- diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md index 5b16143979d..a5c0b3e6249 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f97a721cd1144804b7a8.md @@ -1,17 +1,17 @@ --- id: 6410f97a721cd1144804b7a8 -title: Step 24 +title: Schritt 24 challengeType: 0 dashedName: step-24 --- # --description-- -Like a bubble sort, a selection sort needs to iterate through the array. Declare a `for` loop to do so. +Like a bubble sort, a selection sort needs to iterate through the array. Deklariere dazu eine `for`-Schleife. # --hints-- -You should use a `for` loop. +Du solltest eine `for`-Schleife verwenden. ```js assert.match(code, /const\s+selectionSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(/); @@ -23,19 +23,19 @@ Your `for` loop should initialize a variable `i` to `0`. assert.match(code, /const\s+selectionSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(\s*let\s+i\s*=\s*0\s*;\s*/); ``` -Your `for` loop should have a condition that checks if the value of `i` is less than the length of the array. +Deine `for`-Schleife sollte eine Bedingung enthalten, die prüft, ob der Wert von `i` kleiner ist als die Länge des Arrays. ```js assert.match(code, /const\s+selectionSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(\s*let\s+i\s*=\s*0\s*;\s*i\s*<\s*array\.length\s*;\s*/); ``` -Your `for` loop should increment `i` by `1` each time it runs. +Deine `for`-Schleife sollte `i` bei jedem Durchlauf um `1` erhöhen. ```js assert.match(code, /const\s+selectionSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(\s*let\s+i\s*=\s*0\s*;\s*i\s*<\s*array\.length\s*;\s*i\s*\+\+\s*/); ``` -Your `for` loop should have an empty body. +Deine `for`-Schleife sollte ein leeres Body-Element haben. ```js assert.match(code, /const\s+selectionSort\s*=\s*\(\s*array\s*\)\s*=>\s*{\s*for\s*\(\s*let\s+i\s*=\s*0\s*;\s*i\s*<\s*array\.length\s*;\s*i\s*\+\+\s*\)\s*{\s*}\s*}/); diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md index 82503bb02ba..bba79539ff7 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-algorithmic-thinking-by-building-a-number-sorter/6410f9a443d57414ee50fada.md @@ -1,19 +1,19 @@ --- id: 6410f9a443d57414ee50fada -title: Step 21 +title: Schritt 21 challengeType: 0 dashedName: step-21 --- # --description-- -Click your `Sort` button to see your bubble sort algorithm in action! If you open the console, you can watch the steps the algorithm takes. +Click your `Sort` button to see your bubble sort algorithm in action! Wenn du die Konsole öffnest, kannst du die Schritte des Algorithmus verfolgen. -Now that you have confirmed it works, remove your `console.log()` call. +Nachdem du nun bestätigt hast, dass er funktioniert, kannst du deinen `console.log()`-Aufruf entfernen. # --hints-- -You should remove your `console.log()` call. +Du solltest deinen `console.log()`-Aufruf entfernen. ```js // Thanks loop-protect diff --git a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md index acdd6d43b3d..ba4a186c531 100644 --- a/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md +++ b/curriculum/challenges/german/15-javascript-algorithms-and-data-structures-22/learn-basic-javascript-by-building-a-role-playing-game/62fc211760bfc220f4734800.md @@ -19,7 +19,7 @@ Du solltest eine `monsterHealthText`-Variable mit `const` deklarieren. assert.match(code, /const monsterHealthText/); ``` -Your `monsterHealthText` variable should have the value of your `#monsterHealth` element. +Deine `monsterHealthText`-Variable sollte den Wert deines `#monsterHealth`-Elements besitzen. ```js assert.deepEqual(monsterHealthText, document.querySelector('#monsterHealth')); diff --git a/curriculum/challenges/japanese/01-responsive-web-design/applied-accessibility/improve-accessibility-of-audio-content-with-the-audio-element.md b/curriculum/challenges/japanese/01-responsive-web-design/applied-accessibility/improve-accessibility-of-audio-content-with-the-audio-element.md index 486e377d3ec..1d5a4271a7d 100644 --- a/curriculum/challenges/japanese/01-responsive-web-design/applied-accessibility/improve-accessibility-of-audio-content-with-the-audio-element.md +++ b/curriculum/challenges/japanese/01-responsive-web-design/applied-accessibility/improve-accessibility-of-audio-content-with-the-audio-element.md @@ -26,7 +26,7 @@ HTML5 の `audio` 要素は、サウンドやオーディオストリームコ # --instructions-- -Camper Cat から少し離れる時間を取って、アクセシビリティの達人でありスクリーンリーダーのユーザーでもあるキャンパー仲間、Zersiax (@zersiax) をご紹介します。 To hear a clip of his screen reader in action, add an `audio` element after the `p` element. `controls` 属性を含めましょう。 Then place a `source` element inside the `audio` tags with the `src` attribute set to `https://s3.amazonaws.com/freecodecamp/screen-reader.mp3` and `type` attribute set to `"audio/mpeg"`. +Camper Cat から少し離れる時間を取って、アクセシビリティの達人でありスクリーンリーダーのユーザーでもあるキャンパー仲間、Zersiax (@zersiax) をご紹介します。 彼のスクリーンリーダーが動作する様子の音声を聴くには、`p` 要素の後ろに `audio` 要素を追加します。 `controls` 属性を含めましょう。 次に `audio` タグの中に、`src` 属性に `https://s3.amazonaws.com/freecodecamp/screen-reader.mp3` を、`type` 属性に `"audio/mpeg"` を設定した `source` 要素を配置します。 **注:** 音声が高速に聞こえて理解しにくいかもしれませんが、これはスクリーンリーダーのユーザーにとっては通常の速度です。 diff --git a/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-personal-portfolio-webpage.md b/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-personal-portfolio-webpage.md index aa9d5c9264d..1a079fd532f 100644 --- a/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-personal-portfolio-webpage.md +++ b/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-personal-portfolio-webpage.md @@ -24,7 +24,7 @@ dashedName: build-a-personal-portfolio-webpage 1. ウェルカムセクションの高さはビューポートの高さと等しくなっています 1. ナビゲーションバーは常にビューポートの上部に表示されます -上記のユーザーストーリーを満たし、以下のすべてのテストが通るようにして、このプロジェクトを完成させてください。 あなた独自のスタイルを加えましょう。 ハッピーコーディング! +上記のユーザーストーリーを満たし、以下のすべてのテストが通るようにして、このプロジェクトを完成させてください。 あなた独自のアレンジを加えましょう。 ハッピーコーディング! **注:** スタイルシートをリンクして CSS を適用するため、HTML のコード内に必ず `` を追加してください。 diff --git a/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-product-landing-page.md b/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-product-landing-page.md index 0bd1088a143..e84fc02a690 100644 --- a/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-product-landing-page.md +++ b/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-product-landing-page.md @@ -28,7 +28,7 @@ dashedName: build-a-product-landing-page 1. このプロダクトランディングページには、少なくとも 1 つのメディアクエリが必要です 1. このプロダクトランディングページでは、少なくとも 1 つの CSS フレックスボックスが使用されている必要があります -上記のユーザーストーリーを満たし、以下のすべてのテストが通るようにして、このプロジェクトを完成させてください。 あなた独自のスタイルを加えましょう。 ハッピーコーディング! +上記のユーザーストーリーを満たし、以下のすべてのテストが通るようにして、このプロジェクトを完成させてください。 あなた独自のアレンジを加えましょう。 ハッピーコーディング! **注:** スタイルシートをリンクして CSS を適用するため、HTML のコード内に必ず `` を追加してください。 diff --git a/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-survey-form.md b/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-survey-form.md index 37205ae7063..1bfd10e0767 100644 --- a/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-survey-form.md +++ b/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-survey-form.md @@ -29,7 +29,7 @@ dashedName: build-a-survey-form 1. form 要素内には、追加のコメント用に `textarea` が用意されています 1. form 要素内には、すべての入力内容を送信するために、`id` の値が `submit` に設定されたボタンが用意されています -上記のユーザーストーリーを満たし、以下のすべてのテストが通るようにして、このプロジェクトを完成させてください。 あなた独自のスタイルを加えましょう。 ハッピーコーディング! +上記のユーザーストーリーを満たし、以下のすべてのテストが通るようにして、このプロジェクトを完成させてください。 あなた独自のアレンジを加えましょう。 ハッピーコーディング! **注:** スタイルシートをリンクして CSS を適用するため、HTML のコード内に必ず `` を追加してください。 diff --git a/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-technical-documentation-page.md b/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-technical-documentation-page.md index 2b58fa8f0eb..dbf854522e1 100644 --- a/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-technical-documentation-page.md +++ b/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-technical-documentation-page.md @@ -28,7 +28,7 @@ dashedName: build-a-technical-documentation-page 1. 通常サイズのデバイス (ノート PC、デスクトップ) 上では、`id="navbar"` を持つ要素は画面の左側に表示され、常にユーザーから見える状態にしなければなりません 1. この技術ドキュメントには、少なくとも 1 つのメディアクエリが使われている必要があります -上記のユーザーストーリーを満たし、以下のすべてのテストが通るようにして、このプロジェクトを完成させてください。 あなた独自のスタイルを加えましょう。 ハッピーコーディング! +上記のユーザーストーリーを満たし、以下のすべてのテストが通るようにして、このプロジェクトを完成させてください。 あなた独自のアレンジを加えましょう。 ハッピーコーディング! **注:** スタイルシートをリンクして CSS を適用するため、HTML のコード内に必ず `` を追加してください。 diff --git a/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-tribute-page.md b/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-tribute-page.md index 62e583c87d1..4b26eadbe06 100644 --- a/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-tribute-page.md +++ b/curriculum/challenges/japanese/01-responsive-web-design/responsive-web-design-projects/build-a-tribute-page.md @@ -22,7 +22,7 @@ dashedName: build-a-tribute-page 1. `#image` に `max-width` と `height` プロパティを使用して、元のサイズを超えることなく、親要素の幅に応じてサイズが変更されるようにします 1. `img` 要素は親要素に対し (水平方向の) 中央に配置されています -上記のユーザーストーリーを満たし、以下のすべてのテストが通るようにして、このプロジェクトを完成させてください。 あなた独自のスタイルを加えましょう。 ハッピーコーディング! +上記のユーザーストーリーを満たし、以下のすべてのテストが通るようにして、このプロジェクトを完成させてください。 あなた独自のアレンジを加えましょう。 ハッピーコーディング! **注:** スタイルシートをリンクして CSS を適用するため、HTML のコード内に必ず `` を追加してください。 diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-25-5-clock.md b/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-25-5-clock.md index f060001e131..d0ff59cdacf 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-25-5-clock.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-25-5-clock.md @@ -10,7 +10,7 @@ dashedName: build-a-25--5-clock **目標:** こちらと似た機能を持つアプリを構築してください: https://25--5-clock.freecodecamp.rocks -以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のスタイルを加えましょう。 +以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のアレンジを加えましょう。 このプロジェクトを完了するために、HTML、JavaScript、CSS、Bootstrap、SASS、React、Redux、および jQuery を自在に組み合わせて利用することができます。 このセクションはフロントエンドフレームワークの学習を目的としていますので、React などのフロントエンドフレームワークを使用してください。 上記以外の他のテクノロジーは推奨されません。使用する場合は自己責任で行ってください。 Angular や Vue などの他のフロントエンドフレームワークのサポートを検討していますが、現時点ではサポートされていません。 このプロジェクトで推奨される一連のテクノロジーを使用している場合の不具合報告については、freeCodeCamp にて報告を受け入れ、修正するよう努めます。 コーディングの成功を祈ります! diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine.md b/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine.md index 7ca56eae15e..c11545ebcf0 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine.md @@ -10,7 +10,7 @@ dashedName: build-a-drum-machine **目標:** こちらと似た機能を持つアプリを構築してください: https://drum-machine.freecodecamp.rocks -以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のスタイルを加えましょう。 +以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のアレンジを加えましょう。 このプロジェクトを完了するために、HTML、JavaScript、CSS、Bootstrap、SASS、React、Redux、および jQuery を自在に組み合わせて利用することができます。 このセクションはフロントエンドフレームワークの学習を目的としていますので、React などのフロントエンドフレームワークを使用してください。 上記以外の他のテクノロジーは推奨されません。使用する場合は自己責任で行ってください。 Angular や Vue などの他のフロントエンドフレームワークのサポートを検討していますが、現時点ではサポートされていません。 このプロジェクトで推奨される一連のテクノロジーを使用している場合の不具合報告については、freeCodeCamp にて報告を受け入れ、修正するよう努めます。 コーディングの成功を祈ります! diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator.md b/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator.md index bca805f573e..05162b892f5 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator.md @@ -10,7 +10,7 @@ dashedName: build-a-javascript-calculator **目標:** こちらと似た機能を持つアプリを構築してください: https://javascript-calculator.freecodecamp.rocks -以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のスタイルを加えましょう。 +以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のアレンジを加えましょう。 このプロジェクトを完了するために、HTML、JavaScript、CSS、Bootstrap、SASS、React、Redux、および jQuery を自在に組み合わせて利用することができます。 このセクションはフロントエンドフレームワークの学習を目的としていますので、React などのフロントエンドフレームワークを使用してください。 上記以外の他のテクノロジーは推奨されません。使用する場合は自己責任で行ってください。 Angular や Vue などの他のフロントエンドフレームワークのサポートを検討していますが、現時点ではサポートされていません。 このプロジェクトで推奨される一連のテクノロジーを使用している場合の不具合報告については、freeCodeCamp にて報告を受け入れ、修正するよう努めます。 コーディングの成功を祈ります! diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-markdown-previewer.md b/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-markdown-previewer.md index 694fbec62f7..f458d0a2997 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-markdown-previewer.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-markdown-previewer.md @@ -10,7 +10,7 @@ dashedName: build-a-markdown-previewer **目標:** こちらと似た機能を持つアプリを構築してください: https://markdown-previewer.freecodecamp.rocks -以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のスタイルを加えましょう。 +以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のアレンジを加えましょう。 このプロジェクトを完了するために、HTML、JavaScript、CSS、Bootstrap、SASS、React、Redux、および jQuery を自在に組み合わせて利用することができます。 このセクションはフロントエンドフレームワークの学習を目的としていますので、React などのフロントエンドフレームワークを使用してください。 上記以外の他のテクノロジーは推奨されません。使用する場合は自己責任で行ってください。 Angular や Vue などの他のフロントエンドフレームワークのサポートを検討していますが、現時点ではサポートされていません。 このプロジェクトで推奨される一連のテクノロジーを使用している場合の不具合報告については、freeCodeCamp にて報告を受け入れ、修正するよう努めます。 コーディングの成功を祈ります! diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-random-quote-machine.md b/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-random-quote-machine.md index 68941be210e..b374596b5a9 100644 --- a/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-random-quote-machine.md +++ b/curriculum/challenges/japanese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-random-quote-machine.md @@ -10,7 +10,7 @@ dashedName: build-a-random-quote-machine **目標:** こちらと似た機能を持つアプリを構築してください: https://random-quote-machine.freecodecamp.rocks -以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のスタイルを加えましょう。 +以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のアレンジを加えましょう。 このプロジェクトを完了するために、HTML、JavaScript、CSS、Bootstrap、SASS、React、Redux、および jQuery を自在に組み合わせて利用することができます。 このセクションはフロントエンドフレームワークの学習を目的としていますので、React などのフロントエンドフレームワークを使用してください。 上記以外の他のテクノロジーは推奨されません。使用する場合は自己責任で行ってください。 Angular や Vue などの他のフロントエンドフレームワークのサポートを検討していますが、現時点ではサポートされていません。 このプロジェクトで推奨される一連のテクノロジーを使用している場合の不具合報告については、freeCodeCamp にて報告を受け入れ、修正するよう努めます。 コーディングの成功を祈ります! diff --git a/curriculum/challenges/japanese/04-data-visualization/data-visualization-projects/visualize-data-with-a-bar-chart.md b/curriculum/challenges/japanese/04-data-visualization/data-visualization-projects/visualize-data-with-a-bar-chart.md index 2356f82c753..9fb70698536 100644 --- a/curriculum/challenges/japanese/04-data-visualization/data-visualization-projects/visualize-data-with-a-bar-chart.md +++ b/curriculum/challenges/japanese/04-data-visualization/data-visualization-projects/visualize-data-with-a-bar-chart.md @@ -10,7 +10,7 @@ dashedName: visualize-data-with-a-bar-chart **目標:** こちらと似た機能を持つアプリを構築してください: https://bar-chart.freecodecamp.rocks -以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のスタイルを加えましょう。 +以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のアレンジを加えましょう。 HTML、JavaScript、CSS、および D3 の SVG ベースのビジュアライゼーションライブラリを使用できます。 テストでは、軸に沿って自動的に目盛り (tick) を生成する D3 軸プロパティを使用して軸を生成する必要があります。 グラフ化された要素の配置を調べるために目盛りの位置が使用されるので、D3 テストを成功させるためにはこの目盛りが必要です。 軸の生成については、 を参照してください。 Required DOM elements are queried on the moment of each test. フロントエンドフレームワーク (例えば Vue など) を使用した場合、動的なコンテンツではテスト結果が不正確になる可能性があります。 最終的には対応したいと考えていますが、現在の D3 プロジェクトではこれらのフレームワークはサポートされていません。 diff --git a/curriculum/challenges/japanese/04-data-visualization/data-visualization-projects/visualize-data-with-a-choropleth-map.md b/curriculum/challenges/japanese/04-data-visualization/data-visualization-projects/visualize-data-with-a-choropleth-map.md index d96eb8ba319..aa2072208e3 100644 --- a/curriculum/challenges/japanese/04-data-visualization/data-visualization-projects/visualize-data-with-a-choropleth-map.md +++ b/curriculum/challenges/japanese/04-data-visualization/data-visualization-projects/visualize-data-with-a-choropleth-map.md @@ -10,7 +10,7 @@ dashedName: visualize-data-with-a-choropleth-map **目標:** こちらと似た機能を持つアプリを構築してください: https://choropleth-map.freecodecamp.rocks -以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のスタイルを加えましょう。 +以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のアレンジを加えましょう。 HTML、JavaScript、CSS、および D3 の SVG ベースのビジュアライゼーションライブラリを使用できます。 Required DOM elements are queried on the moment of each test. フロントエンドフレームワーク (例えば Vue など) を使用した場合、動的なコンテンツではテスト結果が不正確になる可能性があります。 最終的には対応したいと考えていますが、現在の D3 プロジェクトではこれらのフレームワークはサポートされていません。 diff --git a/curriculum/challenges/japanese/04-data-visualization/data-visualization-projects/visualize-data-with-a-heat-map.md b/curriculum/challenges/japanese/04-data-visualization/data-visualization-projects/visualize-data-with-a-heat-map.md index 02490acbe14..5f14ea1ed2b 100644 --- a/curriculum/challenges/japanese/04-data-visualization/data-visualization-projects/visualize-data-with-a-heat-map.md +++ b/curriculum/challenges/japanese/04-data-visualization/data-visualization-projects/visualize-data-with-a-heat-map.md @@ -10,7 +10,7 @@ dashedName: visualize-data-with-a-heat-map **目標:** こちらと似た機能を持つアプリを構築してください: https://heat-map.freecodecamp.rocks -以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のスタイルを加えましょう。 +以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のアレンジを加えましょう。 HTML、JavaScript、CSS、および D3 の SVG ベースのビジュアライゼーションライブラリを使用できます。 Required DOM elements are queried on the moment of each test. フロントエンドフレームワーク (例えば Vue など) を使用した場合、動的なコンテンツではテスト結果が不正確になる可能性があります。 最終的には対応したいと考えていますが、現在の D3 プロジェクトではこれらのフレームワークはサポートされていません。 diff --git a/curriculum/challenges/japanese/04-data-visualization/data-visualization-projects/visualize-data-with-a-scatterplot-graph.md b/curriculum/challenges/japanese/04-data-visualization/data-visualization-projects/visualize-data-with-a-scatterplot-graph.md index 7e63a7973db..fc5e995e0c8 100644 --- a/curriculum/challenges/japanese/04-data-visualization/data-visualization-projects/visualize-data-with-a-scatterplot-graph.md +++ b/curriculum/challenges/japanese/04-data-visualization/data-visualization-projects/visualize-data-with-a-scatterplot-graph.md @@ -10,7 +10,7 @@ dashedName: visualize-data-with-a-scatterplot-graph **目標:** こちらと似た機能を持つアプリを構築してください: https://scatterplot-graph.freecodecamp.rocks -以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のスタイルを加えましょう。 +以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のアレンジを加えましょう。 HTML、JavaScript、CSS、および D3 の SVG ベースのビジュアライゼーションライブラリを使用できます。 テストでは、軸に沿って自動的に目盛りを生成する D3 軸プロパティを使用して軸を生成する必要があります。 グラフ化された要素の配置を調べるために目盛りの位置が使用されるので、D3 テストを成功させるためにはこの目盛りが必要です。 軸の生成については を参照してください。 Required DOM elements are queried on the moment of each test. フロントエンドフレームワーク (例えば Vue など) を使用した場合、動的なコンテンツではテスト結果が不正確になる可能性があります。 最終的には対応したいと考えていますが、現在の D3 プロジェクトではこれらのフレームワークはサポートされていません。 diff --git a/curriculum/challenges/japanese/04-data-visualization/data-visualization-projects/visualize-data-with-a-treemap-diagram.md b/curriculum/challenges/japanese/04-data-visualization/data-visualization-projects/visualize-data-with-a-treemap-diagram.md index c5e986545b3..82e2cdb3cf1 100644 --- a/curriculum/challenges/japanese/04-data-visualization/data-visualization-projects/visualize-data-with-a-treemap-diagram.md +++ b/curriculum/challenges/japanese/04-data-visualization/data-visualization-projects/visualize-data-with-a-treemap-diagram.md @@ -10,7 +10,7 @@ dashedName: visualize-data-with-a-treemap-diagram **目標:** こちらと似た機能を持つアプリを構築してください: https://treemap-diagram.freecodecamp.rocks -以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のスタイルを加えましょう。 +以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のアレンジを加えましょう。 HTML、JavaScript、CSS、および D3 の SVG ベースのビジュアライゼーションライブラリを使用できます。 テストでは、軸に沿って自動的に目盛りを生成する D3 軸プロパティを使用して軸を生成する必要があります。 グラフ化された要素の配置を調べるために目盛りの位置が使用されるので、D3 テストを成功させるためにはこの目盛りが必要です。 軸の生成については を参照してください。 Required DOM elements are queried on the moment of each test. フロントエンドフレームワーク (例えば Vue など) を使用した場合、動的なコンテンツではテスト結果が不正確になる可能性があります。 最終的には対応したいと考えていますが、現在の D3 プロジェクトではこれらのフレームワークはサポートされていません。 diff --git a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-camper-leaderboard.md b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-camper-leaderboard.md index aa20460a858..3116be0c94c 100644 --- a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-camper-leaderboard.md +++ b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-camper-leaderboard.md @@ -10,7 +10,7 @@ dashedName: build-a-freecodecamp-forum-homepage **目標:** こちらと似た機能を持つアプリを構築してください: -以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなたの独自のスタイルにしましょう。 +以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のアレンジを加えましょう。 **ユーザーストーリー:** freeCodeCamp フォーラムの、最新の投稿の一覧を見ることができます。 diff --git a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-light-bright-app.md b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-light-bright-app.md index 3d277bc1e8e..f7c3bbacfaf 100644 --- a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-light-bright-app.md +++ b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-light-bright-app.md @@ -12,7 +12,7 @@ dashedName: build-a-light-bright-app **ルール #1:** 模範プロジェクトのコードを見ないようにしてください。 自分の力で解いてみてください。 -**ルール #2:** 下記のユーザーストーリーを満たし、すべてのテストを成功させてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなたの独自のスタイルにしましょう。 +**ルール #2:** 下記のユーザーストーリーを満たし、すべてのテストを成功させてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のアレンジを加えましょう。 **ユーザーストーリー:** マウスカーソルをクリックまたはドラッグして、円に色をつけることができます。 diff --git a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-pinterest-clone.md b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-pinterest-clone.md index 44074ef2ae2..22e6dda0074 100644 --- a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-pinterest-clone.md +++ b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-pinterest-clone.md @@ -10,7 +10,7 @@ dashedName: build-a-pinterest-clone **Objective:** Build an app that is functionally similar to this: https://build-a-pinterest-clone.freecodecamp.rocks/. -以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなたの独自のスタイルにしましょう。 +以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のアレンジを加えましょう。 **ユーザーストーリー:** 認証が済んでいないユーザーである時に、GitHub でログインできます。 diff --git a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-pong-game.md b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-pong-game.md index b835eb99c7d..8187157ce7d 100644 --- a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-pong-game.md +++ b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-pong-game.md @@ -12,7 +12,7 @@ dashedName: build-a-pong-game **ルール #1:** 模範プロジェクトのコードを見ないようにしてください。 自分の力で解いてみてください。 -**ルール #2:** 下記のユーザーストーリーを満たして、すべてのテストを成功させてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなたの独自のスタイルにしましょう。 +**ルール #2:** 下記のユーザーストーリーを満たして、すべてのテストを成功させてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のアレンジを加えましょう。 **ユーザーストーリー:** 私はラケットを操作できます。 diff --git a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-recipe-box.md b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-recipe-box.md index 7a34efb1863..f4a51ad8372 100644 --- a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-recipe-box.md +++ b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-recipe-box.md @@ -10,7 +10,7 @@ dashedName: build-a-recipe-box **Objective:** Build an app that is functionally similar to this: https://codepen.io/freeCodeCamp/full/dNVazZ/. -以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなたの独自のスタイルにしましょう。 +以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のアレンジを加えましょう。 **ユーザーストーリー:** 料理の名前と材料を載せたレシピを作成できます。 diff --git a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-roguelike-dungeon-crawler-game.md b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-roguelike-dungeon-crawler-game.md index b3e0a33abad..fcd0e013fe3 100644 --- a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-roguelike-dungeon-crawler-game.md +++ b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-roguelike-dungeon-crawler-game.md @@ -10,7 +10,7 @@ dashedName: build-a-roguelike-dungeon-crawler-game **Objective:** Build an app that is functionally similar to this: https://codepen.io/freeCodeCamp/full/apLXEJ/. -以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなたの独自のスタイルにしましょう。 +以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のアレンジを加えましょう。 **ユーザーストーリー:** 私には健康状態、レベル、武器があります。 より優れた武器を拾うことができます。 健康アイテムを拾うことができます。 diff --git a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-simon-game.md b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-simon-game.md index 4282f90c44e..233b9e97314 100644 --- a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-simon-game.md +++ b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-simon-game.md @@ -10,7 +10,7 @@ dashedName: build-a-simon-game **Objective:** Build an app that is functionally similar to this: https://codepen.io/freeCodeCamp/full/obYBjE. -以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなたの独自のスタイルにしましょう。 +以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のアレンジを加えましょう。 **ユーザーストーリー:** 連続してボタンを押す順番を、ランダムに提示されます。 diff --git a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-tic-tac-toe-game.md b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-tic-tac-toe-game.md index 49d899b3d64..9074001b2a5 100644 --- a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-tic-tac-toe-game.md +++ b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-tic-tac-toe-game.md @@ -10,7 +10,7 @@ dashedName: build-a-tic-tac-toe-game **Objective:** Build an app that is functionally similar to this: https://codepen.io/freeCodeCamp/full/KzXQgy/. -以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなたの独自のスタイルにしましょう。 +以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のアレンジを加えましょう。 **ユーザーストーリー:** コンピュータでまるばつゲームをプレイできます。 diff --git a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-wikipedia-viewer.md b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-wikipedia-viewer.md index 6e0de6406e2..9e0595b2050 100644 --- a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-wikipedia-viewer.md +++ b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-a-wikipedia-viewer.md @@ -14,7 +14,7 @@ The MediaWiki software powers Wikipedia, and it helps you collect and organize k Using the MediaWiki API, replicate the search function and random article function, similar to the example app above. You can use Wikipedia as your data source. -以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 Use whichever libraries or APIs you need. Give it your own personal style. +以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 Use whichever libraries or APIs you need. あなた独自のアレンジを加えましょう。 **User Story:** I can search Wikipedia entries in a search box and see the resulting Wikipedia entries. diff --git a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-the-game-of-life.md b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-the-game-of-life.md index 6f03313b163..0b00f64cb69 100644 --- a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-the-game-of-life.md +++ b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/build-the-game-of-life.md @@ -21,7 +21,7 @@ At each step in time, the following transitions occur: - Any live cell with more than three live neighbours dies, as if by overpopulation. - Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction. -以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 Use whichever libraries or APIs you need. Give it your own personal style. +以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 Use whichever libraries or APIs you need. あなた独自のアレンジを加えましょう。 **User Story:** When I first arrive at the game, it will randomly generate a board and start playing. diff --git a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/manage-a-book-trading-club.md b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/manage-a-book-trading-club.md index 3c45761ea41..83c0b1527d3 100644 --- a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/manage-a-book-trading-club.md +++ b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/manage-a-book-trading-club.md @@ -10,7 +10,7 @@ dashedName: manage-a-book-trading-club **Objective:** Build an app that is functionally similar to this: https://manage-a-book-trading-club.freecodecamp.rocks/. -以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなたの独自のスタイルにしましょう。 +以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のアレンジを加えましょう。 **ユーザーストーリー:** すべてのユーザに投稿された本を見ることができます。 diff --git a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/map-data-across-the-globe.md b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/map-data-across-the-globe.md index 37818527cc5..33721ecfa8c 100644 --- a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/map-data-across-the-globe.md +++ b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/map-data-across-the-globe.md @@ -10,7 +10,7 @@ dashedName: map-data-across-the-globe **目標:** こちらと似た機能を持つアプリを構築してください: -以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなたの独自のスタイルにしましょう。 +以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のアレンジを加えましょう。 **ユーザーストーリー:** 隕石が落下した世界地図上のすべての場所を見ることができます。 diff --git a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/p2p-video-chat-application.md b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/p2p-video-chat-application.md index 1bdb11f3d5b..1a1b4a2c256 100644 --- a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/p2p-video-chat-application.md +++ b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/p2p-video-chat-application.md @@ -10,7 +10,7 @@ dashedName: p2p-video-chat-application **Objective:** Build an app that is functionally similar to this: https://p2p-video-chat-application.freecodecamp.rocks/. -以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなたの独自のスタイルにしましょう。 +以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のアレンジを加えましょう。 **ユーザーストーリー:** アプリに到着すると同時に、ブラウザはカメラとマイクにアクセスするためにダイアログを表示します。 diff --git a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/show-national-contiguity-with-a-force-directed-graph.md b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/show-national-contiguity-with-a-force-directed-graph.md index d3b41b1302f..1e62716f09d 100644 --- a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/show-national-contiguity-with-a-force-directed-graph.md +++ b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/show-national-contiguity-with-a-force-directed-graph.md @@ -10,7 +10,7 @@ dashedName: show-national-contiguity-with-a-force-directed-graph **Objective:** Build an app that is functionally similar to this: . -以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなたの独自のスタイルにしましょう。 +以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のアレンジを加えましょう。 **ユーザーストーリー:** どの国が国境を共有しているかを示す力学モデルによるグラフ (Force-directed Graph) を見ることができます。 diff --git a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/show-the-local-weather.md b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/show-the-local-weather.md index ce8a3fb4892..27cc394eb1f 100644 --- a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/show-the-local-weather.md +++ b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/show-the-local-weather.md @@ -12,7 +12,7 @@ dashedName: show-the-local-weather **ルール #1:** 模範プロジェクトのコードを見ないようにしてください。 自分の力で解いてみてください。 -**ルール #2:** 下記のユーザーストーリーを満たし、すべてのテストを成功させてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなたの独自のスタイルにしましょう。 +**ルール #2:** 下記のユーザーストーリーを満たし、すべてのテストを成功させてください。 必要に応じて、どのようなライブラリあるいは API を使用してもかまいません。 あなた独自のアレンジを加えましょう。 **ユーザーストーリー:** 現在地の天気を見ることができます。 diff --git a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/use-the-twitch-json-api.md b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/use-the-twitch-json-api.md index 29f3d4f953e..81fce947fac 100644 --- a/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/use-the-twitch-json-api.md +++ b/curriculum/challenges/japanese/10-coding-interview-prep/take-home-projects/use-the-twitch-json-api.md @@ -12,7 +12,7 @@ dashedName: use-the-twitch-json-api The Twitch API is a RESTful API that lets developers build creative integrations for the broader Twitch community. -以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 Use whichever libraries or APIs you need. Give it your own personal style. +以下のユーザーストーリーを満たし、すべてのテストが成功するようにしてください。 Use whichever libraries or APIs you need. あなた独自のアレンジを加えましょう。 **User Story:** I can see whether freeCodeCamp is currently streaming on Twitch.tv. diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-personal-portfolio-webpage-project/build-a-personal-portfolio-webpage.md b/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-personal-portfolio-webpage-project/build-a-personal-portfolio-webpage.md index aa9d5c9264d..1a079fd532f 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-personal-portfolio-webpage-project/build-a-personal-portfolio-webpage.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-personal-portfolio-webpage-project/build-a-personal-portfolio-webpage.md @@ -24,7 +24,7 @@ dashedName: build-a-personal-portfolio-webpage 1. ウェルカムセクションの高さはビューポートの高さと等しくなっています 1. ナビゲーションバーは常にビューポートの上部に表示されます -上記のユーザーストーリーを満たし、以下のすべてのテストが通るようにして、このプロジェクトを完成させてください。 あなた独自のスタイルを加えましょう。 ハッピーコーディング! +上記のユーザーストーリーを満たし、以下のすべてのテストが通るようにして、このプロジェクトを完成させてください。 あなた独自のアレンジを加えましょう。 ハッピーコーディング! **注:** スタイルシートをリンクして CSS を適用するため、HTML のコード内に必ず `` を追加してください。 diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-product-landing-page-project/build-a-product-landing-page.md b/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-product-landing-page-project/build-a-product-landing-page.md index 0bd1088a143..e84fc02a690 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-product-landing-page-project/build-a-product-landing-page.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-product-landing-page-project/build-a-product-landing-page.md @@ -28,7 +28,7 @@ dashedName: build-a-product-landing-page 1. このプロダクトランディングページには、少なくとも 1 つのメディアクエリが必要です 1. このプロダクトランディングページでは、少なくとも 1 つの CSS フレックスボックスが使用されている必要があります -上記のユーザーストーリーを満たし、以下のすべてのテストが通るようにして、このプロジェクトを完成させてください。 あなた独自のスタイルを加えましょう。 ハッピーコーディング! +上記のユーザーストーリーを満たし、以下のすべてのテストが通るようにして、このプロジェクトを完成させてください。 あなた独自のアレンジを加えましょう。 ハッピーコーディング! **注:** スタイルシートをリンクして CSS を適用するため、HTML のコード内に必ず `` を追加してください。 diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-survey-form-project/build-a-survey-form.md b/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-survey-form-project/build-a-survey-form.md index d273ea0c4c3..736f55c810a 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-survey-form-project/build-a-survey-form.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-survey-form-project/build-a-survey-form.md @@ -29,7 +29,7 @@ dashedName: build-a-survey-form 1. form 要素内には、追加のコメント用に `textarea` が用意されています 1. form 要素内には、すべての入力内容を送信するために、`id` の値が `submit` に設定されたボタンが用意されています -上記のユーザーストーリーを満たし、以下のすべてのテストが通るようにして、このプロジェクトを完成させてください。 あなた独自のスタイルを加えましょう。 ハッピーコーディング! +上記のユーザーストーリーを満たし、以下のすべてのテストが通るようにして、このプロジェクトを完成させてください。 あなた独自のアレンジを加えましょう。 ハッピーコーディング! **注:** スタイルシートをリンクして CSS を適用するため、HTML のコード内に必ず `` を追加してください。 diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-technical-documentation-page-project/build-a-technical-documentation-page.md b/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-technical-documentation-page-project/build-a-technical-documentation-page.md index 09947c26904..20048e8e4b9 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-technical-documentation-page-project/build-a-technical-documentation-page.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-technical-documentation-page-project/build-a-technical-documentation-page.md @@ -28,7 +28,7 @@ dashedName: build-a-technical-documentation-page 1. 通常サイズのデバイス (ノート PC、デスクトップ) 上では、`id="navbar"` を持つ要素は画面の左側に表示され、常にユーザーから見える状態にしなければなりません 1. この技術ドキュメントには、少なくとも 1 つのメディアクエリが使われている必要があります -上記のユーザーストーリーを満たし、以下のすべてのテストが通るようにして、このプロジェクトを完成させてください。 あなた独自のスタイルを加えましょう。 ハッピーコーディング! +上記のユーザーストーリーを満たし、以下のすべてのテストが通るようにして、このプロジェクトを完成させてください。 あなた独自のアレンジを加えましょう。 ハッピーコーディング! **注:** スタイルシートをリンクして CSS を適用するため、HTML のコード内に必ず `` を追加してください。 diff --git a/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-tribute-page-project/build-a-tribute-page.md b/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-tribute-page-project/build-a-tribute-page.md index b1f4a3cceea..4d48327db9b 100644 --- a/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-tribute-page-project/build-a-tribute-page.md +++ b/curriculum/challenges/japanese/14-responsive-web-design-22/build-a-tribute-page-project/build-a-tribute-page.md @@ -22,7 +22,7 @@ dashedName: build-a-tribute-page 1. `#image` に `max-width` と `height` プロパティを使用して、元のサイズを超えることなく、親要素の幅に応じてサイズが変更されるようにします 1. `img` 要素は親要素に対し (水平方向の) 中央に配置されています -上記のユーザーストーリーを満たし、以下のすべてのテストが通るようにして、このプロジェクトを完成させてください。 あなた独自のスタイルを加えましょう。 ハッピーコーディング! +上記のユーザーストーリーを満たし、以下のすべてのテストが通るようにして、このプロジェクトを完成させてください。 あなた独自のアレンジを加えましょう。 ハッピーコーディング! **注:** スタイルシートをリンクして CSS を適用するため、HTML のコード内に必ず `` を追加してください。 diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6437133052eaf04d7300e622.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6437133052eaf04d7300e622.md index 3215bde4e83..1510db9456e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6437133052eaf04d7300e622.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6437133052eaf04d7300e622.md @@ -7,49 +7,49 @@ dashedName: step-21 # --description-- -Declare an `average` function which takes an array of numbers as the `nums` parameter. It should return the average of all the numbers in the array. +Declare uma função `average`, que receba um array de números como o parâmetro `nums`. Ela deve retornar a média de todos os números do array. -The average can be calculated by dividing the sum of all the numbers in the array by the length of the array. Remember that you have a `sum` function you can use. +A média pode ser calculada dividindo a soma de todos os números pelo comprimento do array. Lembre-se de que você tem uma função `sum` (soma) que você pode usar. # --hints-- -You should declare an `average` variable. +Você deve declarar uma variável `average`. ```js assert.match(code, /(?:let|const|var)\s+average/); ``` -You should use `const` to declare your `average` variable. +Você deve usar `const` para declarar a variável `average`. ```js assert.match(code, /const\s+average/); ``` -Your `average` variable should be a function. +A variável `average` deve ser uma função. ```js assert.isFunction(average); ``` -Your `average` function should use arrow syntax. +A função `average` deve usar a sintaxe das arrow functions. ```js assert.match(code, /const\s+average\s*=\s*\(?.*\)?\s*=>/); ``` -Your `average` function should have a `nums` parameter. +A função `average` deve ter um parâmetro `nums`. ```js assert.match(code, /const\s+average\s*=\s*\(?\s*nums\s*\)?/); ``` -Your `average` function should use an implicit return. +A função `average` deve usar um retorno implícito. ```js assert.notMatch(code, /const\s+average\s*=\s*\(?\s*nums\s*\)?\s*=>\s*{/); ``` -Your `average` function should return the average value of the `nums` array. +A função `average` deve retornar o valor da média do array `nums`. ```js assert.equal(average([1,2,3]), 2); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643715013330824ecaa70442.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643715013330824ecaa70442.md index 902b745abd8..0c90a46dbb4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643715013330824ecaa70442.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643715013330824ecaa70442.md @@ -7,75 +7,75 @@ dashedName: step-22 # --description-- -Your next function will calculate the median value of an array of numbers. Start by declaring a `median` arrow function that takes a `nums` parameter. +A próxima função calculará o valor da mediana de um array de números. Comece declarando uma função `median`, que recebe um parâmetro `nums`. -In the function, declare a `sorted` variable and assign it the value of sorting a copy of the `nums` array. +Na função, declare uma variável `sorted` e atribua a ela o valor da ordenação de uma cópia do array `nums`. -You should use the `slice()` method for creating a shallow copy of the array. +Você deve usar o método `slice()` para criar uma cópia superficial do array. # --hints-- -You should declare a `median` variable. +Você deve declarar uma variável `median`. ```js assert.match(code, /(?:let|const|var)\s+median/); ``` -You should use `const` to declare your `median` variable. +Você deve usar `const` para declarar a variável `median`. ```js assert.match(code, /const\s+median/); ``` -Your `median` variable should be a function. +A variável `median` deve ser uma função. ```js assert.isFunction(median); ``` -Your `median` function should use arrow syntax. +A função `median` deve usar a sintaxe das arrow functions. ```js assert.match(code, /const\s+median\s*=\s*\(?/); ``` -Your `median` function should have a `nums` parameter. +A função `median` deve ter um parâmetro `nums`. ```js assert.match(code, /const\s+median\s*=\s*\(?\s*nums\s*\)?/); ``` -Your `median` function should not use an implicit return. +A função `median` não deve usar um retorno implícito. ```js assert.match(code, /const\s+median\s*=\s*\(?\s*nums\s*\)?\s*=>\s*\{/); ``` -Your `median` function should have a `sorted` variable. +A função `median` deve ter uma variável `sorted`. ```js assert.match(code, /const\s+median\s*=\s*\(?\s*nums\s*\)?\s*=>\s*\{\s*(?:let|var|const)\s+sorted/); ``` -You should use `const` to declare your `sorted` variable. +Você deve usar `const` para declarar a variável `sorted`. ```js assert.match(code, /const\s+median\s*=\s*\(?\s*nums\s*\)?\s*=>\s*\{\s*const\s+sorted/); ``` -You should use `.slice()` to assign a copy of the `nums` array to `sorted`. +Você deve usar `.slice()` para atribuir uma cópia do array `nums` para `sorted`. ```js assert.match(code, /const\s+median\s*=\s*\(?\s*nums\s*\)?\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)/); ``` -You should chain the `.sort()` method to your `.slice()` method. +Você deve encadear o método `.sort()` ao método `.slice()`. ```js assert.match(code, /const\s+median\s*=\s*\(?\s*nums\s*\)?\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(/); ``` -You should pass a callback function to your `sort` method to accurately sort the numbers in ascending order. Use an implicit return for clarity. +Você deve passar uma função de callback para o método `sort` para ordenar corretamente os números em ordem ascendente. Use um retorno implícito para deixar claro. ```js assert.match(code, /const\s+median\s*=\s*\(?\s*nums\s*\)?\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(\s*\(\s*a\s*,\s*b\s*\)\s*=>\s*a\s*-\s*b\s*\)\s*\s*;?\s*\}/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496d1e5af8c0148fbef96d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496d1e5af8c0148fbef96d.md index 2160b061b79..a9caf741c7c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496d1e5af8c0148fbef96d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496d1e5af8c0148fbef96d.md @@ -7,47 +7,47 @@ dashedName: step-23 # --description-- -Now declare a `length` variable and assign it the length of your sorted array, and a `middle` variable that has the value of the length divided by `2`, subtracted by `1`. +Agora, declare uma variável `length` e atribua a ela o comprimento do array ordenado, bem como uma variável `middle` que tenha o valor do comprimento dividido por `2`, menos `1`. # --hints-- -You should declare a `length` variable after your `sorted` variable. +Você deve declarar uma variável `length` após a variável `sorted`. ```js assert.match(code, /const\s+median\s*=\s*nums\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(\s*\(\s*a\s*,\s*b\s*\)\s*=>\s*a\s*-\s*b\s*\)\s*\s*;?\s*(?:var|let|const)\s+length/); ``` -You should use `const` to declare your `length` variable. +Você deve usar `const` para declarar a variável `length`. ```js assert.match(code, /const\s+median\s*=\s*nums\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(\s*\(\s*a\s*,\s*b\s*\)\s*=>\s*a\s*-\s*b\s*\)\s*\s*;?\s*const\s+length/); ``` -You should assign the length of the `sorted` array to your `length` variable. +Você deve atribuir o comprimento do array `sorted` à variável `length`. ```js assert.match(code, /const\s+median\s*=\s*nums\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(\s*\(\s*a\s*,\s*b\s*\)\s*=>\s*a\s*-\s*b\s*\)\s*\s*;?\s*const\s+length\s*=\s*sorted\.length;?/); ``` -You should declare a `middle` variable after your `length` variable. +Você deve declarar uma variável `middle` após a variável `length`. ```js assert.match(code, /const\s+median\s*=\s*nums\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(\s*\(\s*a\s*,\s*b\s*\)\s*=>\s*a\s*-\s*b\s*\)\s*\s*;?\s*const\s+length\s*=\s*sorted\.length;?\s*(?:var|let|const)\s+middle/); ``` -You should use `const` to declare your `middle` variable. +Você deve usar `const` para declarar a variável `middle`. ```js assert.match(code, /const\s+median\s*=\s*nums\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(\s*\(\s*a\s*,\s*b\s*\)\s*=>\s*a\s*-\s*b\s*\)\s*\s*;?\s*const\s+length\s*=\s*sorted\.length;?\s*const\s+middle/); ``` -You should assign `middle` the value of dividing your `length` variable by `2`. +Você deve atribuir a `middle` o valor da divisão da variável `length` por `2`. ```js assert.match(code, /const\s+median\s*=\s*nums\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(\s*\(\s*a\s*,\s*b\s*\)\s*=>\s*a\s*-\s*b\s*\)\s*\s*;?\s*const\s+length\s*=\s*sorted\.length;?\s*const\s+middle\s*=\s*length\s*\/\s*2/); ``` -You should subtract `1` from your `length / 2` calculation. +Você deve subtrair `1` do cálculo de `length / 2`. ```js assert.match(code, /const\s+median\s*=\s*nums\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(\s*\(\s*a\s*,\s*b\s*\)\s*=>\s*a\s*-\s*b\s*\)\s*\s*;?\s*const\s+length\s*=\s*sorted\.length;?\s*const\s+middle\s*=\s*length\s*\/\s*2\s*-\s*1/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496d80bc174a158c973080.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496d80bc174a158c973080.md index a4a6ff5f5de..cdc22ddd12c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496d80bc174a158c973080.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496d80bc174a158c973080.md @@ -7,59 +7,59 @@ dashedName: step-24 # --description-- -Using ternary syntax, check if `length` is even using your `isEven` function. If it is, return the average of the number at the `middle` index and the number after that. If it's odd, return the number at the `middle` index – you'll need to round the `middle` value up. +Usando a sintaxe do operador ternário, verifique se `length` é par usando a função `isEven`. Se for o caso, retorne a média do número no índice `middle` e o número depois desse. Se for ímpar, retorne o número no índice `middle` – você precisará arredondar o valor de `middle` para cima. # --hints-- -You should use the `return` keyword. +Você deve usar a palavra-chave `return`. ```js assert.match(code, /const\s+median\s*=\s*nums\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(\s*\(\s*a\s*,\s*b\s*\)\s*=>\s*a\s*-\s*b\s*\)\s*\s*;?\s*const\s+length\s*=\s*sorted\.length;?\s*const\s+middle\s*=\s*length\s*\/\s*2\s*-\s*1\s*;?\s*return/); ``` -You should call your `isEven()` function after your `return` keyword. +Você deve chamar a função `isEven()` após a palavra-chave `return`. ```js assert.match(code, /const\s+median\s*=\s*nums\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(\s*\(\s*a\s*,\s*b\s*\)\s*=>\s*a\s*-\s*b\s*\)\s*\s*;?\s*const\s+length\s*=\s*sorted\.length;?\s*const\s+middle\s*=\s*length\s*\/\s*2\s*-\s*1\s*;?\s*return\s+isEven\(/); ``` -You should pass your `length` variable to your `isEven()` call. +Você deve passar a variável `length` para a chamada de `isEven()`. ```js assert.match(code, /const\s+median\s*=\s*nums\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(\s*\(\s*a\s*,\s*b\s*\)\s*=>\s*a\s*-\s*b\s*\)\s*\s*;?\s*const\s+length\s*=\s*sorted\.length;?\s*const\s+middle\s*=\s*length\s*\/\s*2\s*-\s*1\s*;?\s*return\s+isEven\(\s*length\s*\)/); ``` -You should use ternary syntax to check the truthiness of your `isEven()` call. +Você deve usar sintaxe dos operadores ternários para verificar a veracidade da chamada de `isEven()`. ```js assert.match(code, /const\s+median\s*=\s*nums\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(\s*\(\s*a\s*,\s*b\s*\)\s*=>\s*a\s*-\s*b\s*\)\s*\s*;?\s*const\s+length\s*=\s*sorted\.length;?\s*const\s+middle\s*=\s*length\s*\/\s*2\s*-\s*1\s*;?\s*return\s+isEven\(\s*length\s*\)\s*\?/); ``` -If the ternary is truthy, you should call your `average()` function. +Se o ternário for verdadeiro, você deve chamar a função `average()`. ```js assert.match(code, /const\s+median\s*=\s*nums\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(\s*\(\s*a\s*,\s*b\s*\)\s*=>\s*a\s*-\s*b\s*\)\s*\s*;?\s*const\s+length\s*=\s*sorted\.length;?\s*const\s+middle\s*=\s*length\s*\/\s*2\s*-\s*1\s*;?\s*return\s+isEven\(\s*length\s*\)\s*\?\s*average\(/); ``` -You should pass an array to your `average()` function. +Você deve passar um array para a função `average()`. ```js assert.match(code, /const\s+median\s*=\s*nums\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(\s*\(\s*a\s*,\s*b\s*\)\s*=>\s*a\s*-\s*b\s*\)\s*\s*;?\s*const\s+length\s*=\s*sorted\.length;?\s*const\s+middle\s*=\s*length\s*\/\s*2\s*-\s*1\s*;?\s*return\s+isEven\(\s*length\s*\)\s*\?\s*average\(\s*\[/); ``` -The first element of the array passed to `average()` should be the element at the `middle` index of your `sorted` array. +O primeiro elemento do array passado para `average()` deve ser o elemento no índice `middle` do array `sorted`. ```js assert.match(code, /const\s+median\s*=\s*nums\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(\s*\(\s*a\s*,\s*b\s*\)\s*=>\s*a\s*-\s*b\s*\)\s*\s*;?\s*const\s+length\s*=\s*sorted\.length;?\s*const\s+middle\s*=\s*length\s*\/\s*2\s*-\s*1\s*;?\s*return\s+isEven\(\s*length\s*\)\s*\?\s*average\(\s*\[\s*sorted\[\s*middle\s*\]/); ``` -The first element of the array passed to `average()` should be the element at the `middle + 1` index of your `sorted` array. +O primeiro elemento do array passado para `average()` deve ser o elemento no índice `middle + 1` do array `sorted`. ```js assert.match(code, /const\s+median\s*=\s*nums\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(\s*\(\s*a\s*,\s*b\s*\)\s*=>\s*a\s*-\s*b\s*\)\s*\s*;?\s*const\s+length\s*=\s*sorted\.length;?\s*const\s+middle\s*=\s*length\s*\/\s*2\s*-\s*1\s*;?\s*return\s+isEven\(\s*length\s*\)\s*\?\s*average\(\s*\[\s*sorted\[\s*middle\s*\]\s*,\s*sorted\[\s*middle\s*\+\s*1\s*\]\s*\]\)/); ``` -If the ternary is false, you should return the value of `sorted` at the `middle` index. Use `Math.ceil()` to round the `middle` value up. +Se o ternário for falso, você deve retornar o valor de `sorted` no índice `middle`. Use `Math.ceil()` para arredondar o valor de `middle` para cima. ```js assert.match(code, /const\s+median\s*=\s*nums\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(\s*\(\s*a\s*,\s*b\s*\)\s*=>\s*a\s*-\s*b\s*\)\s*\s*;?\s*const\s+length\s*=\s*sorted\.length;?\s*const\s+middle\s*=\s*length\s*\/\s*2\s*-\s*1\s*;?\s*return\s+isEven\(\s*length\s*\)\s*\?\s*average\(\s*\[\s*sorted\[\s*middle\s*\]\s*,\s*sorted\[\s*middle\s*\+\s*1\s*\]\s*\]\s*\)\s*:\s*sorted\[\s*Math\.ceil\(\s*middle\s*\)\s*\];?/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496df724dd3716a71fe971.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496df724dd3716a71fe971.md index a1972d4d877..4792db1595e 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496df724dd3716a71fe971.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496df724dd3716a71fe971.md @@ -7,65 +7,65 @@ dashedName: step-25 # --description-- -To keep track of all of your spreadsheet's functions, delcare a `spreadsheetFunctions` object. Using destructuring syntax, set `sum`, `average`, and `median` as properties and values on the `spreadsheetFunctions` object. +Para manter o controle de todas as funções da planilha, declare um objeto `spreadsheetFunctions`. Usando a sintaxe de desestruturação, defina `sum`, `average` e `median` como propriedades e valores no objeto `spreadsheetFunctions`. # --hints-- -You should declare a `spreadsheetFunctions` variable. +Você deve declarar uma variável `spreadsheetFunctions`. ```js assert.match(code, /(?:const|let|var)\s+spreadsheetFunctions/); ``` -You should use `const` to declare your `spreadsheetFunctions` variable. +Você deve usar `const` para declarar uma variável `spreadsheetFunctions`. ```js assert.match(code, /const\s+spreadsheetFunctions/); ``` -Your `spreadsheetFunctions` variable should be an object. +A variável `spreadsheetFunctions` deve ser um objeto. ```js assert.isObject(spreadsheetFunctions); ``` -Your `spreadsheetFunctions` object should have a `sum` property. +O objeto `spreadsheetFunctions` deve ter uma propriedade `sum`. ```js assert.property(spreadsheetFunctions, "sum"); ``` -Your `sum` property should be your `sum` function. +A propriedade `sum` deve ser a função `sum`. ```js assert.equal(spreadsheetFunctions?.sum, sum); ``` -Your `spreadsheetFunctions` object should have an `average` property. +O objeto `spreadsheetFunctions` deve ter uma propriedade `average`. ```js assert.property(spreadsheetFunctions, "average"); ``` -Your `average` property should be your `average` function. +A propriedade `average` deve ser a função `average`. ```js assert.equal(spreadsheetFunctions?.average, average); ``` -Your `spreadsheetFunctions` object should have a `median` property. +O objeto `spreadsheetFunctions` deve ter uma propriedade `median`. ```js assert.property(spreadsheetFunctions, "median"); ``` -Your `median` property should be your `median` function. +A propriedade `median` deve ser a função `median`. ```js assert.equal(spreadsheetFunctions?.median, median); ``` -You should use destructuring syntax to assign your properties. +Você deve usar a sintaxe de desestruturação para atribuir as propriedades. ```js const objectText = code.replace(/.*const\s*spreadsheetFunctions\s*=\s*\{([^}]*)}.*/s, "$1"); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496e9c6d7a2e189948e441.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496e9c6d7a2e189948e441.md index bf7ca778512..12df20ff334 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496e9c6d7a2e189948e441.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496e9c6d7a2e189948e441.md @@ -7,29 +7,29 @@ dashedName: step-26 # --description-- -Now you can start using your spreadsheet functions. Begin by declaring an `update` arrow function. It should take an `event` parameter. +Agora, você pode começar a usar as funções da planilha. Comece declarando uma arrow function chamade `update`. Ela deve receber um parâmetro `event`. # --hints-- -You should declare an `update` variable. +Você deve declarar uma variável `update`. ```js assert.match(code, /(?:let|const|var)\s+update/); ``` -You should use `const` to declare your `update` variable. +Você deve usar `const` para declarar a variável `update`. ```js assert.match(code, /const\s+update/); ``` -Your `update` variable should be a function. +A variável `update` deve ser uma função. ```js assert.isFunction(update); ``` -Your `update` function should take an `event` parameter. +A função `update` deve receber um parâmetro `event`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449749d20436c1f1dfadcf2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449749d20436c1f1dfadcf2.md index 5bed2d21e7f..c3efe25d04f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449749d20436c1f1dfadcf2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449749d20436c1f1dfadcf2.md @@ -7,31 +7,31 @@ dashedName: step-27 # --description-- -In your `window.onload` function, you need to tell your `input` elements to call the `update` function when the value changes. You can do this by directly setting the `onchange` property. +Na função `window.onload`, você precisa informar os elementos `input` de que devem chamar a função `update` quando o valor mudar. Você pode fazer isso diretamente definindo a propriedade `onchange`. -Set the `onchange` property to be a reference to your `update` function. +Defina a propriedade `onchange` para que seja uma referência à função `update`. # --hints-- -Your `window.onload` function should access the `onchange` property of the `input` element. +A função `window.onload` deve acessar a propriedade `onchange` do elemento `input`. ```js assert.match(window.onload.toString(), /input\.onchange/); ``` -Your `window.onload` function should set the `onchange` property to `update`. +A função `window.onload` deve definir a propriedade `onchange` como `update`. ```js assert.match(window.onload.toString(), /input\.onchange\s*=\s*update/); ``` -Your `window.onload` function should not call your `update` function. +A função `window.onload` não deve chamar a função `update`. ```js assert.notMatch(window.onload.toString(), /update\(\s*\)/); ``` -Your `input` elements should all have your `update` function as the `onchange` property. +Os elementos `input` devem ter a função `update` na propriedade `onchange`. ```js const inputs = document.querySelectorAll('input'); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449755666005520330cec5b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449755666005520330cec5b.md index 7bbc04175c0..64692a517c4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449755666005520330cec5b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449755666005520330cec5b.md @@ -7,25 +7,25 @@ dashedName: step-28 # --description-- -Since your `update` event is running as a `change` event listener, the `event` argument will be a change event. +Como o evento `update` está sendo executado como um ouvinte do evento `change`, o argumento `event` será um evento de mudança. -The `target` property of the change event represents the element that changed. Assign the `target` property to a new variable called `element`. +A propriedade `target` do evento change representa o elemento que mudou. Atribua a propriedade `target` a uma nova variável chamada `element`. # --hints-- -You should declare an `element` variable in your `update` function. +Você deve declarar uma variável `element` na função `update`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*(?:var|let|const)\s+element/); ``` -You should use `const` to declare your `element` variable. +Você deve usar `const` para declarar a variável `element`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element/); ``` -You should assign the `target` property of the `event` argument to your `element` variable. +Você deve atribuir a propriedade `target` do argumento `event` à variável `element`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497da4062602213ecf32e7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497da4062602213ecf32e7.md index 60bccd4cf34..14d0d50c6f5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497da4062602213ecf32e7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497da4062602213ecf32e7.md @@ -7,49 +7,49 @@ dashedName: step-29 # --description-- -Because the `change` event is triggering on an `input` element, the element will have a `value` property that represents the current value of the input. +Como o evento `change` é acionado em um elemento `input`, o elemento terá uma propriedade `value` que representa o valor atual do input. -Assign the `value` property of `element` to a new variable called `value`, and use `.replace()` to remove all whitespace. +Atribua a propriedade `value` de `element` a uma nova variável chamada `value` e use `.replace()` para remover todos os espaços em branco. # --hints-- -You should declare a `value` variable after your `element` variable. +Você deve declarar uma variável `value` após a variável `element`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*(?:const|let|var)\s+value/); ``` -You should use `const` to declare your `value` variable. +Você deve usar `const` para declarar a variável `value`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value/); ``` -You should assign the `value` property of `element` to your `value` variable. +Você deve atribuir a propriedade `value` de `element` à variável `value`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value\s*=\s*element\.value/); ``` -You should call the `.replace()` method on the `value` property of the `element`. +Você deve chamar o método `.replace()` da propriedade `value` de `element`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value\s*=\s*element\.value\.replace\(/); ``` -You should pass a regular expression to match whitespace to your `.replace()` method. Use the `\s` character class. +Você deve passar uma expressão regular que corresponda a um espaço em branco no método `.replace()`. Use a classe de caractere `\s`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value\s*=\s*element\.value\.replace\(\s*\/\\s\//); ``` -You should make your regular expression global. +Você deve tornar a expressão regular global. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value\s*=\s*element\.value\.replace\(\s*\/\\s\/g/); ``` -You should pass an empty string as your second argument to the `.replace()` method. +Você deve passar uma string vazia como segundo argumento para o método `.replace()`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value\s*=\s*element\.value\.replace\(\s*\/\\s\/g\s*,\s*('|"|`)\1/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497de936a2f322327e5c58.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497de936a2f322327e5c58.md index 46ebdbadcf7..fe8534e1715 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497de936a2f322327e5c58.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497de936a2f322327e5c58.md @@ -7,23 +7,23 @@ dashedName: step-30 # --description-- -Now you need to check if the `value` does not include the `id` of the element. Create an `if` condition to do so. +Agora, você precisa verificar se `value` não inclui o `id` do elemento. Crie uma condição `if` para fazer isso. # --hints-- -You should create an `if` block. +Você deve criar um bloco `if`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value\s*=\s*element\.value\.replace\(\s*\/\\s\/g\s*,\s*('|"|`)\1\s*\);?\s*if\s*\(/); ``` -Your `if` condition should check if `value` includes the `id` of the `element`. +A condição `if` deve verificar se `value` inclui o `id` de `element`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value\s*=\s*element\.value\.replace\(\s*\/\\s\/g\s*,\s*('|"|`)\1\s*\);?\s*if\s*\(\s*!value\.includes\(\s*element\.id\s*\)/); ``` -Your `if` block should be empty. +O bloco `if` deve estar vazio. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value\s*=\s*element\.value\.replace\(\s*\/\\s\/g\s*,\s*('|"|`)\1\s*\);?\s*if\s*\(\s*!value\.includes\(\s*element\.id\s*\)\s*\)\s*\{\s*\}/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497e0e5e5a2c2329785af4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497e0e5e5a2c2329785af4.md index aa5b81d1026..c84ee9c64f2 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497e0e5e5a2c2329785af4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497e0e5e5a2c2329785af4.md @@ -7,13 +7,13 @@ dashedName: step-31 # --description-- -Spreadsheet software typically uses `=` at the beginning of a cell to indicate a calculation should be used, and spreadsheet functions should be evaluated. +O software de planilhas normalmente usa `=` no início de uma célula para indicar que um cálculo deve ser usado e que as funções da planilha devem ser avaliadas. -Update your `if` condition to also check if the first character of `value` is `=`. +Atualize a condição `if` para também verificar se o primeiro caractere de `value` é `=`. # --hints-- -Your `if` condition should also check if the first character of `value` is `=`. You may use `[0]`, `.startsWith()`, or `.charAt(0)`. +A condição `if` também deve verificar se o primeiro caractere de `value` é `=`. Você pode usar `[0]`, `.startsWith()` ou `.charAt(0)`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value\s*=\s*element\.value\.replace\(\s*\/\\s\/g\s*,\s*('|"|`)\1\s*\);?\s*if\s*\(\s*(!value\.includes\(\s*element\.id\s*\)\s*&&\s*(?:value\[0\]\s*===\s*('|"|`)=\3|value\.charAt\(0\)\s*===\s*('|"|`)=\4|value\.startsWith\(('|"|`)=\5\))|(?:value\[0\]\s*===\s*('|"|`)=\6|value\.charAt\(0\)\s*===\s*('|"|`)=\7|value\.startsWith\(('|"|`)=\8\))\s*\|\|\s*!value\.includes\(\s*element\.id\s*\))\s*\)\s*\{\s*\}/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497e764135bd24b7960dd3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497e764135bd24b7960dd3.md index c7d6d0b6024..252b7194a70 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497e764135bd24b7960dd3.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497e764135bd24b7960dd3.md @@ -7,49 +7,49 @@ dashedName: step-32 # --description-- -In order to run your spreadsheet functions, you need to be able to parse and evaluate the input string. This is a great time to use another function. +Para executar as funções da planilha, você precisa ser capaz de analisar e avaliar a string de entrada. Esse é um excelente momento para usar outra função. -Declare an `evalFormula` arrow function which takes the parameters `x` and `cells`. +Declare uma arrow function chamada `evalFormula`, que recebe os parâmetros `x` e `cells`. # --hints-- -You should declare an `evalFormula` variable. +Você deve declarar uma variável `evalFormula`. ```js assert.match(code, /(?:let|const|var)\s*evalFormula/); ``` -You should use `const` to declare your `evalFormula` variable. +Você deve usar `const` para declarar a variável `evalFormula`. ```js assert.match(code, /const\s*evalFormula/); ``` -Your `evalFormula` variable should be a function. +A variável `evalFormula` deve ser uma função. ```js assert.isFunction(evalFormula); ``` -Your `evalFormula` function should use arrow syntax. +A função `evalFormula` deve usar a sintaxe das arrow functions. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(/); ``` -Your `evalFormula` function should have `x` as the first parameter. +A função `evalFormula` deve ter `x` como primeiro parâmetro. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x/); ``` -Your `evalFormula` function should have `cells` as the second parameter. +A função `evalFormula` deve ter `cells` como segundo parâmetro. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>/); ``` -Your `evalFormula` function should be empty. +A função `evalFormula` deve estar vazia. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*}/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449842c6f6c84261075e4c9.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449842c6f6c84261075e4c9.md index cfc1f1eabdf..af309f019b9 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449842c6f6c84261075e4c9.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449842c6f6c84261075e4c9.md @@ -7,61 +7,61 @@ dashedName: step-33 # --description-- -In your `evalFormula`, declare an `idToText` arrow function which takes an `id` parameter. +Em `evalFormula`, declare uma arrow function `idToText`, que recebe um parâmetro `id`. -Your `idToText` function should return the result of calling `.find()` on the `cells` array with a callback function that takes an `cell` parameter and returns `cell.id === id`. +A função `idToText` deve retornar o resultado da chamada de `.find()` no array `cells` com uma função de callback que receba um parâmetro `cell` e retorne `cell.id === id`. # --hints-- -You should declare an `idToText` variable in your `evalFormula` function. +Você deve declarar uma variável `idToText` na função `evalFormula`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*(?:const|let|var)\s+idToText/); ``` -You should use `const` to declare your `idToText` variable. +Você deve usar `const` para declarar a variável `idToText`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText/); ``` -Your `idToText` variable should be an arrow function. +A variável `idToText` deve ser uma arrow function. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?.*\)?\s*=>/); ``` -Your `idToText` function should have an `id` parameter. +A função `idToText` deve ter um parâmetro `id`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>/); ``` -You should assign `idToText` the result of calling the `.find()` method on your `cells` array. +Você deve atribuir a `idToText` o resultado da chamada do método `.find()` no array `cells`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(/); ``` -You should pass a callback function to your `.find()` method. Use arrow syntax. +Você deve passar uma função de callback para o método `.find()`. Use a sintaxe das arrow functions. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?.*\)?\s*=>/); ``` -Your callback function should have a `cell` parameter. +A função de callback deve ter um parâmetro `cell`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>/); ``` -Your callback function should use an implicit return. +A função de callback deve usar um retorno implícito. ```js assert.notMatch(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*\{/); ``` -Your callback function should return whether `cell.id` is strictly equal to `id`. +A função de callback deve retornar se `cell.id` é estritamente igual a `id`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498473a17adc26ef0ecc2d.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498473a17adc26ef0ecc2d.md index 84fb0ceaf96..d53fa1df8a4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498473a17adc26ef0ecc2d.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498473a17adc26ef0ecc2d.md @@ -7,11 +7,11 @@ dashedName: step-34 # --description-- -Your `idToText` function currently returns an `input` element. Update it to return the `value` of that `input` element. +A função `idToText`, no momento, retorna um elemento `input`. Atualize-a para que retorne o `value` daquele elemento `input`. # --hints-- -You should return the `value` property of the return value of the `.find()` method. +Você deve retornar a propriedade `value` do valor de retorno do método `.find()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449849b78f43527be1e8a98.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449849b78f43527be1e8a98.md index db4bc5dc6f4..c8cfdbb6145 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449849b78f43527be1e8a98.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449849b78f43527be1e8a98.md @@ -7,43 +7,43 @@ dashedName: step-35 # --description-- -You need to be able to match cell ranges in a formula. Cell ranges can look like `A1:B12` or `A3:A25`. You can use a regular expression to match these patterns. +Você precisa ser capaz de combinar intervalos de células em uma fórmula. Intervalos de células podem se parecer com `A1:B12` ou `A3:A25`. Você pode usar uma expressão regular para corresponder a esses padrões. -Start by declaring a `rangeRegex` variable and assign it a regular expression that matches `A` through `J` (the range of columns in your spreadsheet). Use a capture group with a character class to achieve this. +Comece declarando uma variável `rangeRegex` e atribua a ela uma expressão regular que corresponda às letras de `A` até `J` (o intervalo de colunas em sua planilha). Use um grupo de captura com uma classe de caractere para conseguir isso. # --hints-- -You should declare a `rangeRegex` variable after your `idToText` function. +Você deve declarar uma variável `rangeRegex` após a função `idToText`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*(?:var|let|const)\s+rangeRegex/); ``` -You should use `const` to declare your `rangeRegex` variable. +Você deve usar `const` para declarar a variável `rangeRegex`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex/); ``` -Your `rangeRegex` variable should be a regular expression. +A variável `rangeRegex` deve ser uma expressão regular. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/.*\/;?/); ``` -Your `rangeRegex` should use a capture group. +`rangeRegex` deve usar um grupo de captura. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(.*\)\/;?/); ``` -Your `rangeRegex` should use a character class in the capture group. +`rangeRegex` deve usar uma classe de caractere no grupo de captura. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[.*\]\)\/;?/); ``` -Your `rangeRegex` should use a character class to match `A` through `J`. +`rangeRegex` deve usar uma classe de caractere que corresponda às letras de `A` até `J`. ```js diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498542cab69128ab24e4de.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498542cab69128ab24e4de.md index 0f7ebc28fb4..6a27671a819 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498542cab69128ab24e4de.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498542cab69128ab24e4de.md @@ -7,43 +7,43 @@ dashedName: step-36 # --description-- -After matching a cell letter successfully, your `rangeRegex` needs to match the cell number. Cell numbers in your sheet range from `1` to `99`. +Depois de corresponder à letra de célula com sucesso, `rangeRegex` precisa corresponder ao número da célula. Os números de célula na planilha vão de `1` até `99`. -Add a capture group after your letter capture group. Your new capture group should match one or two digits – the first digit should be `1` through `9`, and the second digit should be `0` through `9`. The second digit should be optional. +Adicione um grupo de captura após o grupo de captura de letras. O novo grupo de captura deve corresponder a um ou dois algarismos – o primeiro algarismo deve ser de `1` até `9` e o segundo algarismo deve ser de `0` até `9`. O segundo algarismo deve ser opcional. # --hints-- -You should add a second capture group to your `rangeRegex`. +Você deve adicionar um segundo grupo de captura a `rangeRegex`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(.*\)\/;?/); ``` -Your second capture group should have a character class. +O segundo grupo de captura deve ter uma classe de caractere. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[.*\]\??\)\/;?/); ``` -Your second capture group should have two character classes. +O segundo grupo de captura deve ter duas classes de caractere. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[.*\]\[.*\]\??\)\/;?/); ``` -Your first new character class should match the digits `1` through `9`. +A primeira classe de caractere nova deve corresponder aos algarismos de `1` até `9`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[.*\]\??\)\/;?/); ``` -Your second new character class should match the digits `0` through `9`. +A segunda classe de caractere nova deve corresponder aos algarismos de `0` até `9`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\??\)\/;?/); ``` -Your second new character class should be optional. +A segunda classe de caractere nova deve ser opcional. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/;?/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449860d84c9e22cbd7b497c.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449860d84c9e22cbd7b497c.md index 0b8a3e435d0..d4c2a832e8f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449860d84c9e22cbd7b497c.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449860d84c9e22cbd7b497c.md @@ -7,11 +7,11 @@ dashedName: step-37 # --description-- -Ranges are separated by a colon. After your two capture groups, your `rangeRegex` should look for a colon. +Intervalos são separados por dois-pontos. Após os dois grupos de captura, `rangeRegex` deve procurar pelos dois-pontos. # --hints-- -You should add a colon after your second capture group. +Você deve adicionar dois-pontos após o segundo grupo de captura. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\/;?/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449863f592af72d9be0959e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449863f592af72d9be0959e.md index bda4d11d4e2..75fd18d4dd2 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449863f592af72d9be0959e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449863f592af72d9be0959e.md @@ -7,37 +7,37 @@ dashedName: step-38 # --description-- -After your `rangeRegex` finds the `:`, it needs to look for the same letter and number pattern as it did before. +Após `rangeRegex` encontrar `:`, ela precisa procurar o mesmo padrão de letra e número que usou antes. -Copy your two existing capture groups and paste them after the colon. +Copie seus dois grupos de captura existentes e cole-os após os dois-pontos. # --hints-- -You should add a third capture group to your `rangeRegex`, after the colon. +Você deve adicionar um terceiro grupo de captura a `rangeRegex`, após os dois-pontos. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(.*\)/); ``` -Your third capture group should use a character class. +O terceiro grupo de captura deve ter uma classe de caractere. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[.*\]\)/); ``` -Your third capture group should match the characters `A` through `J`. +O terceiro grupo de captura deve coincidir com os caracteres de `A` até `J`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)/); ``` -You should add a fourth capture group to your `rangeRegex`. +Você deve adicionar um quarto grupo de captura a `rangeRegex`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(.*\)/); ``` -Your fourth capture group should match one or two digits. +O quarto grupo de captura deve corresponder a um ou dois algarismos. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449874d5191562eb3313b3f.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449874d5191562eb3313b3f.md index 9167927545b..4259181e3c3 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449874d5191562eb3313b3f.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449874d5191562eb3313b3f.md @@ -7,23 +7,23 @@ dashedName: step-39 # --description-- -Finally, make your `rangeRegex` global and case-insensitive. +Por fim, torne a `rangeRegex` global e sem distinção entre maiúsculas e minúsculas. # --hints-- -Your `rangeRegex` should be case-insensitive. +`rangeRegex` não deve diferenciar maiúsculas de minúsculas. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/g?i/); ``` -Your `rangeRegex` should be global. +`rangeRegex` deve ser global. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/i?g/); ``` -Your `rangeRegex` should be both global and case-insensitive. +`rangeRegex` deve ser global e não diferenciar maiúsculas de minúsculas. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig)/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449876e7aae0d2f8257a497.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449876e7aae0d2f8257a497.md index 0b3949936a4..819bab5eed7 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449876e7aae0d2f8257a497.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449876e7aae0d2f8257a497.md @@ -7,61 +7,61 @@ dashedName: step-40 # --description-- -Declare a `rangeFromString` arrow function that takes two parameters, `num1` and `num2`. The function should implicitly return the result of calling `range` with `num1` and `num2` as arguments. +Declare uma arrow function chamada `rangeFromString`, que receba dois parâmetros, `num1` e `num2`. A função deve retornar implicitamente o resultado da chamada de `range`, com `num1` e `num2` como argumentos. -To be safe, parse `num1` and `num2` into integers as you pass them into `range`. +Por segurança, faça o parsing de `num1` e `num2` para números inteiros conforme você os passa para `range`. # --hints-- -You should declare a `rangeFromString` variable after your `rangeRegex`. +Você deve declarar uma variável `rangeFromString` após a função `rangeRegex`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*(?:var|let|const)\s+rangeFromString/); ``` -You should use `const` to declare your `rangeFromString` variable. +Você deve usar `const` para declarar a variável `rangeFromString`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString/); ``` -Your `rangeFromString` variable should be an arrow function. +A variável `rangeFromString` deve ser uma arrow function. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(?.*\)?\s*=>/); ``` -Your `rangeFromString` function should have `num1` as the first parameter. +A função `rangeFromString` deve ter `num1` como primeiro parâmetro. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(?\s*num1/); ``` -Your `rangeFromString` function should have `num2` as the second parameter. +A função `rangeFromString` deve ter `num2` como segundo parâmetro. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>/); ``` -Your `rangeFromString` function should use an implicit return. +A função `rangeFromString` deve usar um retorno implícito. ```js assert.notMatch(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*\{/); ``` -Your `rangeFromString` function should return the result of calling your `range` function. +A função `rangeFromString` deve retornar o resultado da chamada da função `range`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(/); ``` -You should call `parseInt` with `num1` as an argument and pass the result to the `range` call. +Você deve chamar `parseInt` com `num1` como argumento e passar o resultado para a chamada de `range`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)/); ``` -You should call `parseInt` with `num2` as the argument and pass the result to the `range` call. +Você deve chamar `parseInt` com `num2` como argumento e passar o resultado para a chamada de `range`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\)/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498b085028fc30a58bb6a7.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498b085028fc30a58bb6a7.md index 251a049c9fc..bf31924adf6 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498b085028fc30a58bb6a7.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498b085028fc30a58bb6a7.md @@ -7,35 +7,35 @@ dashedName: step-41 # --description-- -Declare a function `elemValue` which takes a `num` parameter. The function should be empty. +Declare uma função `elemValue` que receba um parâmetro `num`. A função deve estar vazia. # --hints-- -You should declare an `elemValue` variable after your `rangeFromString()` function. +Você deve declarar uma variável `elemValue` após a função `rangeFromString()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*(?:var|let|const)\s+elemValue/); ``` -You should use `const` to declare your `elemValue` variable. +Você deve usar `const` para declarar a variável `elemValue`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue/); ``` -Your `elemValue` variable should be an arrow function. +A variável `elemValue` deve ser uma arrow function. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?.*\)?\s*=>/); ``` -Your `elemValue` function should have `num` as the only parameter. +A função `elemValue` deve ter `num` como o único parâmetro. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>/); ``` -Your `elemValue` function should be empty. +A função `elemValue` deve estar vazia. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*\}/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0889c6ff4baa46ac1c50.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0889c6ff4baa46ac1c50.md index 85e7753a838..f95a34f3333 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0889c6ff4baa46ac1c50.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0889c6ff4baa46ac1c50.md @@ -7,43 +7,43 @@ dashedName: step-42 # --description-- -In your `elemValue` function, declare a function called `inner` which takes a `character` parameter. +Na função `elemValue`, declare uma função chamada `inner`, que recebe um parâmetro `character`. -Then, return your `inner` function. +Em seguida, retorne a função `inner`. # --hints-- -You should declare an `inner` variable. +Você deve declarar uma variável `inner`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*(?:var|let|const)\s+inner/); ``` -You should use `const` to declare your `inner` variable. +Você deve usar `const` para declarar a variável `inner`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner/); ``` -Your `inner` variable should be an arrow function. +A variável `inner` deve ser uma arrow function. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?.*\)?\s*=>/); ``` -Your `inner` function should have `character` as the only parameter. +A função `inner` deve ter `character` como o único parâmetro. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>/); ``` -Your `inner` function should be empty. +A função `inner` deve estar vazia. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*\}/); ``` -You should explicitly return your `inner` function. +Você deve retornar explicitamente a função `inner`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*\};?\s*return\s+inner/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d09a07241aaab1e777080.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d09a07241aaab1e777080.md index 27df285d6f0..8ab435823d5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d09a07241aaab1e777080.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d09a07241aaab1e777080.md @@ -7,23 +7,23 @@ dashedName: step-43 # --description-- -In your `inner` function, return the result of calling `idToText` with `character + num` as the argument. +Na função `inner`, retorne o resultado da chamada de `idToText` com `character + num` como argumento. # --hints-- -Your `inner` function should use an explicit return. +A função `inner` deve usar um retorno explícito. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return/); ``` -Your `inner` function should return the result of calling your `idToText` function. +A função `inner` deve retornar o resultado da chamada da função `idToText`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return\s+idToText\(/); ``` -You should pass `character + num` as the argument to your `idToText` function. +Você deve passar `character + num` como argumento para a função `idToText`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return\s+idToText\(\s*character\s*\+\s*num\s*\);?\s*};?\s*return\s+inner/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0a022da7bcabf3e3aca3.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0a022da7bcabf3e3aca3.md index 35c1359c365..b43f9f23ed5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0a022da7bcabf3e3aca3.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0a022da7bcabf3e3aca3.md @@ -7,7 +7,7 @@ dashedName: step-44 # --description-- -The concept of returning a function within a function is called currying. This approach allows you to create a variable that holds a function to be called later, but with a reference to the parameters of the outer function call. +O conceito de retorno de uma função dentro de outra função é chamado de currying. Essa abordagem permite que você crie uma variável que contém uma função para ser chamada mais tarde, mas com uma referência aos parâmetros da chamada da função externa. Por exemplo: @@ -16,37 +16,37 @@ const innerOne = elemValue(1); const final = innerOne("A"); ``` -`innerOne` would be your `inner` function, with `num` set to `1`, and `final` would have the value of the cell with the `id` of `A1`. This is possible because functions have access to all variables declared at their creation. Isso é chamado de closure. +`innerOne` seria a função `inner` (interna), com `num` definido como `1` e `final` teria o valor da célula com o `id` `A1`. Isso é possível porque as funções têm acesso a todas as variáveis declaradas no momento de sua criação. Isso é chamado de closure. -You'll get some more practice with this. Declare a function called `addCharacters` which takes a `character1` parameter. +Você terá mais prática com isso. Declare uma função chamada `addCharacters`, que receba um parâmetro `character1`. # --hints-- -You should declare an `addCharacters` variable. +Você deve declarar uma variável `addCharacters`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return\s+idToText\(\s*character\s*\+\s*num\s*\);?\s*};?\s*return\s+inner;?\s*\}\s*(?:var|let|const)\s+addCharacters/); ``` -You should use `const` to declare your `addCharacters` variable. +Você deve usar `const` para declarar uma variável `addCharacters`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return\s+idToText\(\s*character\s*\+\s*num\s*\);?\s*};?\s*return\s+inner;?\s*\}\s*const\s+addCharacters/); ``` -Your `addCharacters` variable should be an arrow function. +A variável `addCharacters` deve ser uma arrow function. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return\s+idToText\(\s*character\s*\+\s*num\s*\);?\s*};?\s*return\s+inner;?\s*\}\s*const\s+addCharacters\s*=\s*\(?.*\)?\s*=>/); ``` -Your `addCharacters` function should not use an implicit return. +A função `addCharacters` não deve usar um retorno implícito. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return\s+idToText\(\s*character\s*\+\s*num\s*\);?\s*};?\s*return\s+inner;?\s*\}\s*const\s+addCharacters\s*=\s*\(?.*\)?\s*=>\s*\{/); ``` -Your `addCharacters` function should have a `character1` parameter. +A função `addCharacters` deve ter um parâmetro `character1`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return\s+idToText\(\s*character\s*\+\s*num\s*\);?\s*};?\s*return\s+inner;?\s*\}\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0d20108440acc95a6b32.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0d20108440acc95a6b32.md index 9736042b995..dc678b864b2 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0d20108440acc95a6b32.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0d20108440acc95a6b32.md @@ -7,29 +7,29 @@ dashedName: step-45 # --description-- -In your `elemValue` function, you explicitly declared a function called `inner` and returned it. However, because you are using arrow syntax, you can implicitly return a function. Por exemplo: +Na função `elemValue`, você declarou explicitamente uma função chamada `inner` e a retornou. No entanto, como você está usando a sintaxe das arrow functions, você pode retornar implicitamente uma função. Por exemplo: ```js const curry = soup => veggies => {}; ``` -`curry` is a function which takes a `soup` parameter and returns a function which takes a `veggies` parameter. Using this syntax, update your `addCharacters` function to return an empty function which takes a `character2` parameter. +`curry` é uma função que recebe um parâmetro `soup` e retorna uma função que recebe um parâmetro `veggies`. Usando essa sintaxe, atualize a função `addCharacters` para que retorne uma função vazia que receba um parâmetro `character2`. # --hints-- -Your `addCharacters` function should use an implicit return. +A função `addCharacters` deve usar um retorno implícito. ```js assert.notMatch(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return\s+idToText\(\s*character\s*\+\s*num\s*\);?\s*};?\s*return\s+inner;?\s*\}\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\{/); ``` -Your `elemValue` function should return an arrow function which has a `character2` parameter. +A função `elemValue` deve retornar uma arrow function que tenha um parâmetro `character2`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return\s+idToText\(\s*character\s*\+\s*num\s*\);?\s*};?\s*return\s+inner;?\s*\}\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>/); ``` -Your inner arrow function should be empty. +A arrow function interna deve estar vazia. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return\s+idToText\(\s*character\s*\+\s*num\s*\);?\s*};?\s*return\s+inner;?\s*\}\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\{\s*\}/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0e4636e14eae2bb3b992.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0e4636e14eae2bb3b992.md index dd7f98a712e..1da257a1013 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0e4636e14eae2bb3b992.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0e4636e14eae2bb3b992.md @@ -7,29 +7,29 @@ dashedName: step-47 # --description-- -Now update your innermost function in the `addCharacters` chain to implicitly return the result of calling `charRange()` with `character1` and `character2` as the arguments. +Agora, atualize a função mais interna na cadeia de `addCharacters` para que retorne implicitamente o resultado da chamada de `charRange()` com `character1` e `character2` como argumentos. # --hints-- -Your innermost function should use an implicit return. +A função mais interna deve usar um retorno implícito. ```js assert.notMatch(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return\s+idToText\(\s*character\s*\+\s*num\s*\);?\s*};?\s*return\s+inner;?\s*\}\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*\{/); ``` -Your innermost function should return the result of calling `charRange()`. +A função mais interna deve retornar o resultado da chamada de `charRange()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return\s+idToText\(\s*character\s*\+\s*num\s*\);?\s*};?\s*return\s+inner;?\s*\}\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(/); ``` -You should pass `character1` as the first argument to your `charRange()` call. +Você deve passar `character1` como o primeiro argumento para a chamada de `charRange()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return\s+idToText\(\s*character\s*\+\s*num\s*\);?\s*};?\s*return\s+inner;?\s*\}\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1/); ``` -You should pass `character2` as the second argument to your `charRange()` call. +Você deve passar `character2` como o segundo argumento para a chamada de `charRange()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return\s+idToText\(\s*character\s*\+\s*num\s*\);?\s*};?\s*return\s+inner;?\s*\}\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1980018efaaec2b1c28b.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1980018efaaec2b1c28b.md index 80f0195db84..ae44683d142 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1980018efaaec2b1c28b.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1980018efaaec2b1c28b.md @@ -7,29 +7,29 @@ dashedName: step-48 # --description-- -Use the same syntax as your `addCharacters` function to update your `elemValue` function. It should no longer declare `inner`, but should return the function implicitly. +Use a mesma sintaxe da função `addCharacters` para atualizar a função `elemValue`. Ela não deve mais declarar `inner`, mas retornar a função implicitamente. # --hints-- -Your `elemValue` function should use an implicit return. +A função `elemValue` deve usar um retorno implícito. ```js assert.notMatch(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{/); ``` -Your `elemValue` function should implicitly return an arrow function with a `character` parameter. +A função `elemValue` deve retornar implicitamente uma arrow function com um parâmetro `character`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>/); ``` -Your inner arrow function should use an implicit return. +A arrow function interna deve usar um retorno implícito. ```js assert.notMatch(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*\{/); ``` -Your inner arrow function should return the result of calling `idToText()` with `character + num` as the argument. +A arrow function interna deve retornar o resultado da chamada de `idToText()` com `character + num` como argumento. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\)/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d19fc4705e4af65c3e688.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d19fc4705e4af65c3e688.md index af54d918e71..687c6a0ae3c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d19fc4705e4af65c3e688.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d19fc4705e4af65c3e688.md @@ -7,17 +7,17 @@ dashedName: step-49 # --description-- -Your `addCharacters` function ultimately returns a range of characters. You want it to return an array of cell ids. Chain the `.map()` method to your `charRange()` call. Não passe uma função de callback ainda. +A função `addCharacters` retorna, no fim, um intervalo de caracteres. Você quer que ela retorne um array de IDs de células. Encadeie o método `.map()` à chamada de `charRange()`. Não passe uma função de callback ainda. # --hints-- -You should chain `.map()` to your `charRange()` call. +Você deve encadear o método `.map()` à chamada de `charRange()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(/); ``` -You should not pass anything to your `.map()` call. +Você não deve passar nada para o método `.map()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*\)/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1b96dd7ea4b0061458bc.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1b96dd7ea4b0061458bc.md index c4059cec057..1f543769494 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1b96dd7ea4b0061458bc.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1b96dd7ea4b0061458bc.md @@ -7,7 +7,7 @@ dashedName: step-50 # --description-- -You can pass a function reference as a callback parameter. A function reference is a function name without the parentheses. Por exemplo: +Você pode passar uma referência de função como um parâmetro da função de callback. Uma referência de função é um nome de função sem os parênteses. Por exemplo: ```js const myFunc = (val) => `value: ${val}`; @@ -15,19 +15,19 @@ const array = [1, 2, 3]; const newArray = array.map(myFunc); ``` -The `.map()` method here will call the `myFunc` function, passing the same arguments that a `.map()` callback takes. The first argument is the value of the array at the current iteration, so `newArray` would be `[value: 1, value: 2, value: 3]`. +O método `.map()`, aqui, chamará a função `myFunc`, passando os mesmos argumentos que uma função de callback de `.map()` receberia. O primeiro argumento é o valor do array na iteração atual, então `newArray` seria `[value: 1, value: 2, value: 3]`. -Pass a reference to your `elemValue` function as the callback to your `.map()` method. +Passe uma referência à função `elemValue` como a função de callback do método `.map()`. # --hints-- -You should not call your `elemValue` function. +Você não deve chamar a função `elemValue`. ```js assert.notMatch(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\)\s*\)/); ``` -You should pass a reference to `elemValue` as the callback to your `.map()` method. +Você deve passar uma referência à função `elemValue` como a função de callback de `.map()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\s*\)/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1cadf0d96ab0b7e12da4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1cadf0d96ab0b7e12da4.md index c49782f10a0..cdddb4b9da5 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1cadf0d96ab0b7e12da4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1cadf0d96ab0b7e12da4.md @@ -7,19 +7,19 @@ dashedName: step-51 # --description-- -Because `elemValue` returns a function, your `addChars` function ultimately returns an array of function references. You want the `.map()` method to run the inner function of your `elemValue` function, which means you need to call `elemValue` instead of reference it. Pass `num` as the argument to your `elemValue` function. +Como `elemValue` retorna uma função, a função `addChars` retorna, no fim, um array de referências de função. Você quer que o método `.map()` execute a função interna à função `elemValue`, o que significa que você precisa chamar `elemValue` em vez de fazer referência a ela. Passe `num` como argumento para a função `elemValue`. # --hints-- -You should call `elemValue()` in your `.map()` method. +Você deve chamar `elemValue()` no método `.map()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(/); ``` -You should pass `num` to your `elemValue()` call. +Você deve passar `num` para a chamada de `elemValue()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\)/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1e531042dfb24da1f032.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1e531042dfb24da1f032.md index 84d029b3129..4f26ed826aa 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1e531042dfb24da1f032.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1e531042dfb24da1f032.md @@ -7,19 +7,19 @@ dashedName: step-53 # --description-- -The second argument to the `.replace()` method does not have to be a string. You can instead pass a callback function to run more complex logic on the matched string. +O segundo argumento para o método `.replace()` não precisa ser uma string. Em vez disso, você pode passar uma função de callback para executar uma lógica mais complexa na string correspondente. -The callback function takes a few parameters. The first is the matched string. Pass an empty callback function to your `.replace()` call, and give it a `match` parameter. +A função de callback receber alguns parâmetros. O primeiro é a string correspondente. Passe uma função de callback vazia para a chamada de `.replace()` e dê a ela um parâmetro `match`. # --hints-- -You should pass an arrow function as the second argument to your `.replace()` method. +Você deve passar uma arrow function como segundo argumento para o método `.replace()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(.*\)\s*=>\s*\{\s*\}\)/); ``` -Your arrow function should take a `match` parameter. +A arrow function deve ter um parâmetro `match`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*match\s*\)\s*=>\s*\{\s*\}\)/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3141790b3cb337dd611a.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3141790b3cb337dd611a.md index fc53539afe0..35801b9a7ba 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3141790b3cb337dd611a.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3141790b3cb337dd611a.md @@ -7,31 +7,31 @@ dashedName: step-54 # --description-- -The callback function then has a parameter for each capture group in the regular expression. In your case, `rangeRegex` has four capture groups: the first letter, the first numbers, the second letter, and the second numbers. +A função de callback tem um parâmetro para cada grupo de captura na expressão regular. Nesse caso, `rangeRegex` tem quatro grupos de captura: a primeira letra, o primeiro número, a segunda letra e o segundo número. -Give your callback function four more parameters to match those capture groups: `char1`, `num1`, `char2`, and `num2`. `char` will be short for `character`. +Dê à função de callback mais quatro parâmetros para corresponder a esses grupos de captura: `char1`, `num1`, `char2` e `num2`. `char` será a abreviação de `character`. # --hints-- -You should pass `char1` as the second argument to your callback. +Você deve passar `char1` como o segundo argumento para a função de callback. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*match\s*,\s*char1/); ``` -You should pass `num1` as the third argument to your callback. +Você deve passar `num1` como terceiro argumento para a função de callback. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*match\s*,\s*char1\s*,\s*num1/); ``` -You should pass `char2` as the fourth argument to your callback. +Você deve passar `char2` como o quarto argumento para a função de callback. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*match\s*,\s*char1\s*,\s*num1\s*,\s*char2/); ``` -You should pass `num2` as the fifth argument to your callback. +Você deve passar `num2` como o quinto argumento para a função de callback. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d382c4d70ceb3dba1e830.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d382c4d70ceb3dba1e830.md index a49d188dd73..0ed55676c62 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d382c4d70ceb3dba1e830.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d382c4d70ceb3dba1e830.md @@ -7,29 +7,29 @@ dashedName: step-55 # --description-- -Have your callback implicitly return the result of calling `rangeFromString()` with `num1` and `num2` as the arguments. +Faça com que a função de callback retorne implicitamente o resultado da chamada de `rangeFromString()`, com `num1` e `num2` como argumentos. # --hints-- -Your callback should use an implicit return. +A função de callback deve usar um retorno implícito. ```js assert.notMatch(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*\{/); ``` -Your callback should return the result of calling `rangeFromString()`. +A função de callback deve retornar o resultado da chamada de `rangeFromString()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(/); ``` -You should pass `num1` as the first argument to your `rangeFromString()` call. +Você deve passar `num1` como o primeiro argumento para a chamada de `rangeFromString()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1/); ``` -You should pass `num2` as the second argument to your `rangeFromString()` call. +Você deve passar `num2` como o segundo argumento para a chamada de `rangeFromString()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d38c326f3c8b54023de38.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d38c326f3c8b54023de38.md index 7ad6402faee..a35917fedf0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d38c326f3c8b54023de38.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d38c326f3c8b54023de38.md @@ -7,17 +7,17 @@ dashedName: step-57 # --description-- -`addCharacters` returns a function, so you'll want to call it. Pass `char1` as the argument. +`addCharacters` retorna uma função, então você vai querer chamar essa função. Passe `char1` como argumento. # --hints-- -You should call your `addCharacters()` function in your `.map()` method. +Você deve chamar a função `addCharacters()` no método `.map()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*/); ``` -You should pass `char1` as the argument to your `addCharacters()` call. +Você deve passar `char1` como o primeiro argumento para a chamada de `addCharacters()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\s*\)/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3b27cd3c56b875256301.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3b27cd3c56b875256301.md index f2f1b07c5a4..75fe6ca0823 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3b27cd3c56b875256301.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3b27cd3c56b875256301.md @@ -7,41 +7,41 @@ dashedName: step-61 # --description-- -Declare a `cellExpanded` variable and assign it the value of calling `.replace()` on your `rangeExpanded` variable. Pass it your `cellRegex` and an empty callback function. The callback function should take a `match` parameter. +Declare uma variável `cellExpanded` e atribua a ela o valor da chamada de `.replace()` na variável `rangeExpanded`. Passe `cellRegex` para ela e uma função de callback vazia. A função de callback deve ter um parâmetro `match`. # --hints-- -You should declare a `cellExpanded` variable. +Você deve declarar uma variável `cellExpanded`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*(var|let|const)\s+cellExpanded/); ``` -You should use `const` to declare your `cellExpanded` variable. +Você deve usar `const` para declarar a variável `cellExpanded`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded/); ``` -You should assign `cellExpanded` the result of calling the `.replace()` method of `rangeExpanded`. +Você deve atribuir a `cellExpanded` o resultado da chamada do método `.replace()` de `rangeExpanded`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(/); ``` -You should pass `cellRegex` as the first argument to your `.replace()` call. +Você deve passar `cellRegex` como o primeiro argumento para a chamada de `.replace()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex/); ``` -You should pass a callback function using arrow syntax as the second argument to your `.replace()` call. +Você deve passar uma função de callback usando a sintaxe das arrow functions como segundo argumento para a chamada de `.replace()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*(?:match)?\s*\)?\s*=>/); ``` -Your callback function should have a `match` parameter. +A função de callback deve ter um parâmetro `match`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*match\s*\)?\s*=>/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d65be79c8bb9c7df9ff.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d65be79c8bb9c7df9ff.md index 37e8f20afa2..e6c1f583585 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d65be79c8bb9c7df9ff.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d65be79c8bb9c7df9ff.md @@ -7,47 +7,47 @@ dashedName: step-65 # --description-- -Now create a `-` property that is a function that takes an `x` and `y` parameter and implicitly returns the result of subtracting `y` from `x`. +Agora, crie uma propriedade `-`, que é uma função que recebe dois parâmetros, `x` e `y`, e retorna implicitamente o resultado da subtração de `x` por `y`. # --hints-- -Your `infixToFunction` object should have a `-` property. +O objeto `infixToFunction` deve ter uma propriedade `-`. ```js assert.property(infixToFunction, '-'); ``` -Your `-` property should be a function. +A propriedade `-` deve ser uma função. ```js assert.isFunction(infixToFunction['-']); ``` -Your `-` function should use arrow syntax. +A função `-` deve usar a sintaxe das arrow functions. ```js assert.match(code, /('|"|`)-\1\s*:\s*\(/); ``` -Your `-` function should have `x` as its first parameter. +A função `-` deve ter `x` como primeiro parâmetro. ```js assert.match(code, /('|"|`)-\1\s*:\s*\(\s*x/); ``` -Your `-` function should have `y` as its second parameter. +A função `-` deve receber `y` como segundo parâmetro. ```js assert.match(code, /('|"|`)-\1\s*:\s*\(\s*x\s*,\s*y\s*\)/); ``` -Your `-` function should use an implicit return. +A função `-` deve usar um retorno implícito. ```js assert.notMatch(code, /('|"|`)-\1\s*:\s*\(\s*x\s*,\s*y\s*\)\s*\{/); ``` -Your `-` function should return the result of subtracting `y` from `x`. +A função `-` deve retornar o resultado da subtração de `x` por `y`. ```js assert.equal(infixToFunction['-'](1, 2), -1); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d80c3b4aebc4103618e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d80c3b4aebc4103618e.md index e11234e6b2d..60ba6acd175 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d80c3b4aebc4103618e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d80c3b4aebc4103618e.md @@ -7,89 +7,89 @@ dashedName: step-66 # --description-- -Following the same pattern, add a property for multiplication `*` and division `/` with the appropriate functions. +Seguindo o mesmo padrão, adicione uma propriedade para multiplicação `*` e para divisão `/` com as funções apropriadas. # --hints-- -Your `infixToFunction` object should have a `*` property. +O objeto `infixToFunction` deve ter uma propriedade `*`. ```js assert.property(infixToFunction, '*'); ``` -Your `*` property should be a function. +A propriedade `*` deve ser uma função. ```js assert.isFunction(infixToFunction['*']); ``` -Your `*` function should use arrow syntax. +A função `*` deve usar a sintaxe das arrow functions. ```js assert.match(code, /('|"|`)\*\1\s*:\s*\(/); ``` -Your `*` function should have `x` as its first parameter. +A função `*` deve ter `x` como primeiro parâmetro. ```js assert.match(code, /('|"|`)\*\1\s*:\s*\(\s*x/); ``` -Your `*` function should have `y` as its second parameter. +A função `*` deve receber `y` como segundo parâmetro. ```js assert.match(code, /('|"|`)\*\1\s*:\s*\(\s*x\s*,\s*y\s*\)/); ``` -Your `*` function should use an implicit return. +A função `*` deve usar um retorno implícito. ```js assert.notMatch(code, /('|"|`)\*\1\s*:\s*\(\s*x\s*,\s*y\s*\)\s*\{/); ``` -Your `*` function should return the result of multiplying `x` by `y`. +A função `*` deve retornar o resultado da multiplicação de `x` por `y`. ```js assert.equal(infixToFunction['*'](2, 5), 10); ``` -Your `infixToFunction` object should have a `/` property. +O objeto `infixToFunction` deve ter uma propriedade `/`. ```js assert.property(infixToFunction, '/'); ``` -Your `/` property should be a function. +A propriedade `/` deve ser uma função. ```js assert.isFunction(infixToFunction['/']); ``` -Your `/` function should use arrow syntax. +A função `/` deve usar a sintaxe das arrow functions. ```js assert.match(code, /('|"|`)\/\1\s*:\s*\(/); ``` -Your `/` function should have `x` as its first parameter. +A função `/` deve ter `x` como primeiro parâmetro. ```js assert.match(code, /('|"|`)\/\1\s*:\s*\(\s*x/); ``` -Your `/` function should have `y` as its second parameter. +A função `/` deve receber `y` como segundo parâmetro. ```js assert.match(code, /('|"|`)\/\1\s*:\s*\(\s*x\s*,\s*y\s*\)/); ``` -Your `/` function should use an implicit return. +A função `/` deve usar um retorno implícito. ```js assert.notMatch(code, /('|"|`)\/\1\s*:\s*\(\s*x\s*,\s*y\s*\)\s*\{/); ``` -Your `/` function should return the result of dividing `x` by `y`. +A função `/` deve retornar o resultado da divisão de `x` por `y`. ```js assert.equal(infixToFunction['/'](10, 2), 5); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3e135ab3abbdbfe5c899.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3e135ab3abbdbfe5c899.md index 3f273c49c28..d0da4a512c4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3e135ab3abbdbfe5c899.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3e135ab3abbdbfe5c899.md @@ -7,43 +7,43 @@ dashedName: step-68 # --description-- -Your callback needs four parameters. `match`, `arg1`, `operator`, and `arg2`. +A função de callback precisa de quatro parâmetros. Eles são: `match`, `arg1`, `operator` e `arg2`. -You will not be using the `match` parameter, so remember to prefix it. +Você não usará o parâmetro `match`. Então, lembre-se de prefixá-lo. # --hints-- -Your callback function should have `match` as the first parameter. +A função de callback deve ter `match` como o primeiro parâmetro. ```js assert.match(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*str\.replace\(\s*regex\s*,\s*\(\s*_?match/); ``` -Your `match` parameter should be prefixed with an underscore. +O parâmetro `match` deve ser prefixado com um sublinhado. ```js assert.match(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*str\.replace\(\s*regex\s*,\s*\(\s*_match/); ``` -Your callback function should have `arg1` as the second parameter. +A função de callback deve ter `arg1` como o segundo parâmetro. ```js assert.match(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*str\.replace\(\s*regex\s*,\s*\(\s*_match\s*,\s*arg1/); ``` -Your callback function should have `operator` as the third parameter. +A função de callback deve ter `operator` como o terceiro parâmetro. ```js assert.match(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*str\.replace\(\s*regex\s*,\s*\(\s*_match\s*,\s*arg1\s*,\s*operator/); ``` -Your callback function should have `arg2` as the fourth parameter. +A função de callback deve ter `arg2` como o quarto parâmetro. ```js assert.match(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*str\.replace\(\s*regex\s*,\s*\(\s*_match\s*,\s*arg1\s*,\s*operator\s*,\s*arg2\s*\)/); ``` -Your callback function should still be empty. +A função de callback ainda deve estar vazia. ```js assert.match(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*str\.replace\(\s*regex\s*,\s*\(\s*_match\s*,\s*arg1\s*,\s*operator\s*,\s*arg2\s*\)\s*=>\s*\{\s*\}\s*\)/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3e64b15f92be6e61704e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3e64b15f92be6e61704e.md index 52d4ddc55a3..82eeec76a15 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3e64b15f92be6e61704e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3e64b15f92be6e61704e.md @@ -7,25 +7,25 @@ dashedName: step-69 # --description-- -The `regex` you will be passing to your `infixEval` function will match two numbers with an operator between them. The first number will be assigned to `arg1` in the callback, the second to `arg2`, and the operator to `operator`. +A `regex` que você passará para a função `infixEval` corresponderá a dois números com um operador entre eles. O primeiro número será atribuído a `arg1` na função de callback, enquanto o segundo será atribuído a `arg2` e o operador a `operator`. -Have your callback function implicitly return the `operator` property of your `infixToFunction` object. Remember that `operator` is a variable which holds the property name, not the actual property name. +Faça com que a função de callback retorne implicitamente a propriedade `operator` do objeto `infixToFunction`. Lembre-se de que `operator` é uma variável que contém o nome da propriedade. Ela não é o nome da propriedade de fato. # --hints-- -Your callback should use an implicit return. +A função de callback deve usar um retorno implícito. ```js assert.notMatch(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*str\.replace\(\s*regex\s*,\s*\(\s*_match\s*,\s*arg1\s*,\s*operator\s*,\s*arg2\s*\)\s*=>\s*\{/); ``` -Your callback function should access the `infixToFunction` object. +A função de callback deve acessar o objeto `infixToFunction`. ```js assert.match(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*str\.replace\(\s*regex\s*,\s*\(\s*_match\s*,\s*arg1\s*,\s*operator\s*,\s*arg2\s*\)\s*=>\s*infixToFunction/); ``` -Your callback function should use bracket notation to access the property of the `infixToFunction` object that matches the value of the `operator` argument. +A função de callback deve usar notação de parênteses para acessar a propriedade do objeto `infixToFunction`, que corresponde ao argumento `operator`. ```js assert.match(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*str\.replace\(\s*regex\s*,\s*\(\s*_match\s*,\s*arg1\s*,\s*operator\s*,\s*arg2\s*\)\s*=>\s*infixToFunction\[\s*operator\s*\]\s*\)/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3f1fd12f76c02c823bb8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3f1fd12f76c02c823bb8.md index b2a205a532e..c38e91327ad 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3f1fd12f76c02c823bb8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3f1fd12f76c02c823bb8.md @@ -7,19 +7,19 @@ dashedName: step-71 # --description-- -You have a slight bug. `arg1` and `arg2` are strings, not numbers. `infixToFunction['+']("1", "2")` would return `12`, which is not mathematically correct. +Você tem um pequeno erro no código. `arg1` e `arg2` são strings, não números. `infixToFunction['+']("1", "2")` retornaria `12`, o que não é matematicamente correto. -Wrap each of your `infixToFunction[operator]` arguments in a `parseFloat()` call. +Envolva cada um dos argumentos de `infixToFunction[operator]` em uma chamada de `parseFloat()`. # --hints-- -You should wrap `arg1` in a `parseFloat()` call. +Você deve envolver `arg1` em uma chamada de `parseFloat()`. ```js assert.match(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*str\.replace\(\s*regex\s*,\s*\(\s*_match\s*,\s*arg1\s*,\s*operator\s*,\s*arg2\s*\)\s*=>\s*infixToFunction\[\s*operator\s*\]\(\s*parseFloat\(\s*arg1\s*\)\s*,/); ``` -You should wrap `arg2` in a `parseFloat()` call. +Você deve envolver `arg2` em uma chamada de `parseFloat()`. ```js assert.match(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*str\.replace\(\s*regex\s*,\s*\(\s*_match\s*,\s*arg1\s*,\s*operator\s*,\s*arg2\s*\)\s*=>\s*infixToFunction\[\s*operator\s*\]\(\s*parseFloat\(\s*arg1\s*\)\s*,\s*parseFloat\(\s*arg2\s*\)\s*\)\s*\)/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3f718b5f8dc102cd528e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3f718b5f8dc102cd528e.md index 6dbdab54aeb..52f4bd2fcbd 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3f718b5f8dc102cd528e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3f718b5f8dc102cd528e.md @@ -7,41 +7,41 @@ dashedName: step-72 # --description-- -Now that you can evaluate mathematical expressions, you need to account for order of operations. Declare a `highPrecedence` function that takes a `str` parameter. +Agora que você consegue avaliar expressões matemáticas, precisa tratar da questão da ordem das operações. Declare uma função `highPrecedence`, que recebe um parâmetro `str`. # --hints-- -You should declare a `highPrecedence` variable. +Você deve declarar uma variável `highPrecedence`. ```js assert.match(code, /(?:var|let|const)\s+highPrecedence/); ``` -You should use `const` to declare your `highPrecedence` variable. +Você deve usar `const` para declarar a variável `highPrecedence`. ```js assert.match(code, /const\s+highPrecedence/); ``` -Your `highPrecedence` variable should be a function. +A variável `highPrecedence` deve ser uma função. ```js assert.isFunction(highPrecedence); ``` -Your `highPrecedence` function should use arrow syntax. +A função `highPrecedence` deve usar a sintaxe das arrow functions. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*(?:str)?\s*\)?\s*=>/); ``` -Your `highPrecedence` function should have a `str` parameter. +A função `highPrecedence` deve ter um parâmetro `str`. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>/); ``` -Your `highPrecedence` function should be empty. +A função `highPrecedence` deve estar vazia. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>\s*{\s*}/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d40c543943ec250039682.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d40c543943ec250039682.md index f9ec0295509..15f2bd2f3bd 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d40c543943ec250039682.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d40c543943ec250039682.md @@ -7,37 +7,37 @@ dashedName: step-74 # --description-- -Now that you have a regular expression to match multiplication or division, you can evaluate that expression. +Agora que você tem uma expressão regular para corresponder à multiplicação ou à divisão, você pode avaliar essa expressão. -Declare a `str2` variable and assign it the result of calling `infixEval` with `str` and `regex` as arguments. +Declare uma variável `str2` e atribua a ela o resultado da chamada de `infixEval`, com `str` e `regex` como argumentos. # --hints-- -You should declare a `str2` variable. +Você deve declarar uma variável `str2`. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>\s*{\s*const\s+regex\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\*\\\/|\\\/*)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*(?:const|let|var)\s+str2/); ``` -You should use `const` to declare your `str2` variable. +Você deve usar `const` para declarar a variável `str2`. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>\s*{\s*const\s+regex\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\*\\\/|\\\/*)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2/); ``` -You should assign `str2` the result of calling your `infixEval` function. +Você deve atribuir a `str2` o resultado da chamada da função `infixEval`. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>\s*{\s*const\s+regex\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\*\\\/|\\\/*)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(/); ``` -You should pass `str` as the first argument to your `infixEval` call. +Você deve passar `str` como o primeiro argumento para a chamada de `infixEval`. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>\s*{\s*const\s+regex\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\*\\\/|\\\/*)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*str/); ``` -You should pass `regex` as the second argument to your `infixEval` call. +Você deve passar `regex` como o segundo argumento para a chamada de `infixEval`. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>\s*{\s*const\s+regex\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\*\\\/|\\\/*)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*str\s*,\s*regex\s*\)/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d40fe4b7b50c30c2b4cd8.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d40fe4b7b50c30c2b4cd8.md index 2f34e86020d..5659a0cc27c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d40fe4b7b50c30c2b4cd8.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d40fe4b7b50c30c2b4cd8.md @@ -7,43 +7,43 @@ dashedName: step-75 # --description-- -Your `infixEval` function will only evaluate the first multiplication or division operation, because `regex` isn't global. This means you'll want to use a recursive approach to evaluate the entire string. +A função `infixEval` avaliará apenas a primeira operação de multiplicação ou de divisão, pois a `regex` não é global. Isso significa que você vai querer usar uma abordagem recursiva para avaliar a string inteira. -If `infixEval` does not find any matches, it will return the `str` value as-is. Using a ternary expression, check if `str2` is equal to `str`. If it is, return `str`, otherwise return the result of calling `highPrecedence()` on `str2`. +Se `infixEval` não encontrar nenhuma correspondência, ela retornará o valor `str` como está. Usando uma expressão de operador ternário, verifique se `str2` é igual a `str`. Se for, retorne `str`; caso contrário, retorne o resultado da chamada de `highPrecedence()` em `str2`. # --hints-- -Your `infixEval` function should use the `return` keyword. +A função `infixEval` deve usar a palavra-chave `return`. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>\s*{\s*const\s+regex\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\*\\\/|\\\/*)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*str\s*,\s*regex\s*\);?\s*return/); ``` -You should use the `return` keyword with a condition to check if `str` is equal to `str2`. +Você deve usar a palavra-chave `return` com uma condição para verificar se `str` é igual a `str2`. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>\s*{\s*const\s+regex\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\*\\\/|\\\/*)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*str\s*,\s*regex\s*\);?\s*return\s+(?:str\s*===\s*str2|str2\s*===\s*str)/); ``` -You should use ternary syntax with your `return` statement. +Você deve usar a sintaxe de operador ternário com a instrução `return`. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>\s*{\s*const\s+regex\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\*\\\/|\\\/*)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*str\s*,\s*regex\s*\);?\s*return\s+(?:str\s*===\s*str2|str2\s*===\s*str)\s*\?/); ``` -If the ternary condition is true, you should return `str`. +Se a condição ternária for verdadeira, você deve retornar `str`. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>\s*{\s*const\s+regex\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\*\\\/|\\\/*)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*str\s*,\s*regex\s*\);?\s*return\s+(?:str\s*===\s*str2|str2\s*===\s*str)\s*\?\s*str/); ``` -If the ternary condition is false, you should return the result of calling `highPrecedence()`. +Se a condição ternária for falsa, você deve retornar o resultado da chamada de `highPrecedence()`. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>\s*{\s*const\s+regex\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\*\\\/|\\\/*)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*str\s*,\s*regex\s*\);?\s*return\s+(?:str\s*===\s*str2|str2\s*===\s*str)\s*\?\s*str\s*:\s*highPrecedence\(/); ``` -You should pass `str2` to your `highPrecedence()` call. +Você deve passar `str2` como argumento para a chamada de `highPrecedence()`. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>\s*{\s*const\s+regex\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\*\\\/|\\\/*)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*str\s*,\s*regex\s*\);?\s*return\s+(?:str\s*===\s*str2|str2\s*===\s*str)\s*\?\s*str\s*:\s*highPrecedence\(\s*str2\s*\)/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d41e23b583fc3b8cc4579.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d41e23b583fc3b8cc4579.md index 0569a14b0fb..dde2780c0f2 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d41e23b583fc3b8cc4579.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d41e23b583fc3b8cc4579.md @@ -7,41 +7,41 @@ dashedName: step-76 # --description-- -Now you can start applying your function parsing logic to a string. Declare a function called `applyFunction`, which takes a `str` parameter. +Agora, você pode começar a aplicar sua lógica de análise de funções a uma string. Declare uma função chamada `applyFunction`, que receba um parâmetro `str`. # --hints-- -You should declare an `applyFunction` variable. +Você deve declarar uma variável `applyFunction`. ```js assert.match(code, /(?:var|let|const)\s+applyFunction\s*=/); ``` -You should use `const` to declare your `applyFunction` variable. +Você deve usar `const` para declarar uma variável `applyFunction`. ```js assert.match(code, /const\s+applyFunction\s*=/); ``` -Your `applyFunction` variable should be a function. +A variável `applyFunction` deve ser uma função. ```js assert.isFunction(applyFunction); ``` -Your `applyFunction` function should use arrow syntax. +A função `applyFunction` deve usar a sintaxe das arrow functions. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*(?:str)?\s*\)?\s*=>/); ``` -Your `applyFunction` function should have a `str` parameter. +A função `applyFunction` deve ter um parâmetro `str`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>/); ``` -Your `applyFunction` should be empty. +A função `applyFunction` deve estar vazia. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*\}/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d423fade4a9c4636acd13.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d423fade4a9c4636acd13.md index bf461b75ab3..c14609b9bd0 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d423fade4a9c4636acd13.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d423fade4a9c4636acd13.md @@ -7,29 +7,29 @@ dashedName: step-77 # --description-- -First you need to handle the higher precedence operators. Declare a `noHigh` variable, and assign it the result of calling `highPrecedence()` with `str` as an argument. +Primeiro você precisa lidar com os operadores de maior precedência. Declare uma variável `noHigh` e atribua a ela o resultado da chamada de `highPrecedence()`, com `str` como argumento. # --hints-- -You should declare a `noHigh` variable. +Você deve declarar uma variável `noHigh`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*(?:var|let|const)\s+noHigh\s*=/); ``` -You should use `const` to declare your `noHigh` variable. +Você deve usar `const` para declarar a variável `noHigh`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=/); ``` -You should assign `noHigh` the result of calling `highPrecedence()`. +Você deve atribuir `noHigh` o resultado da chamada de `highPrecedence()`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(/); ``` -You should pass `str` as the argument to your `highPrecedence()` call. +Você deve passar `str` como argumento para a chamada de `highPrecedence()`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\)/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d43587d926bc5b6cb2e50.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d43587d926bc5b6cb2e50.md index ab0b40603b3..a64dfa1539f 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d43587d926bc5b6cb2e50.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d43587d926bc5b6cb2e50.md @@ -7,35 +7,35 @@ dashedName: step-79 # --description-- -Declare a `str2` variable, and assign it the result of calling `infixEval()` with `noHigh` and `infix` as arguments. +Declare uma variável `str2` e atribua a ela o resultado da chamada de `infixEval()`, com `noHigh` e `infix` como argumentos. # --hints-- -You should declare a `str2` variable. +Você deve declarar uma variável `str2`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*(?:let|var|const)\s+str2/); ``` -You should use `const` to declare your `str2` variable. +Você deve usar `const` para declarar a variável `str2`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2/); ``` -You should assign `str2` the result of calling `infixEval()`. +Você deve atribuir a `str2` o resultado da chamada de `infixEval()`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(/); ``` -You should pass `noHigh` as the first argument to `infixEval()`. +Você deve passar `noHigh` como o primeiro argumento para `infixEval()`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh/); ``` -You should pass `infix` as the second argument to `infixEval()`. +Você deve passar `infix` como o segundo argumento para `infixEval()`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d44da986f2bc9b72f5fe2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d44da986f2bc9b72f5fe2.md index fc8ce7c911a..61fc01617ab 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d44da986f2bc9b72f5fe2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d44da986f2bc9b72f5fe2.md @@ -7,59 +7,59 @@ dashedName: step-81 # --description-- -Declare a `toNumberList` function which takes an `args` parameter, and returns the result of splitting the `args` by commas, and mapping the resulting array to `parseFloat`. +Declara uma função `toNumberList`, que recebe um parâmetro `args` e retorna o resultado da divisão dos `args` por vírgulas e mapeia o array resultante para `parseFloat`. # --hints-- -You should declare a `toNumberList` variable. +Você deve declarar uma variável `toNumberList`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*(?:const|let|var)\s+toNumberList\s*=/); ``` -You should use `const` to declare your `toNumberList` variable. +Você deve usar `const` para declarar a variável `toNumberList`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=/); ``` -Your `toNumberList` variable should be an arrow function. +A variável `toNumberList` deve ser uma arrow function. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*(?:args)?\s*\)?\s*=>/); ``` -Your `toNumberList` function should have an `args` parameter. +A função `toNumberList` deve ter um parâmetro `args`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>/); ``` -Your `toNumberList` function should use an implicit return. +A função `toNumberList` deve usar um retorno implícito. ```js assert.notMatch(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*\{/); ``` -Your `toNumberList` function should return the result of calling the `.split()` method of `args`. +A função `toNumberList` deve retornar o resultado da chamada do método `.split()` em `args`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(/); ``` -You should split `args` on the `,` character. +Você deve dividir `args` no caractere `,`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)/); ``` -You should chain the `.map()` method to the `.split()` method. +Você deve encadear o método `.map()` ao método `.split()`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(/); ``` -You should pass a reference to `parseFloat` as the callback to `.map()`. +Você deve passar uma referência a função `parseFloat` como a função de callback de `.map()`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4554721d43cb19a68bc4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4554721d43cb19a68bc4.md index 02b44f65552..75818dce84c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4554721d43cb19a68bc4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4554721d43cb19a68bc4.md @@ -7,31 +7,31 @@ dashedName: step-83 # --description-- -The `fn` parameter will be the name of a function, such as `SUM`. Update `apply` to implicitly return the function found at the `fn` property of your `spreadsheetFunctions` object. +O parâmetro `fn` será o nome de uma função, como `SUM`. Atualize `apply` para que retorne implicitamente a função encontrada na propriedade `fn` do objeto `spreadsheetFunctions`. -Remember that `fn` might not be lowercase, so you'll need to convert it to a lowercase string. +Lembre-se de que `fn` não pode estar em minúsculas, então você precisará convertê-lo em uma string em letras minúsculas. # --hints-- -Your `apply` function should use an implicit return. +A função `apply` deve usar um retorno implícito. ```js assert.notMatch(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*\{/); ``` -Your `apply` function should access the `spreadsheetFunctions` object. +A função `apply` deve acessar o objeto `spreadsheetFunctions`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions/); ``` -Your `apply` function should access the property of the `spreadsheetFunctions` object that matches the `fn` value. +A função `apply` deve acessar a propriedade do objeto `spreadsheetFunctions` que corresponda ao valor de `fn`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn/); ``` -Your `apply` function should call the `.toLowerCase()` method on `fn` in the property access. +A função `apply` deve chamar o método `.toLowerCase()` em `fn` no acesso à propriedade. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d45ee725632cca2555146.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d45ee725632cca2555146.md index cfcfa130dc5..fbcbc2ee852 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d45ee725632cca2555146.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d45ee725632cca2555146.md @@ -7,23 +7,23 @@ dashedName: step-85 # --description-- -Now your `applyFunction` needs to return a result. Return the result of calling the `.replace()` method on `str2`. Pass your `functionCall` regex and an empty callback. +Agora, `applyFunction` precisa retornar um resultado. Retorne o resultado da chamada do método `.replace()` em `str2`. Passe a regex `functionCall` e uma função de callback vazia. # --hints-- -Your `applyFunction` function should return the result of calling the `.replace()` method on `str2`. +A função `applyFunction` deve retornar o resultado da chamada do método `.replace()` em `str2`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(/); ``` -You should pass `functionCall` as the first argument to your `.replace()` call. +Você deve passar `functionCall` como o primeiro argumento para a chamada de `.replace()`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(\s*functionCall/); ``` -You should pass an empty arrow function as the second argument to your `.replace()` call. +Você deve passar uma arrow function vazia como segundo argumento para a chamada de `.replace()`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(\s*functionCall\s*,\s*\(\s*\)\s*=>\s*\{\s*\}/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4626420eeecd51f241c2.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4626420eeecd51f241c2.md index 4294cfcccd4..6ac380c4723 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4626420eeecd51f241c2.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4626420eeecd51f241c2.md @@ -7,49 +7,49 @@ dashedName: step-86 # --description-- -Update the callback function to take `match`, `fn`, and `args` as parameters. It should implicitly return the result of checking whether `spreadsheetFunctions` has its own property of `fn`. +Atualize a função de callback para receber `match`, `fn` e `args` como parâmetros. Ela deve retornar implicitamente o resultado da verificação se `spreadsheetFunctions` tem sua própria propriedade `fn`. -Remember to make `fn` lower case. +Lembre-se de deixar `fn` em minúsculas. # --hints-- -Your callback function should have `match` as the first parameter. +A função de callback deve ter `match` como o primeiro parâmetro. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(\s*functionCall\s*,\s*\(\s*match/); ``` -Your callback function should have `fn` as the second parameter. +A função de callback deve ter `fn` como o segundo parâmetro. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(\s*functionCall\s*,\s*\(\s*match\s*,\s*fn/); ``` -Your callback function should have `args` as the third parameter. +A função de callback deve ter `args` como o terceiro parâmetro. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(\s*functionCall\s*,\s*\(\s*match\s*,\s*fn\s*,\s*args\s*\)\s*=>/); ``` -Your callback function should use an implicit return. +A função de callback deve usar um retorno implícito. ```js assert.notMatch(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(\s*functionCall\s*,\s*\(\s*match\s*,\s*fn\s*,\s*args\s*\)\s*=>\s*\{/); ``` -Your callback function should return the result of calling the `.hasOwnProperty()` method on the `spreadsheetFunctions` object. +A função de callback deve retornar o resultado da chamada do método `.hasOwnProperty()` no objeto `spreadsheetFunctions`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(\s*functionCall\s*,\s*\(\s*match\s*,\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\.hasOwnProperty\(/); ``` -You should pass `fn` to the .`hasOwnProperty()` method. +Você deve passar `fn` para o método .`hasOwnProperty()`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(\s*functionCall\s*,\s*\(\s*match\s*,\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\.hasOwnProperty\(fn/); ``` -You should call the `.toLowerCase()` method on `fn`. +Você deve chamar o método `.toLowerCase()` em `fn`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(\s*functionCall\s*,\s*\(\s*match\s*,\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\.hasOwnProperty\(fn\.toLowerCase\(\s*\)\s*\)/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d467c6994f4ce0dc416a4.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d467c6994f4ce0dc416a4.md index 096444908d2..254c9b09b39 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d467c6994f4ce0dc416a4.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d467c6994f4ce0dc416a4.md @@ -7,35 +7,35 @@ dashedName: step-87 # --description-- -Use the ternary operator to turn your `.hasOwnProperty()` call into the condition. If the object has the property, return the result of calling `apply` with `fn` and `args` as arguments. Otherwise, return `match`. +Use o operador ternário para transformar a chamada de `.hasOwnProperty()` na condição. Se o objeto tiver a propriedade, retorne o resultado da chamada de `apply`, com `fn` e `args` como argumentos. Caso contrário, retorne `match`. # --hints-- -Your callback function should use ternary syntax. +A função de callback deve usar a sintaxe dos operadores ternários. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(\s*functionCall\s*,\s*\(\s*match\s*,\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\.hasOwnProperty\(fn\.toLowerCase\(\s*\)\s*\)\s*\?/); ``` -If the ternary condition is true, your callback function should return the result of calling `apply()`. +Se a condição ternária for verdadeira, a função de retorno de chamada deve retornar o resultado da chamada de `apply()`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(\s*functionCall\s*,\s*\(\s*match\s*,\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\.hasOwnProperty\(fn\.toLowerCase\(\s*\)\s*\)\s*\?\s*apply\(/); ``` -You should pass `fn` as the first argument to your `apply()` call. +Você deve passar `fn` como o primeiro argumento para a chamada de `apply()`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(\s*functionCall\s*,\s*\(\s*match\s*,\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\.hasOwnProperty\(fn\.toLowerCase\(\s*\)\s*\)\s*\?\s*apply\(\s*fn/); ``` -You should pass `args` as the second argument to your `apply()` call. +Você deve passar `args` como o segundo argumento para a chamada de `apply()`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(\s*functionCall\s*,\s*\(\s*match\s*,\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\.hasOwnProperty\(fn\.toLowerCase\(\s*\)\s*\)\s*\?\s*apply\(\s*fn\s*,\s*args\s*\)/); ``` -If the ternary is false, you should return `match`. +Se a condição ternária for falsa, você deve retornar `match`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(\s*functionCall\s*,\s*\(\s*match\s*,\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\.hasOwnProperty\(fn\.toLowerCase\(\s*\)\s*\)\s*\?\s*apply\(\s*fn\s*,\s*args\s*\)\s*:\s*match/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d46c03e7d02cecb30f021.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d46c03e7d02cecb30f021.md index d9d30a362a5..1cbf30e4a9a 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d46c03e7d02cecb30f021.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d46c03e7d02cecb30f021.md @@ -7,29 +7,29 @@ dashedName: step-88 # --description-- -Now you can start applying your function parser to your `evalFormula` logic. Declare a `functionExpanded` variable, and assign it the result of calling `applyFunction` with your `cellExpanded` string. +Agora, você pode começar a aplicar seu analisador de função para a lógica de `evalFormula`. Declare uma variável `functionExpanded` e atribua a ela o resultado da chamada de `applyFunction` com a string `cellExpanded`. # --hints-- -You should declare a `functionExpanded` variable. +Você deve declarar uma variável `functionExpanded`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*match\s*\)?\s*=>\s*idToText\(\s*match\.toUpperCase\(\)\s*\)\);?\s*(?:const|let|var)\s+functionExpanded\s*=\s*/); ``` -You should use `const` to declare your `functionExpanded` variable. +Você deve usar `const` para declarar a variável `functionExpanded`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*match\s*\)?\s*=>\s*idToText\(\s*match\.toUpperCase\(\)\s*\)\);?\s*const\s+functionExpanded\s*=\s*/); ``` -You should assign the `functionExpanded` variable the result of calling your `applyFunction` function. +Você deve atribuir à variável `functionExpanded` o resultado da chamada da função `applyFunction`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*match\s*\)?\s*=>\s*idToText\(\s*match\.toUpperCase\(\)\s*\)\);?\s*(?:const|let|var)\s+functionExpanded\s*=\s*applyFunction\(/); ``` -You should pass `cellExpanded` to your `applyFunction` call. +Você deve passar `cellExpanded` para a chamada de `applyFunction`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*match\s*\)?\s*=>\s*idToText\(\s*match\.toUpperCase\(\)\s*\)\);?\s*(?:const|let|var)\s+functionExpanded\s*=\s*applyFunction\(\s*cellExpanded\s*\);?/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4717a689e1cfa232e357.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4717a689e1cfa232e357.md index 8cc649f649e..741c31b6b22 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4717a689e1cfa232e357.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4717a689e1cfa232e357.md @@ -7,49 +7,49 @@ dashedName: step-89 # --description-- -Like you did with your `highPrecedence()` function, your `evalFormula()` function needs to ensure it has evaluated and replaced everything. +Assim como você fez com a função `highPrecedence()`, a função `evalFormula()` precisa garantir que tudo tenha sido avaliado e substituído. -Use a ternary to check if `functionExpanded` is equal to the original string `x`. If it is, return `functionExpanded`, otherwise return the result of calling `evalFormula()` again with `functionExpanded` and `cells` as arguments. +Use um operador ternário para verificar se `functionExpanded` é igual à string original `x`. Se for, retorne `functionExpanded`. Caso contrário, retorne o resultado da chamada de `evalFormula()` novamente, com `functionExpanded` e `cells` como argumentos. # --hints-- -Your `evalFormula` function should use the `return` keyword. +A função `evalFormula` deve usar a palavra-chave `return`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*match\s*\)?\s*=>\s*idToText\(\s*match\.toUpperCase\(\)\s*\)\);?\s*(?:const|let|var)\s+functionExpanded\s*=\s*applyFunction\(\s*cellExpanded\s*\);?\s*return/); ``` -Your `return` statement should check if `functionExpanded` is equal to `x`. +A instrução `return` deve verificar se `functionExpanded` é igual a `x`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*match\s*\)?\s*=>\s*idToText\(\s*match\.toUpperCase\(\)\s*\)\);?\s*(?:const|let|var)\s+functionExpanded\s*=\s*applyFunction\(\s*cellExpanded\s*\);?\s*return\s*(?:functionExpanded\s*===\s*x|x\s*===\s*functionExpanded)/); ``` -Your `return` statement should use a ternary operator. +A instrução `return` deve usar um operador ternário. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*match\s*\)?\s*=>\s*idToText\(\s*match\.toUpperCase\(\)\s*\)\);?\s*(?:const|let|var)\s+functionExpanded\s*=\s*applyFunction\(\s*cellExpanded\s*\);?\s*return\s*(?:functionExpanded\s*===\s*x|x\s*===\s*functionExpanded)\s*\?/); ``` -If the ternary condition is true, your `evalFormula()` should return `functionExpanded`. +Se a condição ternária for verdadeira, `evalFormula()` deve retornar `functionExpanded`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*match\s*\)?\s*=>\s*idToText\(\s*match\.toUpperCase\(\)\s*\)\);?\s*(?:const|let|var)\s+functionExpanded\s*=\s*applyFunction\(\s*cellExpanded\s*\);?\s*return\s*(?:functionExpanded\s*===\s*x|x\s*===\s*functionExpanded)\s*\?\s*functionExpanded/); ``` -If the ternary condition is false, your `evalFormula()` should return the result of calling `evalFormula()`. +Se a condição ternária for falsa, `evalFormula()` deve retornar o resultado da chamada de `evalFormula()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*match\s*\)?\s*=>\s*idToText\(\s*match\.toUpperCase\(\)\s*\)\);?\s*(?:const|let|var)\s+functionExpanded\s*=\s*applyFunction\(\s*cellExpanded\s*\);?\s*return\s*(?:functionExpanded\s*===\s*x|x\s*===\s*functionExpanded)\s*\?\s*functionExpanded\s*:\s*evalFormula\(/); ``` -You should pass `functionExpanded` as the first argument to your `evalFormula()` call. +Você deve passar `functionExpanded` como o primeiro argumento para a chamada de `evalFormula()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*match\s*\)?\s*=>\s*idToText\(\s*match\.toUpperCase\(\)\s*\)\);?\s*(?:const|let|var)\s+functionExpanded\s*=\s*applyFunction\(\s*cellExpanded\s*\);?\s*return\s*(?:functionExpanded\s*===\s*x|x\s*===\s*functionExpanded)\s*\?\s*functionExpanded\s*:\s*evalFormula\(\s*functionExpanded/); ``` -You should pass `cells` as the second argument to your `evalFormula()` call. +Você deve passar `cells` como o segundi argumento para a chamada de `evalFormula()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*match\s*\)?\s*=>\s*idToText\(\s*match\.toUpperCase\(\)\s*\)\);?\s*(?:const|let|var)\s+functionExpanded\s*=\s*applyFunction\(\s*cellExpanded\s*\);?\s*return\s*(?:functionExpanded\s*===\s*x|x\s*===\s*functionExpanded)\s*\?\s*functionExpanded\s*:\s*evalFormula\(\s*functionExpanded\s*,\s*cells\s*\);?/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d47c8f58107d10f1e5106.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d47c8f58107d10f1e5106.md index 0615238d7a0..d4fca4cd1ea 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d47c8f58107d10f1e5106.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d47c8f58107d10f1e5106.md @@ -7,23 +7,23 @@ dashedName: step-91 # --description-- -The first argument for your `evalFormula` call needs to be the contents of the cell (which you stored in `value`). However, the contents start with an `=` character to trigger the function, so you need to pass the substring of `value` starting at index `1`. +O primeiro argumento para a chamada de `evalFormula` precisa ser o conteúdo da célula (que você armazenou em `value`). No entanto, o conteúdo inicia com um caractere `=` para acionar a função. Então, você precisa passar a substring do valor `value` começando no índice `1`. # --hints-- -You should pass `value` as the first argument to your `evalFormula()` call. +Você deve passar `value` como o primeiro argumento para a chamada de `evalFormula()`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value\s*=\s*element\.value\.replace\(\s*\/\\s\/g\s*,\s*('|"|`)\1\s*\);?\s*if\s*\(\s*(!value\.includes\(\s*element\.id\s*\)\s*&&\s*(?:value\[0\]\s*===\s*('|"|`)=\3|value\.charAt\(0\)\s*===\s*('|"|`)=\4|value\.startsWith\(('|"|`)=\5\))|(?:value\[0\]\s*===\s*('|"|`)=\6|value\.charAt\(0\)\s*===\s*('|"|`)=\7|value\.startsWith\(('|"|`)=\8\))\s*\|\|\s*!value\.includes\(\s*element\.id\s*\))\s*\)\s*\{\s*element\.value\s*=\s*evalFormula\(\s*value/); ``` -You should call the `.slice()` method on the `value` argument. +Você deve chamar o método `.slice()` no argumento `value`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value\s*=\s*element\.value\.replace\(\s*\/\\s\/g\s*,\s*('|"|`)\1\s*\);?\s*if\s*\(\s*(!value\.includes\(\s*element\.id\s*\)\s*&&\s*(?:value\[0\]\s*===\s*('|"|`)=\3|value\.charAt\(0\)\s*===\s*('|"|`)=\4|value\.startsWith\(('|"|`)=\5\))|(?:value\[0\]\s*===\s*('|"|`)=\6|value\.charAt\(0\)\s*===\s*('|"|`)=\7|value\.startsWith\(('|"|`)=\8\))\s*\|\|\s*!value\.includes\(\s*element\.id\s*\))\s*\)\s*\{\s*element\.value\s*=\s*evalFormula\(\s*value\.slice\(/); ``` -You should pass the number `1` as the argument to your `.slice()` call. +Você deve passar o número `1` como argumento para a chamada de `.slice()`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value\s*=\s*element\.value\.replace\(\s*\/\\s\/g\s*,\s*('|"|`)\1\s*\);?\s*if\s*\(\s*(!value\.includes\(\s*element\.id\s*\)\s*&&\s*(?:value\[0\]\s*===\s*('|"|`)=\3|value\.charAt\(0\)\s*===\s*('|"|`)=\4|value\.startsWith\(('|"|`)=\5\))|(?:value\[0\]\s*===\s*('|"|`)=\6|value\.charAt\(0\)\s*===\s*('|"|`)=\7|value\.startsWith\(('|"|`)=\8\))\s*\|\|\s*!value\.includes\(\s*element\.id\s*\))\s*\)\s*\{\s*element\.value\s*=\s*evalFormula\(\s*value\.slice\(\s*1\s*\)\s*\);?/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4813c17b37d1e261a566.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4813c17b37d1e261a566.md index 82e84159463..24858362ffb 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4813c17b37d1e261a566.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4813c17b37d1e261a566.md @@ -7,23 +7,23 @@ dashedName: step-92 # --description-- -You can quickly get all cells from your page by getting the `#container` element by it's `id` and accessing the `children` property of the result. Pass that to your `evalFormula()` call as the second parameter. +Você pode obter rapidamente todas as células da página pelo `id` do elemento `#container` e acessando a propriedade `children` do resultado. Passe isso para a chamada de `evalFormula()` como o segundo parâmetro. # --hints-- -For the second parameter of your `evalFormula()` call, you should call the `.getElementById()` method of the `document` object. +Para o segundo parâmetro da chamada de `evalFormula()`, você deve chamar o método `.getElementById()` do objeto `document`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value\s*=\s*element\.value\.replace\(\s*\/\\s\/g\s*,\s*('|"|`)\1\s*\);?\s*if\s*\(\s*(!value\.includes\(\s*element\.id\s*\)\s*&&\s*(?:value\[0\]\s*===\s*('|"|`)=\3|value\.charAt\(0\)\s*===\s*('|"|`)=\4|value\.startsWith\(('|"|`)=\5\))|(?:value\[0\]\s*===\s*('|"|`)=\6|value\.charAt\(0\)\s*===\s*('|"|`)=\7|value\.startsWith\(('|"|`)=\8\))\s*\|\|\s*!value\.includes\(\s*element\.id\s*\))\s*\)\s*\{\s*element\.value\s*=\s*evalFormula\(\s*value\.slice\(\s*1\s*\)\s*,\s*document\.getElementById\(/); ``` -You should pass `container` as the argument to your `.getElementById()` call. +Você deve passar `container` como argumento para a chamada de `.getElementById()`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value\s*=\s*element\.value\.replace\(\s*\/\\s\/g\s*,\s*('|"|`)\1\s*\);?\s*if\s*\(\s*(!value\.includes\(\s*element\.id\s*\)\s*&&\s*(?:value\[0\]\s*===\s*('|"|`)=\3|value\.charAt\(0\)\s*===\s*('|"|`)=\4|value\.startsWith\(('|"|`)=\5\))|(?:value\[0\]\s*===\s*('|"|`)=\6|value\.charAt\(0\)\s*===\s*('|"|`)=\7|value\.startsWith\(('|"|`)=\8\))\s*\|\|\s*!value\.includes\(\s*element\.id\s*\))\s*\)\s*\{\s*element\.value\s*=\s*evalFormula\(\s*value\.slice\(\s*1\s*\)\s*,\s*document\.getElementById\(\s*('|"|`)container\9\s*\)/); ``` -You should access the `children` property of the result of your `.getElementById()` call. +Você deve acessar a propriedade `children` do resultado da chamada de `.getElementById()`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value\s*=\s*element\.value\.replace\(\s*\/\\s\/g\s*,\s*('|"|`)\1\s*\);?\s*if\s*\(\s*(!value\.includes\(\s*element\.id\s*\)\s*&&\s*(?:value\[0\]\s*===\s*('|"|`)=\3|value\.charAt\(0\)\s*===\s*('|"|`)=\4|value\.startsWith\(('|"|`)=\5\))|(?:value\[0\]\s*===\s*('|"|`)=\6|value\.charAt\(0\)\s*===\s*('|"|`)=\7|value\.startsWith\(('|"|`)=\8\))\s*\|\|\s*!value\.includes\(\s*element\.id\s*\))\s*\)\s*\{\s*element\.value\s*=\s*evalFormula\(\s*value\.slice\(\s*1\s*\)\s*,\s*document\.getElementById\(\s*('|"|`)container\9\s*\)\.children\s*\);?/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d486aec20f7d2a581cc36.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d486aec20f7d2a581cc36.md index eec2330fbc4..7014855777c 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d486aec20f7d2a581cc36.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d486aec20f7d2a581cc36.md @@ -7,11 +7,11 @@ dashedName: step-93 # --description-- -Unfortunately, that `children` property is returning a collection of elements, which is array-like but not an array. Wrap your second argument in `Array.from()` to convert it to an array. +Infelizmente, a propriedade `children` está retornando uma coleção de elementos que são semelhantes a arrays, mas não são arrays. Envolva o segundo argumento em `Array.from()` para convertê-lo em um array. # --hints-- -You should wrap your `document.getElementById('container').children` in `Array.from()`. +Você deve envolver `document.getElementById('container').children` in `Array.from()`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value\s*=\s*element\.value\.replace\(\s*\/\\s\/g\s*,\s*('|"|`)\1\s*\);?\s*if\s*\(\s*(!value\.includes\(\s*element\.id\s*\)\s*&&\s*(?:value\[0\]\s*===\s*('|"|`)=\3|value\.charAt\(0\)\s*===\s*('|"|`)=\4|value\.startsWith\(('|"|`)=\5\))|(?:value\[0\]\s*===\s*('|"|`)=\6|value\.charAt\(0\)\s*===\s*('|"|`)=\7|value\.startsWith\(('|"|`)=\8\))\s*\|\|\s*!value\.includes\(\s*element\.id\s*\))\s*\)\s*\{\s*element\.value\s*=\s*evalFormula\(\s*value\.slice\(\s*1\s*\)\s*,\s*Array\.from\(\s*document\.getElementById\(\s*('|"|`)container\9\s*\)\.children\s*\)\s*\);?/); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d48b936802fd34c3f05af.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d48b936802fd34c3f05af.md index 94af4cc1363..e2a21f55b3d 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d48b936802fd34c3f05af.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d48b936802fd34c3f05af.md @@ -7,49 +7,49 @@ dashedName: step-94 # --description-- -Your spreadsheet is now functional. However, you don't have support for very many formulas. +A planilha está funcionando agora. No entanto, você não tem suporte para muitas fórmulas. -Add an `even` property to your `spreadsheetFunctions`. It should take a `nums` parameter, and return the result of filtering the `nums` array to only include even numbers. Use a reference to your `isEven` function to help. +Adicione uma propriedade `even` a `spreadsheetFunctions`. Ela deve levar um parâmetro `nums` e retornar o resultado da filtragem do array `nums` para incluir apenas números pares. Use uma referência para a função `isEven` para ajudar. # --hints-- -Your `spreadsheetFunctions` object should have an `even` property. +O objeto `spreadsheetFunctions` deve ter uma propriedade `even`. ```js assert.property(spreadsheetFunctions, "even"); ``` -Your `even` property should be a function. +A propriedade `even` deve ser uma função. ```js assert.isFunction(spreadsheetFunctions.even); ``` -Your `even` function should take a `nums` parameter. +A função `even` deve ter um parâmetro `nums`. ```js assert.match(code, /even\s*:\s*\(?\s*nums\s*\)?\s*=>/) ``` -Your `even` function should use an implicit return. +A função `even` deve usar um retorno implícito. ```js assert.notMatch(code, /even\s*:\s*\(?\s*nums\s*\)?\s*=>\s*\{/) ``` -Your `even` function should return the result of calling the `.filter()` method on `nums`. +A função `even` deve retornar o resultado da chamada do método `.filter()` em `nums`. ```js assert.match(code, /even\s*:\s*\(?\s*nums\s*\)?\s*=>\s*nums\s*\.\s*filter/) ``` -You should pass a reference to your `isEven()` function as the callback for the `.filter()` method. +Você deve passar uma referência à função `isEven()` como a função de callback para o método `.filter()`. ```js assert.match(code, /even\s*:\s*\(?\s*nums\s*\)?\s*=>\s*nums\s*\.\s*filter\s*\(\s*isEven\s*\)/) ``` -Your `even` function should return an array of even numbers. +A função `even` deve retornar um array de números pares. ```js assert.deepEqual(spreadsheetFunctions.even([1, 2, 3, 4, 5, 6]), [2, 4, 6]); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d498c8ebc31d3f753b22e.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d498c8ebc31d3f753b22e.md index b8adcb17d23..89cd01743aa 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d498c8ebc31d3f753b22e.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d498c8ebc31d3f753b22e.md @@ -7,41 +7,41 @@ dashedName: step-95 # --description-- -Add a `firsttwo` property which takes a `nums` parameter and returns the first two elements of the `nums` array. Then add a `lasttwo` property which returns the last two elements of the `nums` array. +Adicione uma propriedade `firsttwo`, que recebe um parâmetro `nums` e retorna os dois primeiros elementos do array `nums`. Em seguida, adicione uma propriedade `lasttwo`, que retorne os dois últimos elementos do array `nums`. # --hints-- -Your `spreadsheetFunctions` object should have a `firsttwo` property. +O objeto `spreadsheetFunctions` deve ter uma propriedade `firsttwo`. ```js assert.property(spreadsheetFunctions, "firsttwo"); ``` -Your `firsttwo` property should be a function. +A propriedade `firsttwo` deve ser uma função. ```js assert.isFunction(spreadsheetFunctions.firsttwo); ``` -Your `firsttwo` function should return the first two numbers of the array. +A função `firsttwo` deve retornar os dois primeiros números do array. ```js assert.deepEqual(spreadsheetFunctions.firsttwo([1, 2, 3, 4, 5, 6]), [1, 2]); ``` -Your `spreadsheetFunctions` object should have a `lasttwo` property. +O objeto `spreadsheetFunctions` deve ter uma propriedade `lasttwo`. ```js assert.property(spreadsheetFunctions, "lasttwo"); ``` -Your `lasttwo` property should be a function. +A propriedade `lasttwo` deve ser uma função. ```js assert.isFunction(spreadsheetFunctions.lasttwo); ``` -Your `lasttwo` function should return the last two numbers of the array. +A função `lasttwo` deve retornar os dois últimos números do array. ```js assert.deepEqual(spreadsheetFunctions.lasttwo([1, 2, 3, 4, 5, 6]), [5, 6]); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d49bfff9079d4b38df115.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d49bfff9079d4b38df115.md index a7adae4b5ef..dfcdb001520 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d49bfff9079d4b38df115.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d49bfff9079d4b38df115.md @@ -7,47 +7,47 @@ dashedName: step-96 # --description-- -Add a `has2` property which returns whether the `nums` array has `2` in the values, and an `increment` property which returns `nums` with every value incremented by one. +Adicione uma propriedade `has2`, que retorna se o array `nums` tem `2` nos valores, bem como uma propriedade `increment`, que retorna `nums` com cada valor incrementado por um. # --hints-- -Your `spreadsheetFunctions` object should have a `has2` property. +O objeto `spreadsheetFunctions` deve ter uma propriedade `has2`. ```js assert.property(spreadsheetFunctions, "has2"); ``` -Your `has2` property should be a function. +A propriedade `has2` deve ser uma função. ```js assert.isFunction(spreadsheetFunctions.has2); ``` -Your `has2` function should return `true` if the array has `2` in it. +A função `has2` deve retornar `true` se o array tiver `2` contido nele. ```js assert.isTrue(spreadsheetFunctions.has2([1, 2, 3])); ``` -Your `has2` function should return `false` if the array does not have `2` in it. +A função `has2` deve retornar `false` se o array não tiver `2` contido nele. ```js assert.isFalse(spreadsheetFunctions.has2([1, 3, 4])); ``` -Your `spreadsheetFunctions` object should have an `increment` property. +O objeto `spreadsheetFunctions` deve ter uma propriedade `increment`. ```js assert.property(spreadsheetFunctions, "increment"); ``` -Your `increment` property should be a function. +A propriedade `increment` deve ser uma função. ```js assert.isFunction(spreadsheetFunctions.increment); ``` -Your `increment` function should return an array of numbers incremented by one. +A função `increment` deve retornar um array de números incrementados em um (número + 1). ```js assert.deepEqual(spreadsheetFunctions.increment([1, 2, 3]), [2, 3, 4]); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4ab9b3b4c5d74fdd2154.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4ab9b3b4c5d74fdd2154.md index a222ccffb37..958a6e8bce4 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4ab9b3b4c5d74fdd2154.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4ab9b3b4c5d74fdd2154.md @@ -7,25 +7,25 @@ dashedName: step-101 # --description-- -The last function has a few approaches to implement, and you are free to choose whichever approach you would like. +A última função tem algumas abordagens a serem implementadas. Você pode escolher a abordagem que desejar. -Add a `nodupes` property which returns `nums` with all duplicate values removed. For example, `[2, 1, 2, 5, 3, 2, 7]` should return `[2, 1, 5, 3, 7]`. +Adicione uma propriedade `nodupes`, que retorna `nums` com todos os valores duplicados removidos. Por exemplo, `[2, 1, 2, 5, 3, 2, 7]` deve retornar `[2, 1, 5, 3, 7]`. # --hints-- -Your `spreadsheetFunctions` object should have a `nodupes` property. +O objeto `spreadsheetFunctions` deve ter uma propriedade `nodupes`. ```js assert.property(spreadsheetFunctions, "nodupes"); ``` -Your `nodupes` property should be a function. +A propriedade `nodupes` deve ser uma função. ```js assert.isFunction(spreadsheetFunctions.nodupes); ``` -Your `nodupes` function should remove all duplicate values from the array. +A função `nodupes` deve remover todos os valores duplicados do array. ```js assert.deepEqual(spreadsheetFunctions.nodupes([2, 1, 2, 5, 3, 2, 7]), [2, 1, 5, 3, 7]); diff --git a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6491d38f5b09a021c4b5d5fe.md b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6491d38f5b09a021c4b5d5fe.md index 3597c0d1b1c..d58e2a04475 100644 --- a/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6491d38f5b09a021c4b5d5fe.md +++ b/curriculum/challenges/portuguese/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6491d38f5b09a021c4b5d5fe.md @@ -7,38 +7,38 @@ dashedName: step-98 # --description-- -Arrays have an `.every()` method. Like the `.some()` method, `.every()` accepts a callback function which should take an element of the array as the argument. The `.every()` method will return `true` if the callback function returns `true` for all elements in the array. +Arrays têm um método `.every()`. Como o método `.some()`, `.every()` aceita uma função de callback que deve receber um elemento do array como argumento. O método `.every()` retornará `true` se a função de callback retornar `true` para todos os elementos do array. -Here is an example of a `.every()` method call to check if all elements in the array are uppercase letters. +Aqui está um exemplo de uma chamada do método `.every()` para verificar se todos os elementos do array estão em letras maiúsculas. ```js const arr = ["A", "b", "C"]; arr.every(letter => letter === letter.toUpperCase()); ``` -Add an `everyeven` property to your `spreadsheetFunctions` - use the `.every()` method to check if any element in the array is even. +Adicione uma propriedade `everyeven` a `spreadsheetFunctions` – use o método `.every()` para verificar se algum elemento do array é par. # --hints-- -Your `spreadsheetFunctions` object should have an `everyeven` property. +O objeto `spreadsheetFunctions` deve ter uma propriedade `everyeven`. ```js assert.property(spreadsheetFunctions, "everyeven"); ``` -Your `everyeven` property should be a function. +A propriedade `everyeven` deve ser uma função. ```js assert.isFunction(spreadsheetFunctions.everyeven); ``` -Your `everyeven` function should return `true` if every element in the array is even. +A função `everyeven` deve retornar `true` se todos os elementos do array forem pares. ```js assert.isTrue(spreadsheetFunctions.everyeven([2, 4, 6])); ``` -Your `everyeven` function should return `false` if some of the elements in the array are not even. +A função `everyeven` deve retornar `false` se alguns dos elementos do array não forem pares. ```js assert.isFalse(spreadsheetFunctions.everyeven([1, 2, 3])); diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/613e275749ebd008e74bb62e.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/613e275749ebd008e74bb62e.md index ca4b2705559..cc549ce5a26 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/613e275749ebd008e74bb62e.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/613e275749ebd008e74bb62e.md @@ -9,7 +9,7 @@ dashedName: step-8 Sifa muhimu ya _SVG_ (scalable vector graphics) ni kwamba ina sifa ya `path` ambayo inaruhusu picha kuongezwa bila kuathiri matokeo yake. -Kwa sasa, `img` inachukua ukubwa wake wa chaguomsingi, ambao ni mkubwa sana. CSS has a `max` function which returns the largest of a set of comma-separated values. For example: +Kwa sasa, `img` inachukua ukubwa wake wa chaguomsingi, ambao ni mkubwa sana. CSS ina kitendakazi cha `max` ambacho hurejesha kubwa zaidi ya seti ya thamani zilizotenganishwa kwa koma. Kwa mfano: ```css img { @@ -17,19 +17,19 @@ img { } ``` -In this example, `img` elements will have a minimum width of `250px`. And as the viewport grows, the image will grow accordingly to be 25 percent of the viewport width. +Katika mfano huu, vipengele vya `img` vitakuwa na upana wa chini wa `250px`. Na kadiri eneo la kutazama linavyokua, picha itakua ipasavyo na kuwa asilimia 25 ya upana wa kituo cha kutazama. -Scale the image using its `id` as a selector, and setting the `width` to to be the maximum of `100px` or `18vw`. +Pima picha kwa kutumia kichaguzi cha `id` na uweke `width` kuwa upeo wa `100px` au `18vw`. # --hints-- -You should use the `#logo` selector to target the `img` element. +Unapaswa kutumia kichaguzi cha `#logo` ili kulenga kipengele cha `img`. ```js assert.exists(new __helpers.CSSHelp(document).getStyle('#logo')); ``` -You should give the `img` a `width` of `max(100px, 18vw)`. +Unapaswa kuipa `img` `width` ya `max(100px, 18vw)`. ```js assert.equal(new __helpers.CSSHelp(document).getStyle('#logo')?.width, 'max(100px, 18vw)'); diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614090d5a22b6f0a5a6b464c.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614090d5a22b6f0a5a6b464c.md index 09c99d7381f..1c130e41fe0 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614090d5a22b6f0a5a6b464c.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614090d5a22b6f0a5a6b464c.md @@ -9,7 +9,7 @@ dashedName: step-13 # --description-- -Use the `>` selector to target the unordered list elements within the `nav` elements, and use _Flexbox_ to evenly space the children. +Tumia kichaguzi cha `>` kulenga vipengele vya orodha ambavyo havijapangwa ndani ya vipengele vya `nav`, na utumie _Flexbox_ kusawazisha nafasi kwa watoto. # --hints-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f02240ff8f09f7ec913c.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f02240ff8f09f7ec913c.md index 5758a7f4ce2..98627ddd443 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f02240ff8f09f7ec913c.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f02240ff8f09f7ec913c.md @@ -7,7 +7,7 @@ dashedName: step-36 # --description-- -Within the `div.question-block` elements, nest one `label` element, and add a `CSS` related question to the `label` text. +Ndani ya vipengele vya `div.question-block`, weka kipengele cha `label` kimoja, na uongeze swali linalohusiana na `CSS` kwenye maandishi ya `label`. # --hints-- diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f8f8bcd4370f6509078e.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f8f8bcd4370f6509078e.md index c1e0a6c9d41..551918085c2 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f8f8bcd4370f6509078e.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f8f8bcd4370f6509078e.md @@ -16,11 +16,11 @@ California
USA ``` -The `br` tags will allow each part of the address to be on its own line and are useful for presenting `address` elements properly. +Tagi za `br` zitaruhusu kila sehemu ya anwani kuwa kwenye mstari wake na ni muhimu kwa kuwasilisha vipengele vya `address` ipasavyo. # --hints-- -You should add the above text including the `
` tags to the `address` element. +Unapaswa kuongeza maandishi yaliyo hapo juu ikijumuisha tagi za `
` kwenye kipengele cha `address`. ```js assert.equal(document.querySelector('address')?.innerText, 'freeCodeCamp\nSan Francisco\nCalifornia\nUSA'); diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98fe.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98fe.md index 7f3b1140ca6..91f58ba16b6 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98fe.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98fe.md @@ -7,7 +7,7 @@ dashedName: step-54 # --description-- -Create and add the following properties to `.bb2a`: +Unda na uongeze sifa zifuatazo kwa `.bb2a`: ```css margin: auto; diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e9.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e9.md index 186d4ed414c..329284b9d1f 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e9.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e9.md @@ -7,11 +7,11 @@ dashedName: step-64 # --description-- -Turn the existing `freeCodeCamp.org` text into a link by enclosing it in an anchor (`a`) element. Sifa ya `href` inapaswa kuwekwa kuwa `https://www.freecodecamp.org`. +Geuza maandishi ya yaliyopo ya `freeCodeCamp.org` kuwa kiungo kwa kuifunga katika kipengele cha nanga (`a`). Sifa ya `href` inapaswa kuwekwa kuwa `https://www.freecodecamp.org`. # --hints-- -Your anchor (`a`) element should be nested within the `p` element inside the `footer`. Hakikisha umeongeza tagi ya ufunguzi na tagi ya kufunga kwa kipengele cha `a`. +Kipengele chako cha nanga (`a`) kinafaa kuwekwa ndani ya kipengele cha `p` ndani ya `footer`. Hakikisha umeongeza tagi ya ufunguzi na tagi ya kufunga kwa kipengele cha `a`. ```js assert($('footer > p > a').length); diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd7a160ed17960e971f28b.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd7a160ed17960e971f28b.md index f137af3e153..ba845734e7c 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd7a160ed17960e971f28b.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd7a160ed17960e971f28b.md @@ -61,7 +61,7 @@ Kipengele chako cha tatu cha `td` kinapaswa kuwa na maandishi `$809`. assert(document.querySelector('tbody')?.querySelectorAll('tr')?.[3]?.querySelectorAll('td')?.[2]?.textContent === '$809'); ``` -Your third `td` element should have the `class` attribute set to `current`. +Kipengele chako cha tatu cha `td` kinapaswa kuwa na sifa ya `class` iliyowekwa kuwa `current`. ```js assert(document.querySelector('tbody')?.querySelectorAll('tr')?.[3]?.querySelectorAll('td')?.[2]?.classList?.contains('current')); diff --git a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612eaf56b7ba3257fdbfb0db.md b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612eaf56b7ba3257fdbfb0db.md index 780ba864349..d33838f811d 100644 --- a/curriculum/challenges/swahili/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612eaf56b7ba3257fdbfb0db.md +++ b/curriculum/challenges/swahili/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612eaf56b7ba3257fdbfb0db.md @@ -19,7 +19,7 @@ Unapaswa kuongeza kipengele kipya cha `img`. assert(document.querySelectorAll('img')?.length === 1); ``` -Your `img` element should come before your first `.keys` element. +Kipengele chako cha `img` kinafaa kuja kabla ya kipengee chako cha kwanza cha `.keys`. ```js const img = document.querySelector('img'); diff --git a/curriculum/challenges/ukrainian/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/palindrome-checker.md b/curriculum/challenges/ukrainian/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/palindrome-checker.md index bff90cb10c5..13e9b5170c2 100644 --- a/curriculum/challenges/ukrainian/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/palindrome-checker.md +++ b/curriculum/challenges/ukrainian/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/palindrome-checker.md @@ -12,7 +12,7 @@ dashedName: palindrome-checker Паліндром — це слово чи речення, що однаково пишеться в обох напрямках (зліва направо та справа наліво), незважаючи на розділові знаки, велику/малу літеру чи пробіли. -**Примітка:** вам потрібно прибрати **всі неалфавітні символи** (розділові знаки, пробіли та символи) і написати весь текст одинаково (великими або малими літерами) для перевірки паліндромів. +**Примітка:** вам потрібно прибрати всі символи, що **не є абетко-цифровими** (розділові знаки, пробіли та символи) і написати весь текст одинаково (великими або малими літерами) для перевірки паліндромів. Ми будемо передавати рядки з різними форматами, наприклад `racecar`, `RaceCar` та `race CAR` серед інших. diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642db8c409d9991d0b3b2f0d.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642db8c409d9991d0b3b2f0d.md index 3ca57fbf522..6107dc4a24c 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642db8c409d9991d0b3b2f0d.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642db8c409d9991d0b3b2f0d.md @@ -1,6 +1,6 @@ --- id: 642db8c409d9991d0b3b2f0d -title: Step 1 +title: Крок 1 challengeType: 0 dashedName: step-1 --- @@ -15,7 +15,7 @@ Start by setting the `onload` property of `window` to an arrow function with no # --hints-- -You should access the `onload` property of the `window` object. +Отримайте доступ до властивості `onload` об’єкта `window`. ```js assert.match(code, /window\.onload/); @@ -39,13 +39,13 @@ Your `onload` function should not take any parameters. assert.match(code, /window\.onload\s*=\s*\(\s*\)/); ``` -You should declare a `container` variable in your `onload` function. +Ви повинні оголосити змінну `container` у функції `onload`. ```js assert.match(code, /window\.onload\s*=\s*\(\s*\)\s*=>\s*\{\s*(?:let|var|const)\s+container/); ``` -Your `container` variable should be declared with `const`. +Оголосіть змінну `container` за допомогою `const`. ```js assert.match(code, /window\.onload\s*=\s*\(\s*\)\s*=>\s*\{\s*const\s+container/); @@ -63,7 +63,7 @@ You should get the element with the `id` of `container`. assert.match(code, /document\.getElementById\(\s*('|"|`)container\1\s*\)/); ``` -You should assign the `#container` element to `container`. +Ви повинні присвоїти елемент `#container` до `container`. ```js assert.match(code, /window\.onload\s*=\s*\(\s*\)\s*=>\s*\{\s*const\s+container\s*=\s*document\.getElementById\(\s*('|"|`)container\1\s*\)/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642dccb78549c9285835ebc2.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642dccb78549c9285835ebc2.md index d7095d5ca8a..28a27494cc9 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642dccb78549c9285835ebc2.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642dccb78549c9285835ebc2.md @@ -1,6 +1,6 @@ --- id: 642dccb78549c9285835ebc2 -title: Step 2 +title: Крок 2 challengeType: 0 dashedName: step-2 --- @@ -17,41 +17,41 @@ const outer = () => { }; ``` -Declare a nested `createLabel` function using arrow syntax. It should take a `name` parameter. +Оголосіть вкладену функцію `createLabel`, використовуючи стрілковий синтаксис. It should take a `name` parameter. # --hints-- -You should declare a `createLabel` variable in your `onload` function. +Ви повинні оголосити змінну `createLabel` у функції `onload`. ```js assert.match(code, /window\.onload\s*=\s*\(\s*\)\s*=>\s*\{\s*(?:const\s+container\s*=\s*document\.getElementById\(\s*('|"|`)container\1\s*\);?)?\s*(?:let|var|const)\s*createLabel/); ``` -Your `createLabel` variable should be declared after your `container` variable. +Оголосіть змінну `createLabel` після змінної `container`. ```js assert.match(code, /window\.onload\s*=\s*\(\s*\)\s*=>\s*\{\s*const\s+container\s*=\s*document\.getElementById\(\s*('|"|`)container\1\s*\);?\s*(?:let|var|const)\s*createLabel/); ``` -Your `createLabel` variable should be declared with `const`. +Оголосіть змінну `createLabel` за допомогою `const`. ```js assert.match(code, /window\.onload\s*=\s*\(\s*\)\s*=>\s*\{\s*const\s+container\s*=\s*document\.getElementById\(\s*('|"|`)container\1\s*\);?\s*const\s*createLabel/); ``` -Your `createLabel` variable should be an arrow function. +Змінна `createLabel` має бути стрілковою функцією. ```js assert.match(code, /window\.onload\s*=\s*\(\s*\)\s*=>\s*\{\s*const\s+container\s*=\s*document\.getElementById\(\s*('|"|`)container\1\s*\);?\s*const\s*createLabel\s*=\s*\(?.*\)?\s*=>/); ``` -Your `createLabel` function should have a `name` parameter. +Функція `createLabel` повинна мати параметр `name`. ```js assert.match(code, /window\.onload\s*=\s*\(\s*\)\s*=>\s*\{\s*const\s+container\s*=\s*document\.getElementById\(\s*('|"|`)container\1\s*\);?\s*const\s*createLabel\s*=\s*\(?\s*name\s*\)?\s*=>/); ``` -Your `createLabel` function should be empty. +Функція `createLabel` має бути порожньою. ```js assert.match(code, /window\.onload\s*=\s*\(\s*\)\s*=>\s*\{\s*const\s+container\s*=\s*document\.getElementById\(\s*('|"|`)container\1\s*\);?\s*const\s*createLabel\s*=\s*\(?\s*name\s*\)?\s*=>\s*\{\s*\}/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642ddfdea4200e313f80a4b6.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642ddfdea4200e313f80a4b6.md index 77b8875bb96..baaba974594 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642ddfdea4200e313f80a4b6.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642ddfdea4200e313f80a4b6.md @@ -1,6 +1,6 @@ --- id: 642ddfdea4200e313f80a4b6 -title: Step 3 +title: Крок 3 challengeType: 0 dashedName: step-3 --- @@ -13,13 +13,13 @@ In your `createLabel` function, declare a `label` variable and assign it a new ` # --hints-- -You should declare a `label` variable in your `createLabel` function. +Ви повинні оголосити змінну `label` у функції `createLabel`. ```js assert.match(code, /const\s*createLabel\s*=\s*\(?\s*name\s*\)?\s*=>\s*\{\s*(?:const|let|var)\s*label/); ``` -Your `label` variable should be declared with `const`. +Оголосіть змінну `label` за допомогою `const`. ```js assert.match(code, /const\s*createLabel\s*=\s*\(?\s*name\s*\)?\s*=>\s*\{\s*const\s*label/); @@ -31,7 +31,7 @@ You should use the `.createElement()` method of the `document` object. assert.match(code, /document\.createElement\(/); ``` -You should pass the string `div` to the `.createElement()` method. +Ви повинні передати рядок `div` до методу `.createElement()`. ```js assert.match(code, /document\.createElement\(\s*('|"|`)div\1\s*\)/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642def66e6a60432c9a0371e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642def66e6a60432c9a0371e.md index 6aab064ecef..e002a2cfbdd 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642def66e6a60432c9a0371e.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642def66e6a60432c9a0371e.md @@ -1,6 +1,6 @@ --- id: 642def66e6a60432c9a0371e -title: Step 4 +title: Крок 4 challengeType: 0 dashedName: step-4 --- @@ -11,7 +11,7 @@ Set the `className` of the `label` element to `label`, and set the `textContent` # --hints-- -You should access the `className` property of the `label` element. +Отримайте доступ до властивості `className` елемента `label`. ```js assert.match(code, /label\.className/); @@ -23,7 +23,7 @@ You should set the `className` property to the string `label`. assert.match(code, /label\.className\s*=\s*('|"|`)label\1/); ``` -You should access the `textContent` property of the `label` element. +Отримайте доступ до властивості `textContent` елемента `label`. ```js assert.match(code, /label\.textContent/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642df32c0c2db433d8b46d46.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642df32c0c2db433d8b46d46.md index cd4fbb784c5..a0e5bb768f9 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642df32c0c2db433d8b46d46.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642df32c0c2db433d8b46d46.md @@ -1,6 +1,6 @@ --- id: 642df32c0c2db433d8b46d46 -title: Step 5 +title: Крок 5 challengeType: 0 dashedName: step-5 --- @@ -17,7 +17,7 @@ You should access the `.appendChild()` method of the `container` element. assert.match(code, /container\.appendChild\(/); ``` -You should pass your `label` element to the `.appendChild()` method. +Ви повинні передати елемент `label` до методу `.appendChild()`. ```js assert.match(code, /container\.appendChild\(\s*label\s*\)/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642df9df4b5216350de7b0d2.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642df9df4b5216350de7b0d2.md index 6b97233445b..1c4a1dd1fe7 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642df9df4b5216350de7b0d2.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642df9df4b5216350de7b0d2.md @@ -1,6 +1,6 @@ --- id: 642df9df4b5216350de7b0d2 -title: Step 6 +title: Крок 6 challengeType: 0 dashedName: step-6 --- @@ -13,25 +13,25 @@ Declare an empty `range` function which takes a `start` and `end` parameter. Use # --hints-- -You should declare a `range` variable. +Ви повинні оголосити змінну `range`. ```js assert.match(code, /(?:let|var|const)\s*range/); ``` -You should use `const` to declare your `range` variable. +Ви повинні використати `const`, щоб оголосити змінну `range`. ```js assert.match(code, /const\s*range/); ``` -Your `range` variable should be a function. +Змінна `range` має бути функцією. ```js assert.isFunction(range); ``` -Your `range` function should use arrow syntax. +Функція `range` повинна використовувати стрілковий синтаксис. ```js assert.match(code, /const\s*range\s*=\s*\(.*\)\s*=>/); @@ -49,7 +49,7 @@ Your `range` function should take an `end` parameter second. assert.match(code, /const\s*range\s*=\s*\(\s*start\s*,\s*end\s*\)/); ``` -Your `range` function should use an implicit return. Remember that this means you will not use curly brackets. +Функція `range` має використати неявне повернення. Remember that this means you will not use curly brackets. ```js assert.notMatch(code, /const\s*range\s*=\s*\(\s*start\s*,\s*end\s*\)\s*=>\s*{/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642dfb07e7fa6736251541c8.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642dfb07e7fa6736251541c8.md index 34b11e9b256..6cee7f742e5 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642dfb07e7fa6736251541c8.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642dfb07e7fa6736251541c8.md @@ -1,6 +1,6 @@ --- id: 642dfb07e7fa6736251541c8 -title: Step 7 +title: Крок 7 challengeType: 0 dashedName: step-7 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642e0011c45c893845842058.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642e0011c45c893845842058.md index 2698f6ad2b8..9fde681d416 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642e0011c45c893845842058.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642e0011c45c893845842058.md @@ -1,6 +1,6 @@ --- id: 642e0011c45c893845842058 -title: Step 8 +title: Крок 8 challengeType: 0 dashedName: step-8 --- @@ -13,7 +13,7 @@ Chain the `.fill()` method to your `Array()` constructor, and pass it the `start # --hints-- -You should use the `.fill()` method. +Ви повинні використати метод `.fill()`. ```js assert.match(code, /\.fill\(/); @@ -25,7 +25,7 @@ You should call the `.fill()` method on your `Array()` constructor. assert.match(code, /const\s*range\s*=\s*\(\s*start\s*,\s*end\s*\)\s*=>\s*Array\(\s*end\s*-\s*start\s*\+\s*1\s*\)\.fill\(/); ``` -You should pass `start` to the `.fill()` method. +Ви повинні передати `start` до методу `.fill()`. ```js assert.match(code, /const\s*range\s*=\s*\(\s*start\s*,\s*end\s*\)\s*=>\s*Array\(\s*end\s*-\s*start\s*\+\s*1\s*\).fill\(\s*start\s*\)/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642e004130958c3975aa3a4a.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642e004130958c3975aa3a4a.md index aa9a9db2ec4..8c77dbff00b 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642e004130958c3975aa3a4a.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642e004130958c3975aa3a4a.md @@ -1,6 +1,6 @@ --- id: 642e004130958c3975aa3a4a -title: Step 9 +title: Крок 9 challengeType: 0 dashedName: step-9 --- @@ -13,7 +13,7 @@ Pass the `.map()` method a callback which takes `element` and `index` as paramet # --hints-- -You should use the `.map()` method. +Ви повинні використати метод `.map()`. ```js assert.match(code, /\.map\(/); @@ -25,7 +25,7 @@ You should chain the `.map()` method to your `.fill()` method. assert.match(code, /const\s*range\s*=\s*\(\s*start\s*,\s*end\s*\)\s*=>\s*Array\(\s*end\s*-\s*start\s*\+\s*1\s*\).fill\(\s*start\s*\)\.map\(/); ``` -You should pass a callback function to `.map()` using arrow syntax. +Ви повинні передати функцію зворотного виклику до `.map()`, використовуючи стрілковий синтаксис. ```js assert.match(code, /const\s*range\s*=\s*\(\s*start\s*,\s*end\s*\)\s*=>\s*Array\(\s*end\s*-\s*start\s*\+\s*1\s*\).fill\(\s*start\s*\)\.map\(\s*\(.*\)\s*=>/); @@ -43,7 +43,7 @@ Your `.map()` callback should take `index` as the second parameter. assert.match(code, /const\s*range\s*=\s*\(\s*start\s*,\s*end\s*\)\s*=>\s*Array\(\s*end\s*-\s*start\s*\+\s*1\s*\).fill\(\s*start\s*\)\.map\(\s*\(\s*element\s*,\s*index\s*\)\s*=>/); ``` -Your `.map()` callback should use an implicit return. +Функція зворотного виклику `.map()` має використати неявне повернення. ```js assert.notMatch(code, /const\s*range\s*=\s*\(\s*start\s*,\s*end\s*\)\s*=>\s*Array\(\s*end\s*-\s*start\s*\+\s*1\s*\).fill\(\s*start\s*\)\.map\(\s*\(\s*element\s*,\s*index\s*\)\s*=>\s*\{/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642e02be7845f13b014cd2b0.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642e02be7845f13b014cd2b0.md index c280f9d99ad..0486eaee008 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642e02be7845f13b014cd2b0.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/642e02be7845f13b014cd2b0.md @@ -1,6 +1,6 @@ --- id: 642e02be7845f13b014cd2b0 -title: Step 10 +title: Крок 10 challengeType: 0 dashedName: step-10 --- @@ -9,47 +9,47 @@ dashedName: step-10 Now that you have a `range` function, you can use it to create a range of letters as well. -Declare a `charRange` function using `const` and arrow syntax. It should take a `start` and `end` parameter. The function should implicitly return the result of calling `range()` with `start` and `end` as the arguments. +Оголосіть функцію `charRange`, використовуючи `const` та стрілковий синтаксис. It should take a `start` and `end` parameter. The function should implicitly return the result of calling `range()` with `start` and `end` as the arguments. # --hints-- -You should declare a `charRange` variable. +Ви повинні оголосити змінну `charRange`. ```js assert.match(code, /(?:let|const|var)\s*charRange/); ``` -Your `charRange` variable should be declared with `const`. +Оголосіть змінну `charRange` за допомогою `const`. ```js assert.match(code, /const\s*charRange/); ``` -Your `charRange` variable should be a function. +Змінна `charRange` має бути функцією. ```js assert.isFunction(charRange); ``` -Your `charRange` function should use arrow syntax. +Функція `charRange` повинна використовувати стрілковий синтаксис. ```js assert.match(code, /const\s*charRange\s*=\s*\(.*\)\s*=>/); ``` -Your `charRange` function should take `start` as the first parameter. +Функція `charRange` має приймати `start` як перший параметр. ```js assert.match(code, /const\s*charRange\s*=\s*\(\s*start/); ``` -Your `charRange` function should take `end` as the second parameter. +Функція `charRange` має приймати `end` як другий параметр. ```js assert.match(code, /const\s*charRange\s*=\s*\(\s*start\s*,\s*end\s*\)/); ``` -Your `charRange` function should use an implicit return. +Функція `charRange` має використати неявне повернення. ```js assert.notMatch(code, /const\s*charRange\s*=\s*\(\s*start\s*,\s*end\s*\)\s*=>\s*{/); @@ -61,7 +61,7 @@ Your `charRange` function should call your `range` function. assert.match(code, /const\s*charRange\s*=\s*\(\s*start\s*,\s*end\s*\)\s*=>\s*range\(/); ``` -You should pass `start` and `end` as the arguments to your `range` call. +Ви повинні передати `start` та `end` як аргументи до виклику `range`. ```js assert.match(code, /const\s*charRange\s*=\s*\(\s*start\s*,\s*end\s*\)\s*=>\s*range\(\s*start\s*,\s*end\s*\)/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6434552bcc0a951a0a99df3b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6434552bcc0a951a0a99df3b.md index e72b47c2c9d..23350b89d82 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6434552bcc0a951a0a99df3b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6434552bcc0a951a0a99df3b.md @@ -1,6 +1,6 @@ --- id: 6434552bcc0a951a0a99df3b -title: Step 11 +title: Крок 11 challengeType: 0 dashedName: step-11 --- @@ -13,7 +13,7 @@ Convert your `start` and `end` values in your `range()` call to numbers by using # --hints-- -You should use the `.charCodeAt()` method. +Ви повинні використати метод `.charCodeAt()`. ```js assert.match(code, /\.charCodeAt\(/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64345b810a6e481e5e326849.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64345b810a6e481e5e326849.md index dc0a283a680..623fa379d84 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64345b810a6e481e5e326849.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64345b810a6e481e5e326849.md @@ -1,6 +1,6 @@ --- id: 64345b810a6e481e5e326849 -title: Step 12 +title: Крок 12 challengeType: 0 dashedName: step-12 --- @@ -13,7 +13,7 @@ Pass a callback function that takes `code` as the parameter and implicitly retur # --hints-- -You should use the `.map()` method. +Ви повинні використати метод `.map()`. ```js assert.lengthOf(code.match(/\.map\(/g), 2); @@ -37,7 +37,7 @@ Your `.map()` callback should take a `code` parameter. assert.match(code, /const\s*charRange\s*=\s*\(\s*start\s*,\s*end\s*\)\s*=>\s*range\(\s*start\.charCodeAt\(\s*0\s*\)\s*,\s*end\.charCodeAt\(\s*0\s*\)\s*\).map\(\s*\(?\s*code\s*\)?\s*=>/); ``` -Your `.map()` callback should use an implicit return. +Функція зворотного виклику `.map()` має використати неявне повернення. ```js assert.notMatch(code, /const\s*charRange\s*=\s*\(\s*start\s*,\s*end\s*\)\s*=>\s*range\(\s*start\.charCodeAt\(\s*0\s*\)\s*,\s*end\.charCodeAt\(\s*0\s*\)\s*\).map\(\s*\(?\s*code\s*\)?\s*=>\s*\{/); @@ -49,7 +49,7 @@ Your `.map()` callback should return the result of calling `String.fromCharCode( assert.match(code, /const\s*charRange\s*=\s*\(\s*start\s*,\s*end\s*\)\s*=>\s*range\(\s*start\.charCodeAt\(\s*0\s*\)\s*,\s*end\.charCodeAt\(\s*0\s*\)\s*\).map\(\s*\(?\s*code\s*\)?\s*=>\s*String\.fromCharCode\(/); ``` -You should pass the variable `code` to `String.fromCharCode()`. +Ви повинні передати змінну `code` до `String.fromCharCode()`. ```js assert.match(code, /const\s*charRange\s*=\s*\(\s*start\s*,\s*end\s*\)\s*=>\s*range\(\s*start\.charCodeAt\(\s*0\s*\)\s*,\s*end\.charCodeAt\(\s*0\s*\)\s*\).map\(\s*\(?\s*code\s*\)?\s*=>\s*String\.fromCharCode\(\s*code\s*\)/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64345c560591891f64976f7a.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64345c560591891f64976f7a.md index 51d5bc5f178..f236fb262eb 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64345c560591891f64976f7a.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64345c560591891f64976f7a.md @@ -1,6 +1,6 @@ --- id: 64345c560591891f64976f7a -title: Step 13 +title: Крок 13 challengeType: 0 dashedName: step-13 --- @@ -11,13 +11,13 @@ Now that your helper functions are complete, back in your `onload` event handler # --hints-- -You should declare a `letters` variable. +Ви повинні оголосити змінну `letters`. ```js assert.match(code, /(?:let|const|var)\s*letters/); ``` -You should use `const` to declare your `letters` variable. +Ви повинні використати `const`, щоб оголосити змінну `letters`. ```js assert.match(code, /const\s*letters/); @@ -29,13 +29,13 @@ You should assign a `charRange()` call to your `letters` variable. assert.match(code, /const\s*letters\s*=\s*charRange\(/); ``` -You should pass `A` as the first argument to your `charRange()` call. +Ви повинні передати `A` як перший аргумент до виклику `charRange()`. ```js assert.match(code, /const\s*letters\s*=\s*charRange\(\s*('|"|`)A\1/); ``` -You should pass `J` as the second argument to your `charRange()` call. +Ви повинні передати `J` як другий аргумент до виклику `charRange()`. ```js assert.match(code, /const\s*letters\s*=\s*charRange\(\s*('|"|`)A\1\s*,\s*('|"|`)J\2\s*\)/) diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64347464f78cd9209545f35c.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64347464f78cd9209545f35c.md index 93f8895d535..2b1b806a0f8 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64347464f78cd9209545f35c.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64347464f78cd9209545f35c.md @@ -1,6 +1,6 @@ --- id: 64347464f78cd9209545f35c -title: Step 14 +title: Крок 14 challengeType: 0 dashedName: step-14 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6434750c53db16218f41e6e1.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6434750c53db16218f41e6e1.md index ee5b7a363f8..45284f2c18e 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6434750c53db16218f41e6e1.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6434750c53db16218f41e6e1.md @@ -1,6 +1,6 @@ --- id: 6434750c53db16218f41e6e1 -title: Step 15 +title: Крок 15 challengeType: 0 dashedName: step-15 --- @@ -19,13 +19,13 @@ You should call your `range()` function. assert.lengthOf(code.match(/range\(/g), 2); ``` -You should pass `1` as the first argument to your `range()` call. +Ви повинні передати `1` як перший аргумент до виклику `range()`. ```js assert.match(code, /range\(\s*1/); ``` -You should pass `99` as the second argument to your `range()` call. +Ви повинні передати `99` як другий аргумент до виклику `range()`. ```js assert.match(code, /range\(\s*1\s*,\s*99\s*\)/); @@ -37,13 +37,13 @@ You should chain the `.forEach()` method to your `range()` call. assert.match(code, /range\(\s*1\s*,\s*99\s*\)\.forEach\(/); ``` -You should pass a callback function to `.forEach()` using arrow syntax. +Ви повинні передати функцію зворотного виклику до `.forEach()`, використовуючи стрілковий синтаксис. ```js assert.match(code, /range\(\s*1\s*,\s*99\s*\)\.forEach\(\s*\(?.*\)?\s*=>/); ``` -Your callback function should have `number` as the only parameter. +Функція зворотного виклику повинна мати `number` як єдиний параметр. ```js assert.match(code, /range\(\s*1\s*,\s*99\s*\)\.forEach\(\s*\(?\s*number\s*\)?\s*=>/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6434759f78ec812264ff8f34.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6434759f78ec812264ff8f34.md index 68ac4adb75e..c8d29f55a25 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6434759f78ec812264ff8f34.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6434759f78ec812264ff8f34.md @@ -1,6 +1,6 @@ --- id: 6434759f78ec812264ff8f34 -title: Step 16 +title: Крок 16 challengeType: 0 dashedName: step-16 --- @@ -19,7 +19,7 @@ You should call your `createLabel()` function. assert.match(code, /range\(\s*1\s*,\s*99\s*\)\.forEach\(\s*\(?\s*number\s*\)?\s*=>\s*\{\s*createLabel\(/); ``` -You should pass `number` to your `createLabel()` call. +Ви повинні передати `number` до виклику `createLabel()`. ```js assert.match(code, /range\(\s*1\s*,\s*99\s*\)\.forEach\(\s*\(?\s*number\s*\)?\s*=>\s*\{\s*createLabel\(/) @@ -37,13 +37,13 @@ You should pass a callback function with arrow syntax to your `.forEach()` metho assert.match(code, /letters\.forEach\(\s*\(?.*\)?\s*=>\s*\{/) ``` -Your callback function should have a `letter` parameter. +Функція зворотного виклику повинна мати параметр `letter`. ```js assert.match(code, /letters\.forEach\(\s*\(?\s*letter\s*\)?\s*=>\s*\{/) ``` -Your callback function should be empty. +Функція зворотного виклику має бути порожньою. ```js assert.match(code, /letters\.forEach\(\s*\(?\s*letter\s*\)?\s*=>\s*\{\s*\}/) diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643475e13dc727231acd0f72.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643475e13dc727231acd0f72.md index f6179caf013..10abea4dac6 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643475e13dc727231acd0f72.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643475e13dc727231acd0f72.md @@ -1,25 +1,25 @@ --- id: 643475e13dc727231acd0f72 -title: Step 17 +title: Крок 17 challengeType: 0 dashedName: step-17 --- # --description-- -Now in your nested `.forEach()` call, declare an `input` variable. Use the `.createElement()` method of the `document` object to create an `input` element. Set the `type` attribute to `text` and the `id` attribute to `letter + number`. +Now in your nested `.forEach()` call, declare an `input` variable. Use the `.createElement()` method of the `document` object to create an `input` element. Встановіть атрибут `type` на `text` та атрибут `id` на `letter + number`. For accessibility, set the `aria-label` attribute to the same value as the `id` attribute. # --hints-- -You should declare an `input` variable. +Ви повинні оголосити змінну `input`. ```js assert.match(code, /(?:var|let|const)\s*input/) ``` -You should use `const` to declare your `input` variable. +Ви повинні використати `const`, щоб оголосити змінну `input`. ```js assert.match(code, /const\s*input/) @@ -31,7 +31,7 @@ You should call the `.createElement()` method of the `document` object. assert.lengthOf(code.match(/document\.createElement\(/g), 2) ``` -You should pass the string `input` to the `.createElement()` method. +Ви повинні передати рядок `input` до методу `.createElement()`. ```js assert.match(code, /document\.createElement\(\s*('|"|`)input\1\s*\)/) @@ -43,37 +43,37 @@ You should assign your new `input` element to your `input` variable. assert.match(code, /const\s*input\s*=\s*document\.createElement\(\s*('|"|`)input\1\s*\)/) ``` -You should access the `type` property of your `input` element. +Отримайте доступ до властивості `type` елемента `input`. ```js assert.match(code, /input\.type/); ``` -You should set the `type` attribute of your `input` element to `text`. +Встановіть атрибут `type` елемента `input` на `text`. ```js assert.match(code, /input\.type\s*=\s*('|"|`)text\1/) ``` -You should access the `id` property of your `input` element. +Отримайте доступ до властивості `id` елемента `input`. ```js assert.match(code, /input\.id/); ``` -You should set the `id` attribute of your `input` element to `letter + number`. +Встановіть атрибут `id` елемента `input` на `letter + number`. ```js assert.match(code, /input\.id\s*=\s*letter\s\+\snumber/) ``` -You should access the `ariaLabel` property of your `input` element. +Отримайте доступ до властивості `ariaLabel` елемента `input`. ```js assert.match(code, /input\.ariaLabel/); ``` -You should set the `aria-label` attribute of your `input` element to `letter + number`. +Встановіть атрибут `aria-label` елемента `input` на `letter + number`. ```js assert.match(code, /input\.ariaLabel\s*=\s*letter\s\+\snumber/) diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643498328cb52026123e2b91.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643498328cb52026123e2b91.md index f036d9ff9aa..ad15dd8a213 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643498328cb52026123e2b91.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643498328cb52026123e2b91.md @@ -1,6 +1,6 @@ --- id: 643498328cb52026123e2b91 -title: Step 18 +title: Крок 18 challengeType: 0 dashedName: step-18 --- @@ -19,7 +19,7 @@ You should call the `.appendChild()` method on your `container` element. assert.lengthOf(code.match(/container\.appendChild\(/g), 2); ``` -You should pass your `input` element to the `.appendChild()` method. +Ви повинні передати елемент `input` до методу `.appendChild()`. ```js assert.match(code, /container\.appendChild\(\s*input\s*\)/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643498755d54c6279ba09078.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643498755d54c6279ba09078.md index c190c5df99e..6038eb3172a 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643498755d54c6279ba09078.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643498755d54c6279ba09078.md @@ -1,6 +1,6 @@ --- id: 643498755d54c6279ba09078 -title: Step 19 +title: Крок 19 challengeType: 0 dashedName: step-19 --- @@ -13,43 +13,43 @@ Declare a `sum` function that takes a `nums` parameter, which will be an array o # --hints-- -You should declare a `sum` variable. +Ви повинні оголосити змінну `sum`. ```js assert.match(code, /(?:let|const|var)\s*sum/); ``` -You should use `const` to declare your `sum` variable. +Ви повинні використати `const`, щоб оголосити змінну `sum`. ```js assert.match(code, /const\s*sum/); ``` -Your `sum` variable should be a function. +Змінна `sum` має бути функцією. ```js assert.isFunction(sum); ``` -Your `sum` function should use arrow syntax. +Функція `sum` повинна використовувати стрілковий синтаксис. ```js assert.match(code, /const\s*sum\s*=\(?.*\)?\s*=>/); ``` -Your `sum` function should have a `nums` parameter. +Функція `sum` повинна мати параметр `nums`. ```js assert.match(code, /const\s*sum\s*=\s*\(?\s*nums\s*\)?\s*=>/); ``` -Your `sum` function should use an implicit return. +Функція `sum` має використати неявне повернення. ```js assert.notMatch(code, /const\s*sum\s*=\s*\(?\s*nums\s*\)?\s*=>\s*{/); ``` -Your `sum` function should return the result of calling `.reduce()` on `nums`. +Функція `sum` має повернути результат виклику `.reduce()` на `nums`. ```js assert.match(code, /const\s*sum\s*=\(?\s*nums\s*\)?\s*=>\s*nums\.reduce\(/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6437124c4c03dd4c8fb35d56.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6437124c4c03dd4c8fb35d56.md index 0380ef2a7aa..fd613f4f64f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6437124c4c03dd4c8fb35d56.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6437124c4c03dd4c8fb35d56.md @@ -1,6 +1,6 @@ --- id: 6437124c4c03dd4c8fb35d56 -title: Step 20 +title: Крок 20 challengeType: 0 dashedName: step-20 --- @@ -11,25 +11,25 @@ Declare an `isEven` function, which takes a `num` parameter and returns `true` i # --hints-- -You should declare an `isEven` variable. +Ви повинні оголосити змінну `isEven`. ```js assert.match(code, /(?:let|const|var)\s*isEven/); ``` -You should use `const` to declare your `isEven` variable. +Ви повинні використати `const`, щоб оголосити змінну `isEven`. ```js assert.match(code, /const\s*isEven/); ``` -Your `isEven` variable should be a function. +Змінна `isEven` має бути функцією. ```js assert.isFunction(isEven); ``` -Your `isEven` function should use arrow syntax. +Функція `isEven` повинна використовувати стрілковий синтаксис. ```js assert.match(code, /const\s*isEven\s*=\s*\(?.*\)?\s*=>/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6437133052eaf04d7300e622.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6437133052eaf04d7300e622.md index 1faf5d65bcf..33b0adeaab3 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6437133052eaf04d7300e622.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6437133052eaf04d7300e622.md @@ -1,6 +1,6 @@ --- id: 6437133052eaf04d7300e622 -title: Step 21 +title: Крок 21 challengeType: 0 dashedName: step-21 --- @@ -13,37 +13,37 @@ The average can be calculated by dividing the sum of all the numbers in the arra # --hints-- -You should declare an `average` variable. +Ви повинні оголосити змінну `average`. ```js assert.match(code, /(?:let|const|var)\s+average/); ``` -You should use `const` to declare your `average` variable. +Ви повинні використати `const`, щоб оголосити змінну `average`. ```js assert.match(code, /const\s+average/); ``` -Your `average` variable should be a function. +Змінна `average` має бути функцією. ```js assert.isFunction(average); ``` -Your `average` function should use arrow syntax. +Функція `average` повинна використовувати стрілковий синтаксис. ```js assert.match(code, /const\s+average\s*=\s*\(?.*\)?\s*=>/); ``` -Your `average` function should have a `nums` parameter. +Функція `average` повинна мати параметр `nums`. ```js assert.match(code, /const\s+average\s*=\s*\(?\s*nums\s*\)?/); ``` -Your `average` function should use an implicit return. +Функція `average` має використати неявне повернення. ```js assert.notMatch(code, /const\s+average\s*=\s*\(?\s*nums\s*\)?\s*=>\s*{/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643715013330824ecaa70442.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643715013330824ecaa70442.md index d72ed169821..ca1c0dfed98 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643715013330824ecaa70442.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/643715013330824ecaa70442.md @@ -1,6 +1,6 @@ --- id: 643715013330824ecaa70442 -title: Step 22 +title: Крок 22 challengeType: 0 dashedName: step-22 --- @@ -15,37 +15,37 @@ You should use the `slice()` method for creating a shallow copy of the array. # --hints-- -You should declare a `median` variable. +Ви повинні оголосити змінну `median`. ```js assert.match(code, /(?:let|const|var)\s+median/); ``` -You should use `const` to declare your `median` variable. +Ви повинні використати `const`, щоб оголосити змінну `median`. ```js assert.match(code, /const\s+median/); ``` -Your `median` variable should be a function. +Змінна `median` має бути функцією. ```js assert.isFunction(median); ``` -Your `median` function should use arrow syntax. +Функція `median` повинна використовувати стрілковий синтаксис. ```js assert.match(code, /const\s+median\s*=\s*\(?/); ``` -Your `median` function should have a `nums` parameter. +Функція `median` повинна мати параметр `nums`. ```js assert.match(code, /const\s+median\s*=\s*\(?\s*nums\s*\)?/); ``` -Your `median` function should not use an implicit return. +Функція `median` не повинна використовувати неявне повернення. ```js assert.match(code, /const\s+median\s*=\s*\(?\s*nums\s*\)?\s*=>\s*\{/); @@ -57,7 +57,7 @@ Your `median` function should have a `sorted` variable. assert.match(code, /const\s+median\s*=\s*\(?\s*nums\s*\)?\s*=>\s*\{\s*(?:let|var|const)\s+sorted/); ``` -You should use `const` to declare your `sorted` variable. +Ви повинні використати `const`, щоб оголосити змінну `sorted`. ```js assert.match(code, /const\s+median\s*=\s*\(?\s*nums\s*\)?\s*=>\s*\{\s*const\s+sorted/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496d1e5af8c0148fbef96d.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496d1e5af8c0148fbef96d.md index d9107f59a66..76e4ba65894 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496d1e5af8c0148fbef96d.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496d1e5af8c0148fbef96d.md @@ -1,6 +1,6 @@ --- id: 64496d1e5af8c0148fbef96d -title: Step 23 +title: Крок 23 challengeType: 0 dashedName: step-23 --- @@ -11,13 +11,13 @@ Now declare a `length` variable and assign it the length of your sorted array, a # --hints-- -You should declare a `length` variable after your `sorted` variable. +Оголосіть змінну `length` після змінної `sorted`. ```js assert.match(code, /const\s+median\s*=\s*nums\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(\s*\(\s*a\s*,\s*b\s*\)\s*=>\s*a\s*-\s*b\s*\)\s*\s*;?\s*(?:var|let|const)\s+length/); ``` -You should use `const` to declare your `length` variable. +Ви повинні використати `const`, щоб оголосити змінну `length`. ```js assert.match(code, /const\s+median\s*=\s*nums\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(\s*\(\s*a\s*,\s*b\s*\)\s*=>\s*a\s*-\s*b\s*\)\s*\s*;?\s*const\s+length/); @@ -29,13 +29,13 @@ You should assign the length of the `sorted` array to your `length` variable. assert.match(code, /const\s+median\s*=\s*nums\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(\s*\(\s*a\s*,\s*b\s*\)\s*=>\s*a\s*-\s*b\s*\)\s*\s*;?\s*const\s+length\s*=\s*sorted\.length;?/); ``` -You should declare a `middle` variable after your `length` variable. +Оголосіть змінну `middle` після змінної `length`. ```js assert.match(code, /const\s+median\s*=\s*nums\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(\s*\(\s*a\s*,\s*b\s*\)\s*=>\s*a\s*-\s*b\s*\)\s*\s*;?\s*const\s+length\s*=\s*sorted\.length;?\s*(?:var|let|const)\s+middle/); ``` -You should use `const` to declare your `middle` variable. +Ви повинні використати `const`, щоб оголосити змінну `middle`. ```js assert.match(code, /const\s+median\s*=\s*nums\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(\s*\(\s*a\s*,\s*b\s*\)\s*=>\s*a\s*-\s*b\s*\)\s*\s*;?\s*const\s+length\s*=\s*sorted\.length;?\s*const\s+middle/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496d80bc174a158c973080.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496d80bc174a158c973080.md index 40d5b6d8671..ffdf4d715e3 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496d80bc174a158c973080.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496d80bc174a158c973080.md @@ -1,6 +1,6 @@ --- id: 64496d80bc174a158c973080 -title: Step 24 +title: Крок 24 challengeType: 0 dashedName: step-24 --- @@ -23,7 +23,7 @@ You should call your `isEven()` function after your `return` keyword. assert.match(code, /const\s+median\s*=\s*nums\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(\s*\(\s*a\s*,\s*b\s*\)\s*=>\s*a\s*-\s*b\s*\)\s*\s*;?\s*const\s+length\s*=\s*sorted\.length;?\s*const\s+middle\s*=\s*length\s*\/\s*2\s*-\s*1\s*;?\s*return\s+isEven\(/); ``` -You should pass your `length` variable to your `isEven()` call. +Ви повинні передати змінну `length` до виклику `isEven()`. ```js assert.match(code, /const\s+median\s*=\s*nums\s*=>\s*\{\s*const\s+sorted\s*=\s*nums\.slice\(\s*\)\.sort\(\s*\(\s*a\s*,\s*b\s*\)\s*=>\s*a\s*-\s*b\s*\)\s*\s*;?\s*const\s+length\s*=\s*sorted\.length;?\s*const\s+middle\s*=\s*length\s*\/\s*2\s*-\s*1\s*;?\s*return\s+isEven\(\s*length\s*\)/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496df724dd3716a71fe971.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496df724dd3716a71fe971.md index 9422e15afaf..b56d5dc8553 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496df724dd3716a71fe971.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496df724dd3716a71fe971.md @@ -1,6 +1,6 @@ --- id: 64496df724dd3716a71fe971 -title: Step 25 +title: Крок 25 challengeType: 0 dashedName: step-25 --- @@ -11,55 +11,55 @@ To keep track of all of your spreadsheet's functions, delcare a `spreadsheetFunc # --hints-- -You should declare a `spreadsheetFunctions` variable. +Ви повинні оголосити змінну `spreadsheetFunctions`. ```js assert.match(code, /(?:const|let|var)\s+spreadsheetFunctions/); ``` -You should use `const` to declare your `spreadsheetFunctions` variable. +Ви повинні використати `const`, щоб оголосити змінну `spreadsheetFunctions`. ```js assert.match(code, /const\s+spreadsheetFunctions/); ``` -Your `spreadsheetFunctions` variable should be an object. +Змінна `spreadsheetFunctions` має бути об’єктом. ```js assert.isObject(spreadsheetFunctions); ``` -Your `spreadsheetFunctions` object should have a `sum` property. +Об’єкт `spreadsheetFunctions` повинен мати властивість `sum`. ```js assert.property(spreadsheetFunctions, "sum"); ``` -Your `sum` property should be your `sum` function. +Властивість `sum` має бути функцією `sum`. ```js assert.equal(spreadsheetFunctions?.sum, sum); ``` -Your `spreadsheetFunctions` object should have an `average` property. +Об’єкт `spreadsheetFunctions` повинен мати властивість `average`. ```js assert.property(spreadsheetFunctions, "average"); ``` -Your `average` property should be your `average` function. +Властивість `average` має бути функцією `average`. ```js assert.equal(spreadsheetFunctions?.average, average); ``` -Your `spreadsheetFunctions` object should have a `median` property. +Об’єкт `spreadsheetFunctions` повинен мати властивість `median`. ```js assert.property(spreadsheetFunctions, "median"); ``` -Your `median` property should be your `median` function. +Властивість `median` має бути функцією `median`. ```js assert.equal(spreadsheetFunctions?.median, median); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496e9c6d7a2e189948e441.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496e9c6d7a2e189948e441.md index 45011711b45..a660ecef553 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496e9c6d7a2e189948e441.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64496e9c6d7a2e189948e441.md @@ -1,6 +1,6 @@ --- id: 64496e9c6d7a2e189948e441 -title: Step 26 +title: Крок 26 challengeType: 0 dashedName: step-26 --- @@ -11,31 +11,31 @@ Now you can start using your spreadsheet functions. Begin by declaring an `updat # --hints-- -You should declare an `update` variable. +Ви повинні оголосити змінну `update`. ```js assert.match(code, /(?:let|const|var)\s+update/); ``` -You should use `const` to declare your `update` variable. +Ви повинні використати `const`, щоб оголосити змінну `update`. ```js assert.match(code, /const\s+update/); ``` -Your `update` variable should be a function. +Змінна `update` має бути функцією. ```js assert.isFunction(update); ``` -Your `update` function should take an `event` parameter. +Функція `update` має приймати параметр `event`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>/); ``` -Your `update` function should be empty. +Функція `update` має бути порожньою. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*\}/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449749d20436c1f1dfadcf2.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449749d20436c1f1dfadcf2.md index 441a5da6cbb..ff4e7ea56bb 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449749d20436c1f1dfadcf2.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449749d20436c1f1dfadcf2.md @@ -1,6 +1,6 @@ --- id: 6449749d20436c1f1dfadcf2 -title: Step 27 +title: Крок 27 challengeType: 0 dashedName: step-27 --- @@ -13,7 +13,7 @@ Set the `onchange` property to be a reference to your `update` function. # --hints-- -Your `window.onload` function should access the `onchange` property of the `input` element. +Функція `window.onload` має отримати доступ до властивості `onchange` елемента `input`. ```js assert.match(window.onload.toString(), /input\.onchange/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449755666005520330cec5b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449755666005520330cec5b.md index 179b4592f0a..8fcf67327cd 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449755666005520330cec5b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449755666005520330cec5b.md @@ -1,6 +1,6 @@ --- id: 6449755666005520330cec5b -title: Step 28 +title: Крок 28 challengeType: 0 dashedName: step-28 --- @@ -13,19 +13,19 @@ The `target` property of the change event represents the element that changed. A # --hints-- -You should declare an `element` variable in your `update` function. +Ви повинні оголосити змінну `element` у функції `update`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*(?:var|let|const)\s+element/); ``` -You should use `const` to declare your `element` variable. +Ви повинні використати `const`, щоб оголосити змінну `element`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element/); ``` -You should assign the `target` property of the `event` argument to your `element` variable. +Ви повинні присвоїти властивість `target` аргумента `event` до змінної `element`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497da4062602213ecf32e7.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497da4062602213ecf32e7.md index aa40b2b445a..d5b98ee4cba 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497da4062602213ecf32e7.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497da4062602213ecf32e7.md @@ -1,6 +1,6 @@ --- id: 64497da4062602213ecf32e7 -title: Step 29 +title: Крок 29 challengeType: 0 dashedName: step-29 --- @@ -13,13 +13,13 @@ Assign the `value` property of `element` to a new variable called `value`, and u # --hints-- -You should declare a `value` variable after your `element` variable. +Оголосіть змінну `value` після змінної `element`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*(?:const|let|var)\s+value/); ``` -You should use `const` to declare your `value` variable. +Ви повинні використати `const`, щоб оголосити змінну `value`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value/); @@ -49,7 +49,7 @@ You should make your regular expression global. assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value\s*=\s*element\.value\.replace\(\s*\/\\s\/g/); ``` -You should pass an empty string as your second argument to the `.replace()` method. +Ви повинні передати порожній рядок як другий аргумент до методу `.replace()`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value\s*=\s*element\.value\.replace\(\s*\/\\s\/g\s*,\s*('|"|`)\1/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497de936a2f322327e5c58.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497de936a2f322327e5c58.md index d8123352375..13767ef4ec8 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497de936a2f322327e5c58.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497de936a2f322327e5c58.md @@ -1,6 +1,6 @@ --- id: 64497de936a2f322327e5c58 -title: Step 30 +title: Крок 30 challengeType: 0 dashedName: step-30 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497e0e5e5a2c2329785af4.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497e0e5e5a2c2329785af4.md index 94274ab2be7..bcbb5662827 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497e0e5e5a2c2329785af4.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497e0e5e5a2c2329785af4.md @@ -1,6 +1,6 @@ --- id: 64497e0e5e5a2c2329785af4 -title: Step 31 +title: Крок 31 challengeType: 0 dashedName: step-31 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497e764135bd24b7960dd3.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497e764135bd24b7960dd3.md index 010d9566ada..c704297f7f6 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497e764135bd24b7960dd3.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64497e764135bd24b7960dd3.md @@ -1,6 +1,6 @@ --- id: 64497e764135bd24b7960dd3 -title: Step 32 +title: Крок 32 challengeType: 0 dashedName: step-32 --- @@ -13,43 +13,43 @@ Declare an `evalFormula` arrow function which takes the parameters `x` and `cell # --hints-- -You should declare an `evalFormula` variable. +Ви повинні оголосити змінну `evalFormula`. ```js assert.match(code, /(?:let|const|var)\s*evalFormula/); ``` -You should use `const` to declare your `evalFormula` variable. +Ви повинні використати `const`, щоб оголосити змінну `evalFormula`. ```js assert.match(code, /const\s*evalFormula/); ``` -Your `evalFormula` variable should be a function. +Змінна `evalFormula` має бути функцією. ```js assert.isFunction(evalFormula); ``` -Your `evalFormula` function should use arrow syntax. +Функція `evalFormula` повинна використовувати стрілковий синтаксис. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(/); ``` -Your `evalFormula` function should have `x` as the first parameter. +Функція `evalFormula` повинна мати `x` як перший параметр. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x/); ``` -Your `evalFormula` function should have `cells` as the second parameter. +Функція `evalFormula` повинна мати `cells` як другий параметр. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>/); ``` -Your `evalFormula` function should be empty. +Функція `evalFormula` має бути порожньою. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*}/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449842c6f6c84261075e4c9.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449842c6f6c84261075e4c9.md index 935aa053795..accd0c0ed91 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449842c6f6c84261075e4c9.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449842c6f6c84261075e4c9.md @@ -1,6 +1,6 @@ --- id: 6449842c6f6c84261075e4c9 -title: Step 33 +title: Крок 33 challengeType: 0 dashedName: step-33 --- @@ -13,25 +13,25 @@ Your `idToText` function should return the result of calling `.find()` on the `c # --hints-- -You should declare an `idToText` variable in your `evalFormula` function. +Ви повинні оголосити змінну `idToText` у функції `evalFormula`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*(?:const|let|var)\s+idToText/); ``` -You should use `const` to declare your `idToText` variable. +Ви повинні використати `const`, щоб оголосити змінну `idToText`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText/); ``` -Your `idToText` variable should be an arrow function. +Змінна `idToText` має бути стрілковою функцією. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?.*\)?\s*=>/); ``` -Your `idToText` function should have an `id` parameter. +Функція `idToText` повинна мати параметр `id`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>/); @@ -49,13 +49,13 @@ You should pass a callback function to your `.find()` method. Use arrow syntax. assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?.*\)?\s*=>/); ``` -Your callback function should have a `cell` parameter. +Функція зворотного виклику повинна мати параметр `cell`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>/); ``` -Your callback function should use an implicit return. +Функція зворотного виклику має використати неявне повернення. ```js assert.notMatch(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*\{/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498473a17adc26ef0ecc2d.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498473a17adc26ef0ecc2d.md index dd56044e660..13fb0a9e8c8 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498473a17adc26ef0ecc2d.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498473a17adc26ef0ecc2d.md @@ -1,6 +1,6 @@ --- id: 64498473a17adc26ef0ecc2d -title: Step 34 +title: Крок 34 challengeType: 0 dashedName: step-34 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449849b78f43527be1e8a98.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449849b78f43527be1e8a98.md index e27060dab09..47a69508d6f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449849b78f43527be1e8a98.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449849b78f43527be1e8a98.md @@ -1,6 +1,6 @@ --- id: 6449849b78f43527be1e8a98 -title: Step 35 +title: Крок 35 challengeType: 0 dashedName: step-35 --- @@ -13,19 +13,19 @@ Start by declaring a `rangeRegex` variable and assign it a regular expression th # --hints-- -You should declare a `rangeRegex` variable after your `idToText` function. +Оголосіть змінну `rangeRegex` після функції `idToText`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*(?:var|let|const)\s+rangeRegex/); ``` -You should use `const` to declare your `rangeRegex` variable. +Ви повинні використати `const`, щоб оголосити змінну `rangeRegex`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex/); ``` -Your `rangeRegex` variable should be a regular expression. +Змінна `rangeRegex` має бути регулярним виразом. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/.*\/;?/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498542cab69128ab24e4de.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498542cab69128ab24e4de.md index 399ef9c1f26..a92e837e80a 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498542cab69128ab24e4de.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498542cab69128ab24e4de.md @@ -1,6 +1,6 @@ --- id: 64498542cab69128ab24e4de -title: Step 36 +title: Крок 36 challengeType: 0 dashedName: step-36 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449860d84c9e22cbd7b497c.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449860d84c9e22cbd7b497c.md index d5dfb0a845e..d108fc2c6f8 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449860d84c9e22cbd7b497c.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449860d84c9e22cbd7b497c.md @@ -1,6 +1,6 @@ --- id: 6449860d84c9e22cbd7b497c -title: Step 37 +title: Крок 37 challengeType: 0 dashedName: step-37 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449863f592af72d9be0959e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449863f592af72d9be0959e.md index b9aeec38582..dbdeff8103a 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449863f592af72d9be0959e.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449863f592af72d9be0959e.md @@ -1,6 +1,6 @@ --- id: 6449863f592af72d9be0959e -title: Step 38 +title: Крок 38 challengeType: 0 dashedName: step-38 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449874d5191562eb3313b3f.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449874d5191562eb3313b3f.md index da43051e048..1bbf52ff5ee 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449874d5191562eb3313b3f.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449874d5191562eb3313b3f.md @@ -1,6 +1,6 @@ --- id: 6449874d5191562eb3313b3f -title: Step 39 +title: Крок 39 challengeType: 0 dashedName: step-39 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449876e7aae0d2f8257a497.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449876e7aae0d2f8257a497.md index 7f3a18fcb33..ac5287dcc57 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449876e7aae0d2f8257a497.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6449876e7aae0d2f8257a497.md @@ -1,6 +1,6 @@ --- id: 6449876e7aae0d2f8257a497 -title: Step 40 +title: Крок 40 challengeType: 0 dashedName: step-40 --- @@ -13,43 +13,43 @@ To be safe, parse `num1` and `num2` into integers as you pass them into `range`. # --hints-- -You should declare a `rangeFromString` variable after your `rangeRegex`. +Оголосіть змінну `rangeFromString` після `rangeRegex`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*(?:var|let|const)\s+rangeFromString/); ``` -You should use `const` to declare your `rangeFromString` variable. +Ви повинні використати `const`, щоб оголосити змінну `rangeFromString`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString/); ``` -Your `rangeFromString` variable should be an arrow function. +Змінна `rangeFromString` має бути стрілковою функцією. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(?.*\)?\s*=>/); ``` -Your `rangeFromString` function should have `num1` as the first parameter. +Функція `rangeFromString` повинна мати `num1` як перший параметр. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(?\s*num1/); ``` -Your `rangeFromString` function should have `num2` as the second parameter. +Функція `rangeFromString` повинна мати `num2` як другий параметр. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>/); ``` -Your `rangeFromString` function should use an implicit return. +Функція `rangeFromString` має використати неявне повернення. ```js assert.notMatch(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*\{/); ``` -Your `rangeFromString` function should return the result of calling your `range` function. +Функція `rangeFromString` має повернути результат виклику функції `range`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498b085028fc30a58bb6a7.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498b085028fc30a58bb6a7.md index d58c3fa4ce9..048ebce9285 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498b085028fc30a58bb6a7.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/64498b085028fc30a58bb6a7.md @@ -1,41 +1,41 @@ --- id: 64498b085028fc30a58bb6a7 -title: Step 41 +title: Крок 41 challengeType: 0 dashedName: step-41 --- # --description-- -Declare a function `elemValue` which takes a `num` parameter. The function should be empty. +Declare a function `elemValue` which takes a `num` parameter. Функція має бути порожньою. # --hints-- -You should declare an `elemValue` variable after your `rangeFromString()` function. +Оголосіть змінну `elemValue` після функції `rangeFromString()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*(?:var|let|const)\s+elemValue/); ``` -You should use `const` to declare your `elemValue` variable. +Ви повинні використати `const`, щоб оголосити змінну `elemValue`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue/); ``` -Your `elemValue` variable should be an arrow function. +Змінна `elemValue` має бути стрілковою функцією. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?.*\)?\s*=>/); ``` -Your `elemValue` function should have `num` as the only parameter. +Функція `elemValue` повинна мати `num` як єдиний параметр. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>/); ``` -Your `elemValue` function should be empty. +Функція `elemValue` має бути порожньою. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*\}/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0889c6ff4baa46ac1c50.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0889c6ff4baa46ac1c50.md index 7c0c3e6d0e9..bb759b3cf3c 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0889c6ff4baa46ac1c50.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0889c6ff4baa46ac1c50.md @@ -1,6 +1,6 @@ --- id: 646d0889c6ff4baa46ac1c50 -title: Step 42 +title: Крок 42 challengeType: 0 dashedName: step-42 --- @@ -13,31 +13,31 @@ Then, return your `inner` function. # --hints-- -You should declare an `inner` variable. +Ви повинні оголосити змінну `inner`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*(?:var|let|const)\s+inner/); ``` -You should use `const` to declare your `inner` variable. +Ви повинні використати `const`, щоб оголосити змінну `inner`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner/); ``` -Your `inner` variable should be an arrow function. +Змінна `inner` має бути стрілковою функцією. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?.*\)?\s*=>/); ``` -Your `inner` function should have `character` as the only parameter. +Функція `inner` повинна мати `character` як єдиний параметр. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>/); ``` -Your `inner` function should be empty. +Функція `inner` має бути порожньою. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*\}/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d09a07241aaab1e777080.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d09a07241aaab1e777080.md index b3a6c7e7d7b..da1626b4893 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d09a07241aaab1e777080.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d09a07241aaab1e777080.md @@ -1,6 +1,6 @@ --- id: 646d09a07241aaab1e777080 -title: Step 43 +title: Крок 43 challengeType: 0 dashedName: step-43 --- @@ -17,7 +17,7 @@ Your `inner` function should use an explicit return. assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return/); ``` -Your `inner` function should return the result of calling your `idToText` function. +Функція `inner` має повернути результат виклику функції `idToText`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return\s+idToText\(/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0a022da7bcabf3e3aca3.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0a022da7bcabf3e3aca3.md index f5ba0ed6d12..613d32dd91f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0a022da7bcabf3e3aca3.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0a022da7bcabf3e3aca3.md @@ -1,6 +1,6 @@ --- id: 646d0a022da7bcabf3e3aca3 -title: Step 44 +title: Крок 44 challengeType: 0 dashedName: step-44 --- @@ -9,7 +9,7 @@ dashedName: step-44 The concept of returning a function within a function is called currying. This approach allows you to create a variable that holds a function to be called later, but with a reference to the parameters of the outer function call. -For example: +Наприклад: ```js const innerOne = elemValue(1); @@ -22,31 +22,31 @@ You'll get some more practice with this. Declare a function called `addCharacter # --hints-- -You should declare an `addCharacters` variable. +Ви повинні оголосити змінну `addCharacters`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return\s+idToText\(\s*character\s*\+\s*num\s*\);?\s*};?\s*return\s+inner;?\s*\}\s*(?:var|let|const)\s+addCharacters/); ``` -You should use `const` to declare your `addCharacters` variable. +Ви повинні використати `const`, щоб оголосити змінну `addCharacters`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return\s+idToText\(\s*character\s*\+\s*num\s*\);?\s*};?\s*return\s+inner;?\s*\}\s*const\s+addCharacters/); ``` -Your `addCharacters` variable should be an arrow function. +Змінна `addCharacters` має бути стрілковою функцією. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return\s+idToText\(\s*character\s*\+\s*num\s*\);?\s*};?\s*return\s+inner;?\s*\}\s*const\s+addCharacters\s*=\s*\(?.*\)?\s*=>/); ``` -Your `addCharacters` function should not use an implicit return. +Функція `addCharacters` не повинна використовувати неявне повернення. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return\s+idToText\(\s*character\s*\+\s*num\s*\);?\s*};?\s*return\s+inner;?\s*\}\s*const\s+addCharacters\s*=\s*\(?.*\)?\s*=>\s*\{/); ``` -Your `addCharacters` function should have a `character1` parameter. +Функція `addCharacters` повинна мати параметр `character1`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return\s+idToText\(\s*character\s*\+\s*num\s*\);?\s*};?\s*return\s+inner;?\s*\}\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0d20108440acc95a6b32.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0d20108440acc95a6b32.md index cd6f530d636..7c6826bdad5 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0d20108440acc95a6b32.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0d20108440acc95a6b32.md @@ -1,13 +1,13 @@ --- id: 646d0d20108440acc95a6b32 -title: Step 45 +title: Крок 45 challengeType: 0 dashedName: step-45 --- # --description-- -In your `elemValue` function, you explicitly declared a function called `inner` and returned it. However, because you are using arrow syntax, you can implicitly return a function. For example: +In your `elemValue` function, you explicitly declared a function called `inner` and returned it. However, because you are using arrow syntax, you can implicitly return a function. Наприклад: ```js const curry = soup => veggies => {}; @@ -17,7 +17,7 @@ const curry = soup => veggies => {}; # --hints-- -Your `addCharacters` function should use an implicit return. +Функція `addCharacters` має використати неявне повернення. ```js assert.notMatch(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return\s+idToText\(\s*character\s*\+\s*num\s*\);?\s*};?\s*return\s+inner;?\s*\}\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\{/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0db5175974ad8633b71c.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0db5175974ad8633b71c.md index 31875191914..cb9c6fb050b 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0db5175974ad8633b71c.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0db5175974ad8633b71c.md @@ -1,6 +1,6 @@ --- id: 646d0db5175974ad8633b71c -title: Step 46 +title: Крок 46 challengeType: 0 dashedName: step-46 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0e4636e14eae2bb3b992.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0e4636e14eae2bb3b992.md index 1d41054a373..9d0f0b49d65 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0e4636e14eae2bb3b992.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d0e4636e14eae2bb3b992.md @@ -1,6 +1,6 @@ --- id: 646d0e4636e14eae2bb3b992 -title: Step 47 +title: Крок 47 challengeType: 0 dashedName: step-47 --- @@ -23,13 +23,13 @@ Your innermost function should return the result of calling `charRange()`. assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return\s+idToText\(\s*character\s*\+\s*num\s*\);?\s*};?\s*return\s+inner;?\s*\}\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(/); ``` -You should pass `character1` as the first argument to your `charRange()` call. +Ви повинні передати `character1` як перший аргумент до виклику `charRange()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return\s+idToText\(\s*character\s*\+\s*num\s*\);?\s*};?\s*return\s+inner;?\s*\}\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1/); ``` -You should pass `character2` as the second argument to your `charRange()` call. +Ви повинні передати `character2` як другий аргумент до виклику `charRange()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{\s*const\s+inner\s*=\s*\(?\s*character\s*\)?\s*=>\s*\{\s*return\s+idToText\(\s*character\s*\+\s*num\s*\);?\s*};?\s*return\s+inner;?\s*\}\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1980018efaaec2b1c28b.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1980018efaaec2b1c28b.md index b5f8c3a18a7..8cc55464131 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1980018efaaec2b1c28b.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1980018efaaec2b1c28b.md @@ -1,6 +1,6 @@ --- id: 646d1980018efaaec2b1c28b -title: Step 48 +title: Крок 48 challengeType: 0 dashedName: step-48 --- @@ -11,7 +11,7 @@ Use the same syntax as your `addCharacters` function to update your `elemValue` # --hints-- -Your `elemValue` function should use an implicit return. +Функція `elemValue` має використати неявне повернення. ```js assert.notMatch(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\{/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d19fc4705e4af65c3e688.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d19fc4705e4af65c3e688.md index 9b47d29ec54..4550cbaacc0 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d19fc4705e4af65c3e688.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d19fc4705e4af65c3e688.md @@ -1,6 +1,6 @@ --- id: 646d19fc4705e4af65c3e688 -title: Step 49 +title: Крок 49 challengeType: 0 dashedName: step-49 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1b96dd7ea4b0061458bc.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1b96dd7ea4b0061458bc.md index 0be2bf866f9..44e8fa554d1 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1b96dd7ea4b0061458bc.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1b96dd7ea4b0061458bc.md @@ -1,13 +1,13 @@ --- id: 646d1b96dd7ea4b0061458bc -title: Step 50 +title: Крок 50 challengeType: 0 dashedName: step-50 --- # --description-- -You can pass a function reference as a callback parameter. A function reference is a function name without the parentheses. For example: +You can pass a function reference as a callback parameter. A function reference is a function name without the parentheses. Наприклад: ```js const myFunc = (val) => `value: ${val}`; diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1cadf0d96ab0b7e12da4.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1cadf0d96ab0b7e12da4.md index b051ce72f9d..65f9c678b2b 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1cadf0d96ab0b7e12da4.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1cadf0d96ab0b7e12da4.md @@ -1,6 +1,6 @@ --- id: 646d1cadf0d96ab0b7e12da4 -title: Step 51 +title: Крок 51 challengeType: 0 dashedName: step-51 --- @@ -19,7 +19,7 @@ You should call `elemValue()` in your `.map()` method. assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(/); ``` -You should pass `num` to your `elemValue()` call. +Ви повинні передати `num` до виклику `elemValue()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\)/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1d67f9261fb15a795588.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1d67f9261fb15a795588.md index 545bcf46f72..2e8bb501723 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1d67f9261fb15a795588.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1d67f9261fb15a795588.md @@ -1,23 +1,23 @@ --- id: 646d1d67f9261fb15a795588 -title: Step 52 +title: Крок 52 challengeType: 0 dashedName: step-52 --- # --description-- -Declare a `rangeExpanded` variable and assign it the result of calling the `.replace()` method of your `x` parameter. Pass the `rangeRegex` variable as the argument. +Declare a `rangeExpanded` variable and assign it the result of calling the `.replace()` method of your `x` parameter. Передайте змінну `rangeRegex` як аргумент. # --hints-- -You should declare a `rangeExpanded` variable. +Ви повинні оголосити змінну `rangeExpanded`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*(?:let|var|const)\s+rangeExpanded/); ``` -You should use `const` to declare your `rangeExpanded` variable. +Ви повинні використати `const`, щоб оголосити змінну `rangeExpanded`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded/); @@ -29,7 +29,7 @@ You should assign the result of calling `.replace()` on `x` to your `rangeExpand assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(/); ``` -You should pass `rangeRegex` as the argument to `.replace()`. +Ви повинні передати `rangeRegex` як аргумент до `.replace()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*\)/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1e531042dfb24da1f032.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1e531042dfb24da1f032.md index 7eaca45c1ad..1ddbde3769f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1e531042dfb24da1f032.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d1e531042dfb24da1f032.md @@ -1,6 +1,6 @@ --- id: 646d1e531042dfb24da1f032 -title: Step 53 +title: Крок 53 challengeType: 0 dashedName: step-53 --- @@ -13,13 +13,13 @@ The callback function takes a few parameters. The first is the matched string. P # --hints-- -You should pass an arrow function as the second argument to your `.replace()` method. +Ви повинні передати стрілкову функцію як другий аргумент до методу `.replace()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(.*\)\s*=>\s*\{\s*\}\)/); ``` -Your arrow function should take a `match` parameter. +Стрілкова функція має приймати параметр `match`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*match\s*\)\s*=>\s*\{\s*\}\)/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3141790b3cb337dd611a.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3141790b3cb337dd611a.md index e729cc223ff..6a57c30c9f4 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3141790b3cb337dd611a.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3141790b3cb337dd611a.md @@ -1,6 +1,6 @@ --- id: 646d3141790b3cb337dd611a -title: Step 54 +title: Крок 54 challengeType: 0 dashedName: step-54 --- @@ -13,25 +13,25 @@ Give your callback function four more parameters to match those capture groups: # --hints-- -You should pass `char1` as the second argument to your callback. +Ви повинні передати `char1` як другий аргумент до функції зворотного виклику. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*match\s*,\s*char1/); ``` -You should pass `num1` as the third argument to your callback. +Ви повинні передати `num1` як третій аргумент до функції зворотного виклику. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*match\s*,\s*char1\s*,\s*num1/); ``` -You should pass `char2` as the fourth argument to your callback. +Ви повинні передати `char2` як четвертий аргумент до функції зворотного виклику. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*match\s*,\s*char1\s*,\s*num1\s*,\s*char2/); ``` -You should pass `num2` as the fifth argument to your callback. +Ви повинні передати `num2` як п’ятий аргумент до функції зворотного виклику. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d382c4d70ceb3dba1e830.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d382c4d70ceb3dba1e830.md index 76c1950e846..791bcfa4cfd 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d382c4d70ceb3dba1e830.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d382c4d70ceb3dba1e830.md @@ -1,6 +1,6 @@ --- id: 646d382c4d70ceb3dba1e830 -title: Step 55 +title: Крок 55 challengeType: 0 dashedName: step-55 --- @@ -11,7 +11,7 @@ Have your callback implicitly return the result of calling `rangeFromString()` w # --hints-- -Your callback should use an implicit return. +Функція зворотного виклику має використати неявне повернення. ```js assert.notMatch(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*\{/); @@ -23,13 +23,13 @@ Your callback should return the result of calling `rangeFromString()`. assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(/); ``` -You should pass `num1` as the first argument to your `rangeFromString()` call. +Ви повинні передати `num1` як перший аргумент до виклику `rangeFromString()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1/); ``` -You should pass `num2` as the second argument to your `rangeFromString()` call. +Ви повинні передати `num2` як другий аргумент до виклику `rangeFromString()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d386a685620b49db4be76.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d386a685620b49db4be76.md index ac10f535130..ed4b3b71cc6 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d386a685620b49db4be76.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d386a685620b49db4be76.md @@ -1,6 +1,6 @@ --- id: 646d386a685620b49db4be76 -title: Step 56 +title: Крок 56 challengeType: 0 dashedName: step-56 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d38c326f3c8b54023de38.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d38c326f3c8b54023de38.md index 993479b22a3..0820507abb7 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d38c326f3c8b54023de38.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d38c326f3c8b54023de38.md @@ -1,13 +1,13 @@ --- id: 646d38c326f3c8b54023de38 -title: Step 57 +title: Крок 57 challengeType: 0 dashedName: step-57 --- # --description-- -`addCharacters` returns a function, so you'll want to call it. Pass `char1` as the argument. +`addCharacters` returns a function, so you'll want to call it. Передайте `char1` як аргумент. # --hints-- @@ -17,7 +17,7 @@ You should call your `addCharacters()` function in your `.map()` method. assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*/); ``` -You should pass `char1` as the argument to your `addCharacters()` call. +Ви повинні передати `char1` як аргумент до виклику `addCharacters()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\s*\)/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d38f906b94cb5fe6ce7de.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d38f906b94cb5fe6ce7de.md index 40d2718012d..93cd7f252ce 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d38f906b94cb5fe6ce7de.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d38f906b94cb5fe6ce7de.md @@ -1,6 +1,6 @@ --- id: 646d38f906b94cb5fe6ce7de -title: Step 58 +title: Крок 58 challengeType: 0 dashedName: step-58 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3952f6af37b6a1c241c2.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3952f6af37b6a1c241c2.md index d2893b1aaaf..b02e9f3ae6f 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3952f6af37b6a1c241c2.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3952f6af37b6a1c241c2.md @@ -1,6 +1,6 @@ --- id: 646d3952f6af37b6a1c241c2 -title: Step 59 +title: Крок 59 challengeType: 0 dashedName: step-59 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d39c156fe94b7482c3ab6.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d39c156fe94b7482c3ab6.md index 62616ff4ed8..3d0d0ca1db3 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d39c156fe94b7482c3ab6.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d39c156fe94b7482c3ab6.md @@ -1,6 +1,6 @@ --- id: 646d39c156fe94b7482c3ab6 -title: Step 60 +title: Крок 60 challengeType: 0 dashedName: step-60 --- @@ -11,13 +11,13 @@ Declare a variable `cellRegex` to match cell references. It should match a lette # --hints-- -You should declare a `cellRegex` variable. +Ви повинні оголосити змінну `cellRegex`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*(?:var|let|const)\s+cellRegex/); ``` -You should use `const` to declare your `cellRegex` variable. +Ви повинні використати `const`, щоб оголосити змінну `cellRegex`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3b27cd3c56b875256301.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3b27cd3c56b875256301.md index b2e33396e30..6cf6cfd411e 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3b27cd3c56b875256301.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3b27cd3c56b875256301.md @@ -1,23 +1,23 @@ --- id: 646d3b27cd3c56b875256301 -title: Step 61 +title: Крок 61 challengeType: 0 dashedName: step-61 --- # --description-- -Declare a `cellExpanded` variable and assign it the value of calling `.replace()` on your `rangeExpanded` variable. Pass it your `cellRegex` and an empty callback function. The callback function should take a `match` parameter. +Declare a `cellExpanded` variable and assign it the value of calling `.replace()` on your `rangeExpanded` variable. Pass it your `cellRegex` and an empty callback function. Функція зворотного виклику має приймати параметр `match`. # --hints-- -You should declare a `cellExpanded` variable. +Ви повинні оголосити змінну `cellExpanded`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*(var|let|const)\s+cellExpanded/); ``` -You should use `const` to declare your `cellExpanded` variable. +Ви повинні використати `const`, щоб оголосити змінну `cellExpanded`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded/); @@ -29,7 +29,7 @@ You should assign `cellExpanded` the result of calling the `.replace()` method o assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(/); ``` -You should pass `cellRegex` as the first argument to your `.replace()` call. +Ви повинні передати `cellRegex` як перший аргумент до виклику `.replace()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex/); @@ -41,13 +41,13 @@ You should pass a callback function using arrow syntax as the second argument to assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*(?:match)?\s*\)?\s*=>/); ``` -Your callback function should have a `match` parameter. +Функція зворотного виклику повинна мати параметр `match`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*match\s*\)?\s*=>/); ``` -Your callback function should be empty. +Функція зворотного виклику має бути порожньою. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*match\s*\)?\s*=>\s*\{\s*\}/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3bc75fe0c9b972da3323.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3bc75fe0c9b972da3323.md index ad4c210898c..ce3f130e65d 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3bc75fe0c9b972da3323.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3bc75fe0c9b972da3323.md @@ -1,6 +1,6 @@ --- id: 646d3bc75fe0c9b972da3323 -title: Step 62 +title: Крок 62 challengeType: 0 dashedName: step-62 --- @@ -11,7 +11,7 @@ Update your callback function to return the result of calling `idToText()` with # --hints-- -Your callback function should use an implicit return. +Функція зворотного виклику має використати неявне повернення. ```js assert.notMatch(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*match\s*\)?\s*=>\s*\{/); @@ -23,7 +23,7 @@ Your callback function should call `idToText()`. assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*match\s*\)?\s*=>\s*idToText\(/); ``` -You should pass `match` to your `idToText()` call. +Ви повинні передати `match` до виклику `idToText()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*match\s*\)?\s*=>\s*idToText\(\s*match\s*/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3c146e10b0ba222bb2a7.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3c146e10b0ba222bb2a7.md index b3816a73b01..2aca9981398 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3c146e10b0ba222bb2a7.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3c146e10b0ba222bb2a7.md @@ -1,6 +1,6 @@ --- id: 646d3c146e10b0ba222bb2a7 -title: Step 63 +title: Крок 63 challengeType: 0 dashedName: step-63 --- @@ -9,29 +9,29 @@ dashedName: step-63 In mathematics, an infix is a mathematical operator that appears between its two operands. For example, `1 + 2` is an infix expression. -To parse these expressions, you will need to map the symbols to relevant functions. Declare an `infixToFunction` variable, and assign it an empty object. +To parse these expressions, you will need to map the symbols to relevant functions. Оголосіть змінну `infixToFunction` та присвойте їй порожній об’єкт. # --hints-- -You should declare an `infixToFunction` variable. +Ви повинні оголосити змінну `infixToFunction`. ```js assert.match(code, /(?:const|let|var)\s+infixToFunction/); ``` -You should use `const` to declare your `infixToFunction` variable. +Ви повинні використати `const`, щоб оголосити змінну `infixToFunction`. ```js assert.match(code, /const\s+infixToFunction/); ``` -Your `infixToFunction` variable should be an object. +Змінна `infixToFunction` має бути об’єктом. ```js assert.isObject(infixToFunction); ``` -Your `infixToFunction` object should be empty. +Об’єкт `infixToFunction` має бути порожнім. ```js assert.lengthOf(Object.keys(infixToFunction), 0); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d037872fbbae0a8ec0e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d037872fbbae0a8ec0e.md index 837aebe275a..95573ac86e6 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d037872fbbae0a8ec0e.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d037872fbbae0a8ec0e.md @@ -1,6 +1,6 @@ --- id: 646d3d037872fbbae0a8ec0e -title: Step 64 +title: Крок 64 challengeType: 0 dashedName: step-64 --- @@ -15,37 +15,37 @@ Because `+` is not alphanumeric, you'll need to wrap it in quotes for your prope # --hints-- -Your `infixToFunction` object should have a `+` property. +Об’єкт `infixToFunction` повинен мати властивість `+`. ```js assert.property(infixToFunction, '+'); ``` -Your `+` property should be a function. +Властивість `+` має бути функцією. ```js assert.isFunction(infixToFunction['+']); ``` -Your `+` function should use arrow syntax. +Функція `+` повинна використовувати стрілковий синтаксис. ```js assert.match(code, /const\s+infixToFunction\s*=\s*\{\s*('|"|`)\+\1\s*:\s*\(/); ``` -Your `+` function should have `x` as its first parameter. +Функція `+` повинна мати `x` як перший параметр. ```js assert.match(code, /const\s+infixToFunction\s*=\s*\{\s*('|"|`)\+\1\s*:\s*\(\s*x/); ``` -Your `+` function should have `y` as its second parameter. +Функція `+` повинна мати `y` як другий параметр. ```js assert.match(code, /const\s+infixToFunction\s*=\s*\{\s*('|"|`)\+\1\s*:\s*\(\s*x\s*,\s*y\s*\)/); ``` -Your `+` function should use an implicit return. +Функція `+` має використати неявне повернення. ```js assert.notMatch(code, /const\s+infixToFunction\s*=\s*\{\s*('|"|`)\+\1\s*:\s*\(\s*x\s*,\s*y\s*\)\s*\{/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d65be79c8bb9c7df9ff.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d65be79c8bb9c7df9ff.md index a525cab6136..9f7abbe4c83 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d65be79c8bb9c7df9ff.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d65be79c8bb9c7df9ff.md @@ -1,6 +1,6 @@ --- id: 646d3d65be79c8bb9c7df9ff -title: Step 65 +title: Крок 65 challengeType: 0 dashedName: step-65 --- @@ -11,37 +11,37 @@ Now create a `-` property that is a function that takes an `x` and `y` parameter # --hints-- -Your `infixToFunction` object should have a `-` property. +Об’єкт `infixToFunction` повинен мати властивість `-`. ```js assert.property(infixToFunction, '-'); ``` -Your `-` property should be a function. +Властивість `-` має бути функцією. ```js assert.isFunction(infixToFunction['-']); ``` -Your `-` function should use arrow syntax. +Функція `-` повинна використовувати стрілковий синтаксис. ```js assert.match(code, /('|"|`)-\1\s*:\s*\(/); ``` -Your `-` function should have `x` as its first parameter. +Функція `-` повинна мати `x` як перший параметр. ```js assert.match(code, /('|"|`)-\1\s*:\s*\(\s*x/); ``` -Your `-` function should have `y` as its second parameter. +Функція `-` повинна мати `y` як другий параметр. ```js assert.match(code, /('|"|`)-\1\s*:\s*\(\s*x\s*,\s*y\s*\)/); ``` -Your `-` function should use an implicit return. +Функція `-` має використати неявне повернення. ```js assert.notMatch(code, /('|"|`)-\1\s*:\s*\(\s*x\s*,\s*y\s*\)\s*\{/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d80c3b4aebc4103618e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d80c3b4aebc4103618e.md index 16e5f6e6860..8676d3aad9d 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d80c3b4aebc4103618e.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3d80c3b4aebc4103618e.md @@ -1,6 +1,6 @@ --- id: 646d3d80c3b4aebc4103618e -title: Step 66 +title: Крок 66 challengeType: 0 dashedName: step-66 --- @@ -11,37 +11,37 @@ Following the same pattern, add a property for multiplication `*` and division ` # --hints-- -Your `infixToFunction` object should have a `*` property. +Об’єкт `infixToFunction` повинен мати властивість `*`. ```js assert.property(infixToFunction, '*'); ``` -Your `*` property should be a function. +Властивість `*` має бути функцією. ```js assert.isFunction(infixToFunction['*']); ``` -Your `*` function should use arrow syntax. +Функція `*` повинна використовувати стрілковий синтаксис. ```js assert.match(code, /('|"|`)\*\1\s*:\s*\(/); ``` -Your `*` function should have `x` as its first parameter. +Функція `*` повинна мати `x` як перший параметр. ```js assert.match(code, /('|"|`)\*\1\s*:\s*\(\s*x/); ``` -Your `*` function should have `y` as its second parameter. +Функція `*` повинна мати `y` як другий параметр. ```js assert.match(code, /('|"|`)\*\1\s*:\s*\(\s*x\s*,\s*y\s*\)/); ``` -Your `*` function should use an implicit return. +Функція `*` має використати неявне повернення. ```js assert.notMatch(code, /('|"|`)\*\1\s*:\s*\(\s*x\s*,\s*y\s*\)\s*\{/); @@ -53,37 +53,37 @@ Your `*` function should return the result of multiplying `x` by `y`. assert.equal(infixToFunction['*'](2, 5), 10); ``` -Your `infixToFunction` object should have a `/` property. +Об’єкт `infixToFunction` повинен мати властивість `/`. ```js assert.property(infixToFunction, '/'); ``` -Your `/` property should be a function. +Властивість `/` має бути функцією. ```js assert.isFunction(infixToFunction['/']); ``` -Your `/` function should use arrow syntax. +Функція `/` повинна використовувати стрілковий синтаксис. ```js assert.match(code, /('|"|`)\/\1\s*:\s*\(/); ``` -Your `/` function should have `x` as its first parameter. +Функція `/` повинна мати `x` як перший параметр. ```js assert.match(code, /('|"|`)\/\1\s*:\s*\(\s*x/); ``` -Your `/` function should have `y` as its second parameter. +Функція `/` повинна мати `y` як другий параметр. ```js assert.match(code, /('|"|`)\/\1\s*:\s*\(\s*x\s*,\s*y\s*\)/); ``` -Your `/` function should use an implicit return. +Функція `/` має використати неявне повернення. ```js assert.notMatch(code, /('|"|`)\/\1\s*:\s*\(\s*x\s*,\s*y\s*\)\s*\{/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3da8501e15bcd355ba1d.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3da8501e15bcd355ba1d.md index cc013f1dae7..e539b2fa2f1 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3da8501e15bcd355ba1d.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3da8501e15bcd355ba1d.md @@ -1,6 +1,6 @@ --- id: 646d3da8501e15bcd355ba1d -title: Step 67 +title: Крок 67 challengeType: 0 dashedName: step-67 --- @@ -11,55 +11,55 @@ Now that you have your infix functions, you need a way to evaluate them. Declare # --hints-- -You should declare an `infixEval` variable. +Ви повинні оголосити змінну `infixEval`. ```js assert.match(code, /(?:var|let|const)\s+infixEval\s*=/); ``` -You should use `const` to declare your `infixEval` variable. +Ви повинні використати `const`, щоб оголосити змінну `infixEval`. ```js assert.match(code, /const\s+infixEval\s*=/); ``` -Your `infixEval` variable should be a function. +Змінна `infixEval` має бути функцією. ```js assert.isFunction(infixEval); ``` -Your `infixEval` function should use arrow syntax. +Функція `infixEval` повинна використовувати стрілковий синтаксис. ```js assert.match(code, /const\s+infixEval\s*=\s*\(/); ``` -Your `infixEval` function should have `str` as its first parameter. +Функція `infixEval` повинна мати `str` як перший параметр. ```js assert.match(code, /const\s+infixEval\s*=\s*\(\s*str/); ``` -Your `infixEval` function should have `regex` as its second parameter. +Функція `infixEval` повинна мати `regex` як другий параметр. ```js assert.match(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)/); ``` -Your `infixEval` function should use an implicit return. +Функція `infixEval` має використати неявне повернення. ```js assert.notMatch(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*\{/); ``` -Your `infixEval` function should return the result of calling the `.replace()` method on `str`. +Функція `infixEval` має повернути результат виклику методу `.replace()` на `str`. ```js assert.match(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*str\.replace\(/); ``` -You should pass `regex` as the first argument to the `.replace()` method. +Ви повинні передати `regex` як перший аргумент до методу `.replace()`. ```js assert.match(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*str\.replace\(\s*regex/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3e135ab3abbdbfe5c899.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3e135ab3abbdbfe5c899.md index a96beee9c4f..a1297d1deaa 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3e135ab3abbdbfe5c899.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3e135ab3abbdbfe5c899.md @@ -1,6 +1,6 @@ --- id: 646d3e135ab3abbdbfe5c899 -title: Step 68 +title: Крок 68 challengeType: 0 dashedName: step-68 --- @@ -13,7 +13,7 @@ You will not be using the `match` parameter, so remember to prefix it. # --hints-- -Your callback function should have `match` as the first parameter. +Функція зворотного виклику повинна мати `match` як перший параметр. ```js assert.match(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*str\.replace\(\s*regex\s*,\s*\(\s*_?match/); @@ -25,25 +25,25 @@ Your `match` parameter should be prefixed with an underscore. assert.match(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*str\.replace\(\s*regex\s*,\s*\(\s*_match/); ``` -Your callback function should have `arg1` as the second parameter. +Функція зворотного виклику повинна мати `arg1` як другий параметр. ```js assert.match(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*str\.replace\(\s*regex\s*,\s*\(\s*_match\s*,\s*arg1/); ``` -Your callback function should have `operator` as the third parameter. +Функція зворотного виклику повинна мати `operator` як третій параметр. ```js assert.match(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*str\.replace\(\s*regex\s*,\s*\(\s*_match\s*,\s*arg1\s*,\s*operator/); ``` -Your callback function should have `arg2` as the fourth parameter. +Функція зворотного виклику повинна мати `arg2` як четвертий параметр. ```js assert.match(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*str\.replace\(\s*regex\s*,\s*\(\s*_match\s*,\s*arg1\s*,\s*operator\s*,\s*arg2\s*\)/); ``` -Your callback function should still be empty. +Функція зворотного виклику досі має бути порожньою. ```js assert.match(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*str\.replace\(\s*regex\s*,\s*\(\s*_match\s*,\s*arg1\s*,\s*operator\s*,\s*arg2\s*\)\s*=>\s*\{\s*\}\s*\)/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3e64b15f92be6e61704e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3e64b15f92be6e61704e.md index 935e885b98a..698a37157ef 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3e64b15f92be6e61704e.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3e64b15f92be6e61704e.md @@ -1,6 +1,6 @@ --- id: 646d3e64b15f92be6e61704e -title: Step 69 +title: Крок 69 challengeType: 0 dashedName: step-69 --- @@ -13,13 +13,13 @@ Have your callback function implicitly return the `operator` property of your `i # --hints-- -Your callback should use an implicit return. +Функція зворотного виклику має використати неявне повернення. ```js assert.notMatch(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*str\.replace\(\s*regex\s*,\s*\(\s*_match\s*,\s*arg1\s*,\s*operator\s*,\s*arg2\s*\)\s*=>\s*\{/); ``` -Your callback function should access the `infixToFunction` object. +Функція зворотного виклику має отримати доступ до об’єкта `infixToFunction`. ```js assert.match(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*str\.replace\(\s*regex\s*,\s*\(\s*_match\s*,\s*arg1\s*,\s*operator\s*,\s*arg2\s*\)\s*=>\s*infixToFunction/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3ee7b17ae3bf48610033.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3ee7b17ae3bf48610033.md index 70bf445b5cf..9eb7202b900 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3ee7b17ae3bf48610033.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3ee7b17ae3bf48610033.md @@ -1,6 +1,6 @@ --- id: 646d3ee7b17ae3bf48610033 -title: Step 70 +title: Крок 70 challengeType: 0 dashedName: step-70 --- @@ -11,19 +11,19 @@ dashedName: step-70 # --hints-- -Your callback function should return the result of calling `infixToFunction[operator]`. +Функція зворотного виклику має повернути результат виклику `infixToFunction[operator]`. ```js assert.match(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*str\.replace\(\s*regex\s*,\s*\(\s*_match\s*,\s*arg1\s*,\s*operator\s*,\s*arg2\s*\)\s*=>\s*infixToFunction\[\s*operator\s*\]\(/); ``` -You should pass `arg1` as the first argument to your `infixToFunction[operator]` call. +Ви повинні передати `arg1` як перший аргумент до виклику `infixToFunction[operator]`. ```js assert.match(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*str\.replace\(\s*regex\s*,\s*\(\s*_match\s*,\s*arg1\s*,\s*operator\s*,\s*arg2\s*\)\s*=>\s*infixToFunction\[\s*operator\s*\]\(\s*arg1/); ``` -You should pass `arg2` as the second argument to your `infixToFunction[operator]` call. +Ви повинні передати `arg2` як другий аргумент до виклику `infixToFunction[operator]`. ```js assert.match(code, /const\s+infixEval\s*=\s*\(\s*str\s*,\s*regex\s*\)\s*=>\s*str\.replace\(\s*regex\s*,\s*\(\s*_match\s*,\s*arg1\s*,\s*operator\s*,\s*arg2\s*\)\s*=>\s*infixToFunction\[\s*operator\s*\]\(\s*arg1\s*,\s*arg2\s*\)\s*\)/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3f1fd12f76c02c823bb8.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3f1fd12f76c02c823bb8.md index 27f21057126..35239788a65 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3f1fd12f76c02c823bb8.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3f1fd12f76c02c823bb8.md @@ -1,6 +1,6 @@ --- id: 646d3f1fd12f76c02c823bb8 -title: Step 71 +title: Крок 71 challengeType: 0 dashedName: step-71 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3f718b5f8dc102cd528e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3f718b5f8dc102cd528e.md index e8de07b79d4..4a89d9cabc1 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3f718b5f8dc102cd528e.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d3f718b5f8dc102cd528e.md @@ -1,6 +1,6 @@ --- id: 646d3f718b5f8dc102cd528e -title: Step 72 +title: Крок 72 challengeType: 0 dashedName: step-72 --- @@ -11,37 +11,37 @@ Now that you can evaluate mathematical expressions, you need to account for orde # --hints-- -You should declare a `highPrecedence` variable. +Ви повинні оголосити змінну `highPrecedence`. ```js assert.match(code, /(?:var|let|const)\s+highPrecedence/); ``` -You should use `const` to declare your `highPrecedence` variable. +Ви повинні використати `const`, щоб оголосити змінну `highPrecedence`. ```js assert.match(code, /const\s+highPrecedence/); ``` -Your `highPrecedence` variable should be a function. +Змінна `highPrecedence` має бути функцією. ```js assert.isFunction(highPrecedence); ``` -Your `highPrecedence` function should use arrow syntax. +Функція `highPrecedence` повинна використовувати стрілковий синтаксис. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*(?:str)?\s*\)?\s*=>/); ``` -Your `highPrecedence` function should have a `str` parameter. +Функція `highPrecedence` повинна мати параметр `str`. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>/); ``` -Your `highPrecedence` function should be empty. +Функція `highPrecedence` має бути порожньою. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>\s*{\s*}/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d404259f512c1a9e86ac1.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d404259f512c1a9e86ac1.md index 4e80c7f3964..4bed4546ba2 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d404259f512c1a9e86ac1.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d404259f512c1a9e86ac1.md @@ -1,6 +1,6 @@ --- id: 646d404259f512c1a9e86ac1 -title: Step 73 +title: Крок 73 challengeType: 0 dashedName: step-73 --- @@ -13,19 +13,19 @@ Each number, and the operator, should be in separate capture groups. # --hints-- -You should declare a `regex` variable in your `highPrecedence` function. +Ви повинні оголосити змінну `regex` у функції `highPrecedence`. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>\s*{\s*(?:const|let|var)\s+regex/); ``` -You should use `const` to declare your `regex` variable. +Ви повинні використати `const`, щоб оголосити змінну `regex`. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>\s*{\s*const\s+regex/); ``` -Your `regex` variable should be a regular expression. +Змінна `regex` має бути регулярним виразом. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>\s*{\s*const\s+regex\s*=\s*\//); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d40c543943ec250039682.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d40c543943ec250039682.md index 4973e069b9c..5bf48298115 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d40c543943ec250039682.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d40c543943ec250039682.md @@ -1,6 +1,6 @@ --- id: 646d40c543943ec250039682 -title: Step 74 +title: Крок 74 challengeType: 0 dashedName: step-74 --- @@ -13,13 +13,13 @@ Declare a `str2` variable and assign it the result of calling `infixEval` with ` # --hints-- -You should declare a `str2` variable. +Ви повинні оголосити змінну `str2`. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>\s*{\s*const\s+regex\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\*\\\/|\\\/*)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*(?:const|let|var)\s+str2/); ``` -You should use `const` to declare your `str2` variable. +Ви повинні використати `const`, щоб оголосити змінну `str2`. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>\s*{\s*const\s+regex\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\*\\\/|\\\/*)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2/); @@ -31,13 +31,13 @@ You should assign `str2` the result of calling your `infixEval` function. assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>\s*{\s*const\s+regex\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\*\\\/|\\\/*)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(/); ``` -You should pass `str` as the first argument to your `infixEval` call. +Ви повинні передати `str` як перший аргумент до виклику `infixEval`. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>\s*{\s*const\s+regex\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\*\\\/|\\\/*)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*str/); ``` -You should pass `regex` as the second argument to your `infixEval` call. +Ви повинні передати `regex` як другий аргумент до виклику `infixEval`. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>\s*{\s*const\s+regex\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\*\\\/|\\\/*)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*str\s*,\s*regex\s*\)/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d40fe4b7b50c30c2b4cd8.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d40fe4b7b50c30c2b4cd8.md index 01767a99e03..aaa50d7cc38 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d40fe4b7b50c30c2b4cd8.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d40fe4b7b50c30c2b4cd8.md @@ -1,6 +1,6 @@ --- id: 646d40fe4b7b50c30c2b4cd8 -title: Step 75 +title: Крок 75 challengeType: 0 dashedName: step-75 --- @@ -43,7 +43,7 @@ If the ternary condition is false, you should return the result of calling `high assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>\s*{\s*const\s+regex\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\*\\\/|\\\/*)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*str\s*,\s*regex\s*\);?\s*return\s+(?:str\s*===\s*str2|str2\s*===\s*str)\s*\?\s*str\s*:\s*highPrecedence\(/); ``` -You should pass `str2` to your `highPrecedence()` call. +Ви повинні передати `str2` до виклику `highPrecedence()`. ```js assert.match(code, /const\s+highPrecedence\s*=\s*\(?\s*str\s*\)?\s*=>\s*{\s*const\s+regex\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\*\\\/|\\\/*)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*str\s*,\s*regex\s*\);?\s*return\s+(?:str\s*===\s*str2|str2\s*===\s*str)\s*\?\s*str\s*:\s*highPrecedence\(\s*str2\s*\)/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d41e23b583fc3b8cc4579.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d41e23b583fc3b8cc4579.md index 7fe83fcacfb..177577bb0b8 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d41e23b583fc3b8cc4579.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d41e23b583fc3b8cc4579.md @@ -1,6 +1,6 @@ --- id: 646d41e23b583fc3b8cc4579 -title: Step 76 +title: Крок 76 challengeType: 0 dashedName: step-76 --- @@ -11,37 +11,37 @@ Now you can start applying your function parsing logic to a string. Declare a fu # --hints-- -You should declare an `applyFunction` variable. +Ви повинні оголосити змінну `applyFunction`. ```js assert.match(code, /(?:var|let|const)\s+applyFunction\s*=/); ``` -You should use `const` to declare your `applyFunction` variable. +Ви повинні використати `const`, щоб оголосити змінну `applyFunction`. ```js assert.match(code, /const\s+applyFunction\s*=/); ``` -Your `applyFunction` variable should be a function. +Змінна `applyFunction` має бути функцією. ```js assert.isFunction(applyFunction); ``` -Your `applyFunction` function should use arrow syntax. +Функція `applyFunction` повинна використовувати стрілковий синтаксис. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*(?:str)?\s*\)?\s*=>/); ``` -Your `applyFunction` function should have a `str` parameter. +Функція `applyFunction` повинна мати параметр `str`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>/); ``` -Your `applyFunction` should be empty. +Функція `applyFunction` має бути порожньою. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*\}/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d423fade4a9c4636acd13.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d423fade4a9c4636acd13.md index cbd2f59f0dc..6face2849df 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d423fade4a9c4636acd13.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d423fade4a9c4636acd13.md @@ -1,6 +1,6 @@ --- id: 646d423fade4a9c4636acd13 -title: Step 77 +title: Крок 77 challengeType: 0 dashedName: step-77 --- @@ -11,13 +11,13 @@ First you need to handle the higher precedence operators. Declare a `noHigh` var # --hints-- -You should declare a `noHigh` variable. +Ви повинні оголосити змінну `noHigh`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*(?:var|let|const)\s+noHigh\s*=/); ``` -You should use `const` to declare your `noHigh` variable. +Ви повинні використати `const`, щоб оголосити змінну `noHigh`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=/); @@ -29,7 +29,7 @@ You should assign `noHigh` the result of calling `highPrecedence()`. assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(/); ``` -You should pass `str` as the argument to your `highPrecedence()` call. +Ви повинні передати `str` як аргумент до виклику `highPrecedence()`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\)/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d42f58deb2fc52adc6611.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d42f58deb2fc52adc6611.md index 862ff6ebe14..4c6ef2f68e0 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d42f58deb2fc52adc6611.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d42f58deb2fc52adc6611.md @@ -1,6 +1,6 @@ --- id: 646d42f58deb2fc52adc6611 -title: Step 78 +title: Крок 78 challengeType: 0 dashedName: step-78 --- @@ -13,19 +13,19 @@ Declare an `infix` variable, and assign it a regular expression that matches a n # --hints-- -You should declare an `infix` variable. +Ви повинні оголосити змінну `infix`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*(?:const|let|var)\s+infix\s*=/); ``` -You should use `const` to declare your `infix` variable. +Ви повинні використати `const`, щоб оголосити змінну `infix`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=/); ``` -Your `infix` variable should be a regular expression. +Змінна `infix` має бути регулярним виразом. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\//); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d43587d926bc5b6cb2e50.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d43587d926bc5b6cb2e50.md index b9387c25525..08dd9168c2c 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d43587d926bc5b6cb2e50.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d43587d926bc5b6cb2e50.md @@ -1,6 +1,6 @@ --- id: 646d43587d926bc5b6cb2e50 -title: Step 79 +title: Крок 79 challengeType: 0 dashedName: step-79 --- @@ -11,13 +11,13 @@ Declare a `str2` variable, and assign it the result of calling `infixEval()` wit # --hints-- -You should declare a `str2` variable. +Ви повинні оголосити змінну `str2`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*(?:let|var|const)\s+str2/); ``` -You should use `const` to declare your `str2` variable. +Ви повинні використати `const`, щоб оголосити змінну `str2`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2/); @@ -29,13 +29,13 @@ You should assign `str2` the result of calling `infixEval()`. assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(/); ``` -You should pass `noHigh` as the first argument to `infixEval()`. +Ви повинні передати `noHigh` як перший аргумент до `infixEval()`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh/); ``` -You should pass `infix` as the second argument to `infixEval()`. +Ви повинні передати `infix` як другий аргумент до `infixEval()`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d448479c8fdc8dcec868c.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d448479c8fdc8dcec868c.md index 521cb0a4b09..e4ae65c7e78 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d448479c8fdc8dcec868c.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d448479c8fdc8dcec868c.md @@ -1,6 +1,6 @@ --- id: 646d448479c8fdc8dcec868c -title: Step 80 +title: Крок 80 challengeType: 0 dashedName: step-80 --- @@ -13,13 +13,13 @@ This expression will look for function calls like `sum(1, 4)`. # --hints-- -You should declare a `functionCall` variable. +Ви повинні оголосити змінну `functionCall`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*(?:const|let|var)\s+functionCall\s*=/); ``` -You should use `const` to declare your `functionCall` variable. +Ви повинні використати `const`, щоб оголосити змінну `functionCall`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d44da986f2bc9b72f5fe2.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d44da986f2bc9b72f5fe2.md index 7a4d6806f2b..04a4b951e02 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d44da986f2bc9b72f5fe2.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d44da986f2bc9b72f5fe2.md @@ -1,6 +1,6 @@ --- id: 646d44da986f2bc9b72f5fe2 -title: Step 81 +title: Крок 81 challengeType: 0 dashedName: step-81 --- @@ -11,37 +11,37 @@ Declare a `toNumberList` function which takes an `args` parameter, and returns t # --hints-- -You should declare a `toNumberList` variable. +Ви повинні оголосити змінну `toNumberList`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*(?:const|let|var)\s+toNumberList\s*=/); ``` -You should use `const` to declare your `toNumberList` variable. +Ви повинні використати `const`, щоб оголосити змінну `toNumberList`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=/); ``` -Your `toNumberList` variable should be an arrow function. +Змінна `toNumberList` має бути стрілковою функцією. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*(?:args)?\s*\)?\s*=>/); ``` -Your `toNumberList` function should have an `args` parameter. +Функція `toNumberList` повинна мати параметр `args`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>/); ``` -Your `toNumberList` function should use an implicit return. +Функція `toNumberList` має використати неявне повернення. ```js assert.notMatch(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*\{/); ``` -Your `toNumberList` function should return the result of calling the `.split()` method of `args`. +Функція `toNumberList` має повернути результат виклику методу `.split()` на `args`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d451c2e44afca71b67818.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d451c2e44afca71b67818.md index b2ee3df825b..e85aca2f9a3 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d451c2e44afca71b67818.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d451c2e44afca71b67818.md @@ -1,6 +1,6 @@ --- id: 646d451c2e44afca71b67818 -title: Step 82 +title: Крок 82 challengeType: 0 dashedName: step-82 --- @@ -11,13 +11,13 @@ Declare an `apply` function that takes a `fn` and `args` parameter. # --hints-- -You should declare an `apply` variable. +Ви повинні оголосити змінну `apply`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*(?:var|let|const)\s+apply\s*=/); ``` -You should use `const` to declare your `apply` variable. +Ви повинні використати `const`, щоб оголосити змінну `apply`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=/); @@ -29,19 +29,19 @@ Your `apply` variable should be assigned an arrow function. assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(/); ``` -Your `apply` function should have `fn` as its first parameter. +Функція `apply` повинна мати `fn` як перший параметр. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn/); ``` -Your `apply` function should have `args` as its second parameter. +Функція `apply` повинна мати `args` як другий параметр. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)/); ``` -Your `apply` function should be empty. +Функція `apply` має бути порожньою. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*\{\s*\}/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4554721d43cb19a68bc4.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4554721d43cb19a68bc4.md index 5900d07b82b..1414cb1460a 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4554721d43cb19a68bc4.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4554721d43cb19a68bc4.md @@ -1,6 +1,6 @@ --- id: 646d4554721d43cb19a68bc4 -title: Step 83 +title: Крок 83 challengeType: 0 dashedName: step-83 --- @@ -13,19 +13,19 @@ Remember that `fn` might not be lowercase, so you'll need to convert it to a low # --hints-- -Your `apply` function should use an implicit return. +Функція `apply` має використати неявне повернення. ```js assert.notMatch(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*\{/); ``` -Your `apply` function should access the `spreadsheetFunctions` object. +Функція `apply` має отримати доступ до об’єкта `spreadsheetFunctions`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions/); ``` -Your `apply` function should access the property of the `spreadsheetFunctions` object that matches the `fn` value. +Функція `apply` має отримати доступ до властивості об’єкта `spreadsheetFunctions`, що відповідає значенню `fn`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d45b739da5ecbf830c108.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d45b739da5ecbf830c108.md index 26b5d4cc9f9..c857bc3030c 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d45b739da5ecbf830c108.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d45b739da5ecbf830c108.md @@ -1,6 +1,6 @@ --- id: 646d45b739da5ecbf830c108 -title: Step 84 +title: Крок 84 challengeType: 0 dashedName: step-84 --- @@ -23,7 +23,7 @@ You should pass a `toNumberList()` call to your `spreadsheetFunctions[fn.toLower assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(/); ``` -You should pass `args` to your `toNumberList()` call. +Ви повинні передати `args` до виклику `toNumberList()`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d45ee725632cca2555146.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d45ee725632cca2555146.md index b44378895e2..3be5dc3f96e 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d45ee725632cca2555146.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d45ee725632cca2555146.md @@ -1,6 +1,6 @@ --- id: 646d45ee725632cca2555146 -title: Step 85 +title: Крок 85 challengeType: 0 dashedName: step-85 --- @@ -11,13 +11,13 @@ Now your `applyFunction` needs to return a result. Return the result of calling # --hints-- -Your `applyFunction` function should return the result of calling the `.replace()` method on `str2`. +Функція `applyFunction` має повернути результат виклику методу `.replace()` на `str2`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(/); ``` -You should pass `functionCall` as the first argument to your `.replace()` call. +Ви повинні передати `functionCall` як перший аргумент до виклику `.replace()`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(\s*functionCall/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4626420eeecd51f241c2.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4626420eeecd51f241c2.md index 07688aaca12..073eb2b7f43 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4626420eeecd51f241c2.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4626420eeecd51f241c2.md @@ -1,6 +1,6 @@ --- id: 646d4626420eeecd51f241c2 -title: Step 86 +title: Крок 86 challengeType: 0 dashedName: step-86 --- @@ -13,37 +13,37 @@ Remember to make `fn` lower case. # --hints-- -Your callback function should have `match` as the first parameter. +Функція зворотного виклику повинна мати `match` як перший параметр. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(\s*functionCall\s*,\s*\(\s*match/); ``` -Your callback function should have `fn` as the second parameter. +Функція зворотного виклику повинна мати `fn` як другий параметр. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(\s*functionCall\s*,\s*\(\s*match\s*,\s*fn/); ``` -Your callback function should have `args` as the third parameter. +Функція зворотного виклику повинна мати `args` як третій параметр. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(\s*functionCall\s*,\s*\(\s*match\s*,\s*fn\s*,\s*args\s*\)\s*=>/); ``` -Your callback function should use an implicit return. +Функція зворотного виклику має використати неявне повернення. ```js assert.notMatch(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(\s*functionCall\s*,\s*\(\s*match\s*,\s*fn\s*,\s*args\s*\)\s*=>\s*\{/); ``` -Your callback function should return the result of calling the `.hasOwnProperty()` method on the `spreadsheetFunctions` object. +Функція зворотного виклику має повернути результат виклику методу `.hasOwnProperty()` на об’єкті `spreadsheetFunctions`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(\s*functionCall\s*,\s*\(\s*match\s*,\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\.hasOwnProperty\(/); ``` -You should pass `fn` to the .`hasOwnProperty()` method. +Ви повинні передати `fn` до методу `.hasOwnProperty()`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(\s*functionCall\s*,\s*\(\s*match\s*,\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\.hasOwnProperty\(fn/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d467c6994f4ce0dc416a4.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d467c6994f4ce0dc416a4.md index 8d640506e46..a29fd363263 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d467c6994f4ce0dc416a4.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d467c6994f4ce0dc416a4.md @@ -1,6 +1,6 @@ --- id: 646d467c6994f4ce0dc416a4 -title: Step 87 +title: Крок 87 challengeType: 0 dashedName: step-87 --- @@ -23,13 +23,13 @@ If the ternary condition is true, your callback function should return the resul assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(\s*functionCall\s*,\s*\(\s*match\s*,\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\.hasOwnProperty\(fn\.toLowerCase\(\s*\)\s*\)\s*\?\s*apply\(/); ``` -You should pass `fn` as the first argument to your `apply()` call. +Ви повинні передати `fn` як перший аргумент до виклику `apply()`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(\s*functionCall\s*,\s*\(\s*match\s*,\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\.hasOwnProperty\(fn\.toLowerCase\(\s*\)\s*\)\s*\?\s*apply\(\s*fn/); ``` -You should pass `args` as the second argument to your `apply()` call. +Ви повинні передати `args` як другий аргумент до виклику `apply()`. ```js assert.match(code, /const\s+applyFunction\s*=\s*\(?\s*str\s*\)?\s*=>\s*\{\s*const\s+noHigh\s*=\s*highPrecedence\(\s*str\s*\);?\s*const\s+infix\s*=\s*\/\(\[(?:\\d\.|\.\\d)\]\+\)\(\[(?:\+-|-\+)\]\)\(\[(?:\\d\.|\.\\d)\]\+\)\/;?\s*const\s+str2\s*=\s*infixEval\(\s*noHigh\s*\,\s*infix\s*\);?\s*const\s+functionCall\s*=\s*\/\(\[a-z\]\*\)\\\(\(\[0-9\., \]\*\)\\\)\(\?!\.\*\\\(\)\/i;?\s*const\s+toNumberList\s*=\s*\(?\s*args\s*\)?\s*=>\s*args\.split\(\s*('|"|`),\1\s*\)\.map\(\s*parseFloat\s*\);?\s*const\s+apply\s*=\s*\(\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\[fn\.toLowerCase\(\)\]\(\s*toNumberList\(\s*args\s*\)\);?\s*return\s+str2\.replace\(\s*functionCall\s*,\s*\(\s*match\s*,\s*fn\s*,\s*args\s*\)\s*=>\s*spreadsheetFunctions\.hasOwnProperty\(fn\.toLowerCase\(\s*\)\s*\)\s*\?\s*apply\(\s*fn\s*,\s*args\s*\)/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d46c03e7d02cecb30f021.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d46c03e7d02cecb30f021.md index a01fe855aed..8d6a0c70d73 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d46c03e7d02cecb30f021.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d46c03e7d02cecb30f021.md @@ -1,6 +1,6 @@ --- id: 646d46c03e7d02cecb30f021 -title: Step 88 +title: Крок 88 challengeType: 0 dashedName: step-88 --- @@ -11,13 +11,13 @@ Now you can start applying your function parser to your `evalFormula` logic. Dec # --hints-- -You should declare a `functionExpanded` variable. +Ви повинні оголосити змінну `functionExpanded`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*match\s*\)?\s*=>\s*idToText\(\s*match\.toUpperCase\(\)\s*\)\);?\s*(?:const|let|var)\s+functionExpanded\s*=\s*/); ``` -You should use `const` to declare your `functionExpanded` variable. +Ви повинні використати `const`, щоб оголосити змінну `functionExpanded`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*match\s*\)?\s*=>\s*idToText\(\s*match\.toUpperCase\(\)\s*\)\);?\s*const\s+functionExpanded\s*=\s*/); @@ -29,7 +29,7 @@ You should assign the `functionExpanded` variable the result of calling your `ap assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*match\s*\)?\s*=>\s*idToText\(\s*match\.toUpperCase\(\)\s*\)\);?\s*(?:const|let|var)\s+functionExpanded\s*=\s*applyFunction\(/); ``` -You should pass `cellExpanded` to your `applyFunction` call. +Ви повинні передати `cellExpanded` до виклику `applyFunction`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*match\s*\)?\s*=>\s*idToText\(\s*match\.toUpperCase\(\)\s*\)\);?\s*(?:const|let|var)\s+functionExpanded\s*=\s*applyFunction\(\s*cellExpanded\s*\);?/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4717a689e1cfa232e357.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4717a689e1cfa232e357.md index 50e56cc4486..b3715065be3 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4717a689e1cfa232e357.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4717a689e1cfa232e357.md @@ -1,6 +1,6 @@ --- id: 646d4717a689e1cfa232e357 -title: Step 89 +title: Крок 89 challengeType: 0 dashedName: step-89 --- @@ -43,13 +43,13 @@ If the ternary condition is false, your `evalFormula()` should return the result assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*match\s*\)?\s*=>\s*idToText\(\s*match\.toUpperCase\(\)\s*\)\);?\s*(?:const|let|var)\s+functionExpanded\s*=\s*applyFunction\(\s*cellExpanded\s*\);?\s*return\s*(?:functionExpanded\s*===\s*x|x\s*===\s*functionExpanded)\s*\?\s*functionExpanded\s*:\s*evalFormula\(/); ``` -You should pass `functionExpanded` as the first argument to your `evalFormula()` call. +Ви повинні передати `functionExpanded` як перший аргумент до виклику `evalFormula()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*match\s*\)?\s*=>\s*idToText\(\s*match\.toUpperCase\(\)\s*\)\);?\s*(?:const|let|var)\s+functionExpanded\s*=\s*applyFunction\(\s*cellExpanded\s*\);?\s*return\s*(?:functionExpanded\s*===\s*x|x\s*===\s*functionExpanded)\s*\?\s*functionExpanded\s*:\s*evalFormula\(\s*functionExpanded/); ``` -You should pass `cells` as the second argument to your `evalFormula()` call. +Ви повинні передати `cells` як другий аргумент до виклику `evalFormula()`. ```js assert.match(code, /const\s*evalFormula\s*=\s*\(\s*x\s*,\s*cells\s*\)\s*=>\s*{\s*const\s+idToText\s*=\s*\(?\s*id\s*\)?\s*=>\s*cells\.find\(\s*\(?\s*cell\s*\)?\s*=>\s*(?:cell\.id\s*===\s*id|id\s*===\s*cell\.id)\s*\)\.value;?\s*const\s+rangeRegex\s*=\s*\/\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\):\(\[A-J\]\)\(\[1-9\]\[0-9\]\?\)\/(gi|ig);?\s*const\s+rangeFromString\s*=\s*\(\s*num1\s*,\s*num2\s*\)\s*=>\s*range\(\s*parseInt\(\s*num1\s*\)\s*,\s*parseInt\(\s*num2\s*\)\s*\);?\s*const\s+elemValue\s*=\s*\(?\s*num\s*\)?\s*=>\s*\(?\s*character\s*\)?\s*=>\s*idToText\(\s*character\s*\+\s*num\s*\);?\s*const\s+addCharacters\s*=\s*\(?\s*character1\s*\)?\s*=>\s*\(?\s*character2\s*\)?\s*=>\s*\(?\s*num\s*\)?\s*=>\s*charRange\(\s*character1\s*,\s*character2\s*\)\.map\(\s*elemValue\(\s*num\s*\)\s*\);?\s*const\s+rangeExpanded\s*=\s*x\.replace\(\s*rangeRegex\s*,\s*\(\s*_match\s*,\s*char1\s*,\s*num1\s*,\s*char2\s*,\s*num2\s*\)\s*=>\s*rangeFromString\(\s*num1\s*,\s*num2\s*\)\.map\(\s*addCharacters\s*\(\s*char1\s*\)\(\s*char2\s*\)\s*\)\s*\);?\s*const\s+cellRegex\s*=\s*\/\[A-J\]\[1-9\]\[0-9\]\?\/(gi|ig);?\s*const\s+cellExpanded\s*=\s*rangeExpanded\.replace\(\s*cellRegex\s*,\s*\(?\s*match\s*\)?\s*=>\s*idToText\(\s*match\.toUpperCase\(\)\s*\)\);?\s*(?:const|let|var)\s+functionExpanded\s*=\s*applyFunction\(\s*cellExpanded\s*\);?\s*return\s*(?:functionExpanded\s*===\s*x|x\s*===\s*functionExpanded)\s*\?\s*functionExpanded\s*:\s*evalFormula\(\s*functionExpanded\s*,\s*cells\s*\);?/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4769ba65f1d05ef6b634.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4769ba65f1d05ef6b634.md index c9b3155ab77..b2af32d11f2 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4769ba65f1d05ef6b634.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4769ba65f1d05ef6b634.md @@ -1,6 +1,6 @@ --- id: 646d4769ba65f1d05ef6b634 -title: Step 90 +title: Крок 90 challengeType: 0 dashedName: step-90 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d47c8f58107d10f1e5106.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d47c8f58107d10f1e5106.md index 2b8ba01ca6f..d0d98bfed27 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d47c8f58107d10f1e5106.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d47c8f58107d10f1e5106.md @@ -1,6 +1,6 @@ --- id: 646d47c8f58107d10f1e5106 -title: Step 91 +title: Крок 91 challengeType: 0 dashedName: step-91 --- @@ -11,7 +11,7 @@ The first argument for your `evalFormula` call needs to be the contents of the c # --hints-- -You should pass `value` as the first argument to your `evalFormula()` call. +Ви повинні передати `value` як перший аргумент до виклику `evalFormula()`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value\s*=\s*element\.value\.replace\(\s*\/\\s\/g\s*,\s*('|"|`)\1\s*\);?\s*if\s*\(\s*(!value\.includes\(\s*element\.id\s*\)\s*&&\s*(?:value\[0\]\s*===\s*('|"|`)=\3|value\.charAt\(0\)\s*===\s*('|"|`)=\4|value\.startsWith\(('|"|`)=\5\))|(?:value\[0\]\s*===\s*('|"|`)=\6|value\.charAt\(0\)\s*===\s*('|"|`)=\7|value\.startsWith\(('|"|`)=\8\))\s*\|\|\s*!value\.includes\(\s*element\.id\s*\))\s*\)\s*\{\s*element\.value\s*=\s*evalFormula\(\s*value/); @@ -23,7 +23,7 @@ You should call the `.slice()` method on the `value` argument. assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value\s*=\s*element\.value\.replace\(\s*\/\\s\/g\s*,\s*('|"|`)\1\s*\);?\s*if\s*\(\s*(!value\.includes\(\s*element\.id\s*\)\s*&&\s*(?:value\[0\]\s*===\s*('|"|`)=\3|value\.charAt\(0\)\s*===\s*('|"|`)=\4|value\.startsWith\(('|"|`)=\5\))|(?:value\[0\]\s*===\s*('|"|`)=\6|value\.charAt\(0\)\s*===\s*('|"|`)=\7|value\.startsWith\(('|"|`)=\8\))\s*\|\|\s*!value\.includes\(\s*element\.id\s*\))\s*\)\s*\{\s*element\.value\s*=\s*evalFormula\(\s*value\.slice\(/); ``` -You should pass the number `1` as the argument to your `.slice()` call. +Ви повинні передати число `1` як аргумент до виклику `.slice()`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value\s*=\s*element\.value\.replace\(\s*\/\\s\/g\s*,\s*('|"|`)\1\s*\);?\s*if\s*\(\s*(!value\.includes\(\s*element\.id\s*\)\s*&&\s*(?:value\[0\]\s*===\s*('|"|`)=\3|value\.charAt\(0\)\s*===\s*('|"|`)=\4|value\.startsWith\(('|"|`)=\5\))|(?:value\[0\]\s*===\s*('|"|`)=\6|value\.charAt\(0\)\s*===\s*('|"|`)=\7|value\.startsWith\(('|"|`)=\8\))\s*\|\|\s*!value\.includes\(\s*element\.id\s*\))\s*\)\s*\{\s*element\.value\s*=\s*evalFormula\(\s*value\.slice\(\s*1\s*\)\s*\);?/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4813c17b37d1e261a566.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4813c17b37d1e261a566.md index bfc7354c9b4..724ffdcdf36 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4813c17b37d1e261a566.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4813c17b37d1e261a566.md @@ -1,6 +1,6 @@ --- id: 646d4813c17b37d1e261a566 -title: Step 92 +title: Крок 92 challengeType: 0 dashedName: step-92 --- @@ -17,13 +17,13 @@ For the second parameter of your `evalFormula()` call, you should call the `.get assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value\s*=\s*element\.value\.replace\(\s*\/\\s\/g\s*,\s*('|"|`)\1\s*\);?\s*if\s*\(\s*(!value\.includes\(\s*element\.id\s*\)\s*&&\s*(?:value\[0\]\s*===\s*('|"|`)=\3|value\.charAt\(0\)\s*===\s*('|"|`)=\4|value\.startsWith\(('|"|`)=\5\))|(?:value\[0\]\s*===\s*('|"|`)=\6|value\.charAt\(0\)\s*===\s*('|"|`)=\7|value\.startsWith\(('|"|`)=\8\))\s*\|\|\s*!value\.includes\(\s*element\.id\s*\))\s*\)\s*\{\s*element\.value\s*=\s*evalFormula\(\s*value\.slice\(\s*1\s*\)\s*,\s*document\.getElementById\(/); ``` -You should pass `container` as the argument to your `.getElementById()` call. +Ви повинні передати `container` як аргумент до виклику `.getElementById()`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value\s*=\s*element\.value\.replace\(\s*\/\\s\/g\s*,\s*('|"|`)\1\s*\);?\s*if\s*\(\s*(!value\.includes\(\s*element\.id\s*\)\s*&&\s*(?:value\[0\]\s*===\s*('|"|`)=\3|value\.charAt\(0\)\s*===\s*('|"|`)=\4|value\.startsWith\(('|"|`)=\5\))|(?:value\[0\]\s*===\s*('|"|`)=\6|value\.charAt\(0\)\s*===\s*('|"|`)=\7|value\.startsWith\(('|"|`)=\8\))\s*\|\|\s*!value\.includes\(\s*element\.id\s*\))\s*\)\s*\{\s*element\.value\s*=\s*evalFormula\(\s*value\.slice\(\s*1\s*\)\s*,\s*document\.getElementById\(\s*('|"|`)container\9\s*\)/); ``` -You should access the `children` property of the result of your `.getElementById()` call. +Отримайте доступ до властивості `children` результату виклику `.getElementById()`. ```js assert.match(code, /const\s+update\s*=\s*\(?\s*event\s*\)?\s*=>\s*\{\s*const\s+element\s*=\s*event\.target;?\s*const\s+value\s*=\s*element\.value\.replace\(\s*\/\\s\/g\s*,\s*('|"|`)\1\s*\);?\s*if\s*\(\s*(!value\.includes\(\s*element\.id\s*\)\s*&&\s*(?:value\[0\]\s*===\s*('|"|`)=\3|value\.charAt\(0\)\s*===\s*('|"|`)=\4|value\.startsWith\(('|"|`)=\5\))|(?:value\[0\]\s*===\s*('|"|`)=\6|value\.charAt\(0\)\s*===\s*('|"|`)=\7|value\.startsWith\(('|"|`)=\8\))\s*\|\|\s*!value\.includes\(\s*element\.id\s*\))\s*\)\s*\{\s*element\.value\s*=\s*evalFormula\(\s*value\.slice\(\s*1\s*\)\s*,\s*document\.getElementById\(\s*('|"|`)container\9\s*\)\.children\s*\);?/); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d486aec20f7d2a581cc36.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d486aec20f7d2a581cc36.md index 42ac008ff41..ee70d3972ca 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d486aec20f7d2a581cc36.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d486aec20f7d2a581cc36.md @@ -1,6 +1,6 @@ --- id: 646d486aec20f7d2a581cc36 -title: Step 93 +title: Крок 93 challengeType: 0 dashedName: step-93 --- diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d48b936802fd34c3f05af.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d48b936802fd34c3f05af.md index 255197e54a6..761ede230b2 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d48b936802fd34c3f05af.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d48b936802fd34c3f05af.md @@ -1,6 +1,6 @@ --- id: 646d48b936802fd34c3f05af -title: Step 94 +title: Крок 94 challengeType: 0 dashedName: step-94 --- @@ -13,31 +13,31 @@ Add an `even` property to your `spreadsheetFunctions`. It should take a `nums` p # --hints-- -Your `spreadsheetFunctions` object should have an `even` property. +Об’єкт `spreadsheetFunctions` повинен мати властивість `even`. ```js assert.property(spreadsheetFunctions, "even"); ``` -Your `even` property should be a function. +Властивість `even` має бути функцією. ```js assert.isFunction(spreadsheetFunctions.even); ``` -Your `even` function should take a `nums` parameter. +Функція `even` має приймати параметр `nums`. ```js assert.match(code, /even\s*:\s*\(?\s*nums\s*\)?\s*=>/) ``` -Your `even` function should use an implicit return. +Функція `even` має використати неявне повернення. ```js assert.notMatch(code, /even\s*:\s*\(?\s*nums\s*\)?\s*=>\s*\{/) ``` -Your `even` function should return the result of calling the `.filter()` method on `nums`. +Функція `even` має повернути результат виклику методу `.filter()` на `nums`. ```js assert.match(code, /even\s*:\s*\(?\s*nums\s*\)?\s*=>\s*nums\s*\.\s*filter/) diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d498c8ebc31d3f753b22e.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d498c8ebc31d3f753b22e.md index 0dd57f1224b..c3cca83dbd5 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d498c8ebc31d3f753b22e.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d498c8ebc31d3f753b22e.md @@ -1,6 +1,6 @@ --- id: 646d498c8ebc31d3f753b22e -title: Step 95 +title: Крок 95 challengeType: 0 dashedName: step-95 --- @@ -11,13 +11,13 @@ Add a `firsttwo` property which takes a `nums` parameter and returns the first t # --hints-- -Your `spreadsheetFunctions` object should have a `firsttwo` property. +Об’єкт `spreadsheetFunctions` повинен мати властивість `firsttwo`. ```js assert.property(spreadsheetFunctions, "firsttwo"); ``` -Your `firsttwo` property should be a function. +Властивість `firsttwo` має бути функцією. ```js assert.isFunction(spreadsheetFunctions.firsttwo); @@ -29,13 +29,13 @@ Your `firsttwo` function should return the first two numbers of the array. assert.deepEqual(spreadsheetFunctions.firsttwo([1, 2, 3, 4, 5, 6]), [1, 2]); ``` -Your `spreadsheetFunctions` object should have a `lasttwo` property. +Об’єкт `spreadsheetFunctions` повинен мати властивість `lasttwo`. ```js assert.property(spreadsheetFunctions, "lasttwo"); ``` -Your `lasttwo` property should be a function. +Властивість `lasttwo` має бути функцією. ```js assert.isFunction(spreadsheetFunctions.lasttwo); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d49bfff9079d4b38df115.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d49bfff9079d4b38df115.md index 2a2788f4b10..a875412ce88 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d49bfff9079d4b38df115.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d49bfff9079d4b38df115.md @@ -1,6 +1,6 @@ --- id: 646d49bfff9079d4b38df115 -title: Step 96 +title: Крок 96 challengeType: 0 dashedName: step-96 --- @@ -11,13 +11,13 @@ Add a `has2` property which returns whether the `nums` array has `2` in the valu # --hints-- -Your `spreadsheetFunctions` object should have a `has2` property. +Об’єкт `spreadsheetFunctions` повинен мати властивість `has2`. ```js assert.property(spreadsheetFunctions, "has2"); ``` -Your `has2` property should be a function. +Властивість `has2` має бути функцією. ```js assert.isFunction(spreadsheetFunctions.has2); @@ -35,13 +35,13 @@ Your `has2` function should return `false` if the array does not have `2` in it. assert.isFalse(spreadsheetFunctions.has2([1, 3, 4])); ``` -Your `spreadsheetFunctions` object should have an `increment` property. +Об’єкт `spreadsheetFunctions` повинен мати властивість `increment`. ```js assert.property(spreadsheetFunctions, "increment"); ``` -Your `increment` property should be a function. +Властивість `increment` має бути функцією. ```js assert.isFunction(spreadsheetFunctions.increment); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4a07a8fb14d55cd70e09.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4a07a8fb14d55cd70e09.md index 12c4eb6bf15..439ee4a014c 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4a07a8fb14d55cd70e09.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4a07a8fb14d55cd70e09.md @@ -1,6 +1,6 @@ --- id: 646d4a07a8fb14d55cd70e09 -title: Step 97 +title: Крок 97 challengeType: 0 dashedName: step-97 --- @@ -20,13 +20,13 @@ Add a `someeven` property to your `spreadsheetFunctions` - use the `.some()` met # --hints-- -Your `spreadsheetFunctions` object should have a `someeven` property. +Об’єкт `spreadsheetFunctions` повинен мати властивість `someeven`. ```js assert.property(spreadsheetFunctions, "someeven"); ``` -Your `someeven` property should be a function. +Властивість `someeven` має бути функцією. ```js assert.isFunction(spreadsheetFunctions.someeven); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4a5b32a1cad6165df286.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4a5b32a1cad6165df286.md index 7c43db10dd0..701f77e12b7 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4a5b32a1cad6165df286.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4a5b32a1cad6165df286.md @@ -1,6 +1,6 @@ --- id: 646d4a5b32a1cad6165df286 -title: Step 99 +title: Крок 99 challengeType: 0 dashedName: step-99 --- @@ -11,13 +11,13 @@ Add a `random` property which takes the first two numbers from an array and retu # --hints-- -Your `spreadsheetFunctions` object should have a `random` property. +Об’єкт `spreadsheetFunctions` повинен мати властивість `random`. ```js assert.property(spreadsheetFunctions, "random"); ``` -Your `random` property should be a function. +Властивість `random` має бути функцією. ```js assert.isFunction(spreadsheetFunctions.random); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4a8dbc04c6d6bb0001f8.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4a8dbc04c6d6bb0001f8.md index 1123c7fe781..c6a8036cfc1 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4a8dbc04c6d6bb0001f8.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4a8dbc04c6d6bb0001f8.md @@ -1,6 +1,6 @@ --- id: 646d4a8dbc04c6d6bb0001f8 -title: Step 100 +title: Крок 100 challengeType: 0 dashedName: step-100 --- @@ -11,13 +11,13 @@ Add a `range` property which generates a range from `nums`. Remember that you ha # --hints-- -Your `spreadsheetFunctions` object should have a `range` property. +Об’єкт `spreadsheetFunctions` повинен мати властивість `range`. ```js assert.property(spreadsheetFunctions, "range"); ``` -Your `range` property should be a function. +Властивість `range` має бути функцією. ```js assert.isFunction(spreadsheetFunctions.range); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4ab9b3b4c5d74fdd2154.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4ab9b3b4c5d74fdd2154.md index d89f6df3612..12019473e7b 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4ab9b3b4c5d74fdd2154.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4ab9b3b4c5d74fdd2154.md @@ -1,6 +1,6 @@ --- id: 646d4ab9b3b4c5d74fdd2154 -title: Step 101 +title: Крок 101 challengeType: 0 dashedName: step-101 --- @@ -13,13 +13,13 @@ Add a `nodupes` property which returns `nums` with all duplicate values removed. # --hints-- -Your `spreadsheetFunctions` object should have a `nodupes` property. +Об’єкт `spreadsheetFunctions` повинен мати властивість `nodupes`. ```js assert.property(spreadsheetFunctions, "nodupes"); ``` -Your `nodupes` property should be a function. +Властивість `nodupes` має бути функцією. ```js assert.isFunction(spreadsheetFunctions.nodupes); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4b3d80ea98d824c8a4f9.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4b3d80ea98d824c8a4f9.md index edb35c09bd0..9b83d9025fa 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4b3d80ea98d824c8a4f9.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/646d4b3d80ea98d824c8a4f9.md @@ -1,6 +1,6 @@ --- id: 646d4b3d80ea98d824c8a4f9 -title: Step 102 +title: Крок 102 challengeType: 0 dashedName: step-102 --- @@ -13,13 +13,13 @@ With that, your spreadsheet project is now complete. You are welcome to experime # --hints-- -Your `spreadsheetFunctions` object should have an empty string property. +Об’єкт `spreadsheetFunctions` повинен мати властивість порожнього рядка. ```js assert.property(spreadsheetFunctions, ""); ``` -Your empty string property should be a function. +Властивість порожнього рядка має бути функцією. ```js assert.isFunction(spreadsheetFunctions[""]); diff --git a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6491d38f5b09a021c4b5d5fe.md b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6491d38f5b09a021c4b5d5fe.md index ec55d6b9819..bac00080f8e 100644 --- a/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6491d38f5b09a021c4b5d5fe.md +++ b/curriculum/challenges/ukrainian/15-javascript-algorithms-and-data-structures-22/learn-functional-programming-by-building-a-spreadsheet/6491d38f5b09a021c4b5d5fe.md @@ -1,6 +1,6 @@ --- id: 6491d38f5b09a021c4b5d5fe -title: Step 98 +title: Крок 98 challengeType: 0 dashedName: step-98 --- @@ -20,13 +20,13 @@ Add an `everyeven` property to your `spreadsheetFunctions` - use the `.every()` # --hints-- -Your `spreadsheetFunctions` object should have an `everyeven` property. +Об’єкт `spreadsheetFunctions` повинен мати властивість `everyeven`. ```js assert.property(spreadsheetFunctions, "everyeven"); ``` -Your `everyeven` property should be a function. +Властивість `everyeven` має бути функцією. ```js assert.isFunction(spreadsheetFunctions.everyeven); diff --git a/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-a.md b/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-a.md index 38c2741b66b..83ea510934f 100644 --- a/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-a.md +++ b/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-a.md @@ -7,32 +7,32 @@ dashedName: the-cascade-of-css-question-a # --description-- -Sometimes we may have rules that conflict with one another, and we end up with some unexpected results. “But I wanted these paragraphs to be blue, why are they red like these other paragraphs?!” As frustrating as this can be, it’s important to understand that CSS doesn’t just do things against your wishes. CSS only does what we tell it to do. One exception to this is the default styles that are provided by a browser. These default styles vary from browser to browser, and they are why some elements create a large “gap” between themselves and other elements, or why buttons look the way they do, despite us not writing any CSS rules to style them that way. +Іноді у нас можуть бути правила, які суперечать одне одному, внаслідок чого виникають несподівані результати. «Ці абзаци мали бути синіми, чому вони червоні, як і всі інші?!» Це дратує, однак важливо розуміти, що CSS робить так ненавмисно. CSS робить лише те, що ми просимо. Єдиним винятком є стилі за замовчуванням, які надає браузер. Ці стилі відрізняються залежно від браузера, через що деякі елементи створюють «прогалину» між собою та іншими елементами, або кнопки мають певний вигляд, хоча ми не писали жодних правил CSS для них. -So if you end up with some unexpected behavior like this it’s either because of these default styles, not understanding how a property works, or not understanding this little thing called the cascade. +Тому, якщо у вас виникне такий несподіваний результат, то причиною є стилі за замовчуванням, незнання властивості чи нерозуміння дрібнички під назвою «каскад». -The cascade is what determines which rules actually get applied to your HTML. There are different factors that the cascade uses to determine this. We will examine three of these factors, which will hopefully help you avoid those frustrating “I hate CSS” moments. +Саме каскад визначає, які правила насправді застосовуються до HTML. Для цього каскад використовує різні фактори. Ми вивчимо три з цих факторів, які, сподіваємось, допоможуть уникнути слів «я ненавиджу CSS». # --question-- ## --text-- -Why might you encounter unexpected behavior in CSS? +Чому може виникнути несподівана поведінка в CSS? ## --answers-- -Due to conflicting rules and unexpected results +Через конфліктуючі правила та неочікувані результати --- -Due to the browser's default styles +Через стилі браузера за замовчуванням --- -Due to a lack of understanding of CSS properties +Через недостатнє розуміння властивостей CSS --- -All of the above +Усе перелічене вище ## --video-solution-- diff --git a/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-b.md b/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-b.md index 907ea914797..336a1f99254 100644 --- a/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-b.md +++ b/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-b.md @@ -7,35 +7,35 @@ dashedName: the-cascade-of-css-question-b # --description-- -A CSS declaration that is more specific will take precedence over less specific ones. Inline styles, which you went over in a previous lesson, have the highest specificity compared to selectors, while each type of selector has its own specificity level that contributes to how specific a declaration is. Other selectors contribute to specificity, but you're focusing only on the ones you’ve gone over so far: +Чим специфічніше оголошення CSS, тим у нього більше переваги над іншими. Вбудовані стилі, які ви розглянули минулого уроку, мають найвищу специфічність серед інших селекторів, хоча кожен тип селектора має власний рівень специфічності, який сприяє специфічності оголошення. Інші селектори сприяють специфічності, але ми фокусуємось лише на тих, які вже розглянули: -1. ID selectors (most specific selector) -2. Class selectors -3. Type selectors +1. Селектори ID (найспецифічніший селектор) +2. Селектори класу +3. Селектори типу -Specificity will only be taken into account when an element has multiple, conflicting declarations targeting it, sort of like a tie-breaker. An ID selector will always beat any number of class selectors, a class selector will always beat any number of type selectors, and a type selector will always beat any number of anything less specific than it. When no declaration has a selector with a higher specificity, a larger amount of a single selector will beat a smaller amount of that same selector. +Специфічність враховується лише тоді, коли елемент має декілька конфліктуючих оголошень, націлених на себе. Селектор ID завжди переважатиме будь-яку кількість селекторів класу, селектор класу завжди переважатиме будь-яку кількість селекторів типу, а селектор типу завжди переважатиме будь-яку кількість менш специфічних селекторів. Якщо жодне оголошення не має селектору вищої специфічності, то більша кількість селектору переважає меншу кількість того самого селектору. # --question-- ## --text-- -Which of the following is the correct order of specificity for CSS selectors, from most specific to least specific? +Що з переліченого показує правильний порядок специфічності селекторів CSS (від найбільш специфічного до найменш специфічного)? ## --answers-- -Type selectors, class selectors, ID selectors +Селектори типу, селектори класу, селектори ID --- -ID selectors, class selectors, type selectors +Селектори ID, селектори класу, селектори типу --- -Class selectors, type selectors, ID selectors +Селектори класу, селектори типу, селектори ID --- -ID selectors, type selectors, class selectors +Селектори ID, селектори типу, селектори класу ## --video-solution-- diff --git a/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-c.md b/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-c.md index 8f4d070debf..3b57b092889 100644 --- a/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-c.md +++ b/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-c.md @@ -7,7 +7,7 @@ dashedName: the-cascade-of-css-question-c # --description-- -Let’s take a look at a few quick examples to visualize how specificity works. Consider the following HTML and CSS code: +Розберемо декілька прикладів, щоб зрозуміти специфічність. Розглянемо такий код HTML та CSS: ```html @@ -29,29 +29,29 @@ Let’s take a look at a few quick examples to visualize how specificity works. } ``` -In the example above, both rules are using only class selectors, but rule 2 is more specific because it is using more class selectors. +У прикладі вище обидва правила використовують лише селектори класу, але правило №2 специфічніше, оскільки використовує більше селекторів класу. # --question-- ## --text-- -Based on the given HTML and CSS code, which color would the `
` element be rendered as? +На основі наданого коду HTML та CSS, якого кольору буде елемент `
`? ## --answers-- -blue +синього --- -red +червоного --- -purple +фіолетового --- -black +чорного ## --video-solution-- diff --git a/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-d.md b/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-d.md index b639a12dd99..633e05101aa 100644 --- a/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-d.md +++ b/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-d.md @@ -7,7 +7,7 @@ dashedName: the-cascade-of-css-question-d # --description-- -Now, let’s change things a little bit: +Тепер додамо трішки змін: ```html @@ -29,29 +29,29 @@ Now, let’s change things a little bit: } ``` -In the example above, despite rule 2 having more class selectors than ID selectors, rule 1 is more specific because ID beats class. +Хоча правило №2 у прикладі вище має більше селекторів класу ніж селекторів ID, специфічнішим є правило №1, оскільки ID перемагає клас. # --question-- ## --text-- -Based on the modified HTML and CSS code, which color would the `
` element be rendered as? +На основі зміненого коду HTML та CSS, якого кольору буде елемент `
`? ## --answers-- -orange +оранжевого --- -red +червоного --- -blue +синього --- -cyan +блакитного ## --video-solution-- diff --git a/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-e.md b/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-e.md index edf5f68b2dc..5c5de7c1831 100644 --- a/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-e.md +++ b/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-e.md @@ -20,31 +20,31 @@ dashedName: the-cascade-of-css-question-e } ``` -In this final example, both rules are using ID and class selectors, so neither rule is using a more specific selector than the other. The cascade then checks the amounts of each selector type. Both rules only have one ID selector, but rule 2 has more class selectors, so rule 2 has a higher specificity! +В останньому прикладі обидва правила використовують селектори ID та класу, тому жодне правило не використовує специфічнішого селектора. У такому випадку каскад перевіряє кількість кожного типу селектору. Обидва правила мають по одному селектору ID, але правило №2 має більше селекторів класу, а отже має вищу специфічність! -While the `color: red` declaration would take precedence, the `background-color: yellow` declaration would still be applied since there’s no conflicting declaration for it. +Хоча оголошення `color: red` має перевагу, оголошення `background-color: yellow` все одно буде застосовано, оскільки не виникає конфліктуючого оголошення. # --question-- ## --text-- -Considering the updated CSS code, which of the following describes the rendering of the `
` element? +Враховуючи оновлений код CSS, що з переліченого описує візуалізацію елемента `
`? ## --answers-- -Text color: Red, Background color: Transparent +Колір тексту: червоний, колір фону: прозорий --- -Text color: Red, Background color: Yellow +Колір тексту: червоний, колір фону: жовтий --- -Text color: Blue, Background color: Transparent +Колір тексту: синій, колір фону: прозорий --- -Text color: Blue, Background color: Yellow +Колір тексту: синій, колір фону: жовтий ## --video-solution-- diff --git a/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-f.md b/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-f.md index 0990fae2452..ad084416905 100644 --- a/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-f.md +++ b/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-f.md @@ -19,7 +19,7 @@ dashedName: the-cascade-of-css-question-f } ``` -Here both rule 1 and rule 2 have the same specificity. Rule 1 uses a chaining selector (no space) and rule 2 uses a descendant combinator (the empty space). But both rules have two classes and the combinator symbol itself does not add to the specificity. +Обидва правила мають однакову специфічність. Правило №1 використовує об’єднуючий селектор (немає пробілу), а правило №2 використовує нащадка (є пробіл). Однак обидва правила мають два класи, а символ комбінатора не додає специфічності. ```css /* rule 1 */ @@ -32,15 +32,15 @@ Here both rule 1 and rule 2 have the same specificity. Rule 1 uses a chaining se } ``` -This example shows the same thing. Even though rule 2 is using a child combinator (`>`), this does not change the specificity value. Both rules still have two classes so they have the same specificity values. +Цей приклад показує те саме. Хоча правило №2 використовує дочірній комбінатор (`>`), значення специфічності не змінюється. Обидва правила мають два класи, тому специфічність однакова. -*Note:* Not everything adds to specificity When comparing selectors, you may come across special symbols for the universal selector (`*`) as well as combinators (`+`, `~`, `>`, and an empty space). These symbols do not add any specificity in and of themselves. +*Примітка:* не все впливає на специфічність. Порівнюючи селектори, ви можете наткнутись на спеціальні символи універсального селектора (`*`), а також комбінаторів (`+`, `~`, `>` й пробіл). Такі символи не додають жодної специфічності. # --question-- ## --text-- -Based on the given CSS code, which font size would be applied to elements with the class "class second-class"? +На основі наданого коду CSS, який розмір шрифту буде застосовано до елементів з класом «class second-class»? ## --answers-- diff --git a/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-g.md b/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-g.md index af43c0cff4b..3ab2502d69b 100644 --- a/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-g.md +++ b/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-g.md @@ -7,9 +7,9 @@ dashedName: the-cascade-of-css-question-g # --description-- -Inheritance refers to certain CSS properties that, when applied to an element, are inherited by that element’s descendants, even if we don’t explicitly write a rule for those descendants. Typography based properties (`color`, `font-size`, `font-family`, etc.) are usually inherited, while most other properties aren’t. +Спадковість стосується деяких властивостей CSS, які, застосувавши до елемента, успадковуються нащадками цього елемента, навіть якщо ми не пишемо окреме правило для них. Властивості на основі типографії (`color`, `font-size`, `font-family` тощо) зазвичай успадковуються, а більшість інших властивостей — ні. -The exception to this is when directly targeting an element, as this always beats inheritance: +Виняток лише тоді, коли елемент прямо націлений, оскільки це переважає успадкування: ```html @@ -31,29 +31,29 @@ The exception to this is when directly targeting an element, as this always beat } ``` -Despite the `parent` element having a higher specificity with an ID, the `child` element would have the `color: blue` style applied since that declaration directly targets it, while `color: red` from the parent is only inherited. +Хоча елемент `parent` має вищу специфічність через ID, до елемента `child` буде застосовано стиль `color: blue`, оскільки оголошення прямо націлене на нього, а `color: red` успадковується від батька. # --question-- ## --text-- -Based on the given HTML and CSS code, what would be the color of the `
` element? +На основі наданого коду HTML та CSS, яким буде колір елемента `
`? ## --answers-- -Red +Червоний --- -Blue +Синій --- -Inherited from the parent element +Успадкований від батьківського елемента --- -Transparent +Прозорий ## --video-solution-- diff --git a/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-h.md b/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-h.md index 70128305c25..a94f3ca60b4 100644 --- a/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-h.md +++ b/curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-question-h.md @@ -7,9 +7,9 @@ dashedName: the-cascade-of-css-question-h # --description-- -The final factor, the end of the line, the tie-breaker of the tie-breaker. Let’s say that after every other factor has been taken into account, there are still multiple conflicting rules targeting an element. How does the cascade determine which rule to apply? +Кінцевий фактор, фінішна пряма, остання частина. Уявимо, що після всіх факторів, які ми розглянули, досі виникають конфліктуючі правила, націлені на елемент. Як каскад визначає, яке правило застосувати? -Really simply, actually. Whichever rule was the last defined is the winner. +Насправді дуже просто. Перемагає те правило, яке було визначене останнім. ```css /* styles.css */ @@ -23,28 +23,28 @@ Really simply, actually. Whichever rule was the last defined is the winner. } ``` -For an element that has both the `alert` and `warning` classes, the cascade would run through every other factor, including inheritance (none here) and specificity (neither rule is more specific than the other). Since the `.warning` rule was the last one defined, and no other factor was able to determine which rule to apply, it’s the one that gets applied to the element. +Якщо елемент має класи `alert` та `warning`, каскад розгляне кожен інший фактор, включно зі спадковістю (її тут немає) та специфічністю (жодне правило не переважає над іншими). Оскільки правило `.warning` визначено останнім та жоден інший фактор не зміг визначити, яке правило застосувати, то саме це правило буде застосовано до елемента. # --question-- ## --text-- -What determines which CSS rule is applied when there are conflicting rules targeting the same element? +Що визначає, яке правило CSS застосувати, якщо конфліктуючі правила націлені на один елемент? ## --answers-- -The specificity of the CSS rule. +Специфічність правила CSS. --- -The inheritance hierarchy of the element. +Ієрархія успадкування елемента. --- -The presence of classes or IDs on the element. +Наявність класів чи ID в елемента. --- -The order in which the rules were defined. +Порядок визначення правил. ## --video-solution-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-1-to-100/problem-28-number-spiral-diagonals.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-1-to-100/problem-28-number-spiral-diagonals.md index 172cc47cf84..97bf289209e 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-1-to-100/problem-28-number-spiral-diagonals.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-1-to-100/problem-28-number-spiral-diagonals.md @@ -18,7 +18,7 @@ dashedName: problem-28-number-spiral-diagonals
17
16 15 14
13

-Можна переконатися, що сума чисел по діагоналях дорівнює 101. +Можна довести, що сума чисел по діагоналях дорівнює 101. Чому дорівнює сума чисел по діагоналях у спіралі `n`х`n`, створеній так само? diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-1-to-100/problem-45-triangular-pentagonal-and-hexagonal.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-1-to-100/problem-45-triangular-pentagonal-and-hexagonal.md index 737e529d3cc..30b5315631b 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-1-to-100/problem-45-triangular-pentagonal-and-hexagonal.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-1-to-100/problem-45-triangular-pentagonal-and-hexagonal.md @@ -14,7 +14,7 @@ dashedName: problem-45-triangular-pentagonal-and-hexagonal
П’ятикутні
Pn=n(3n−1)/2
1, 5, 12, 22, 35, ...
Шестикутні
Hn=n(2n−1)
1, 6, 15, 28, 45, ...
-Можна переконатися у тому, що T285 = P165 = H143 = 40755. +Можна довести, що T285 = P165 = H143 = 40755. Знайдіть наступне трикутне число, яке також є п’ятикутним і шестикутним. diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-102-triangle-containment.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-102-triangle-containment.md index 4fff7a1743f..f5faf96b566 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-102-triangle-containment.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-102-triangle-containment.md @@ -19,7 +19,7 @@ const exampleTriangles = [ ]; ``` -Як відомо, перший трикутник містить початок координат, а другий — ні. +Можна довести, що перший трикутник містить початок координат, а другий — ні. Знайдіть кількість трикутників, що містять початок координат, використовуючи масив `triangles` з координатами трикутників. diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-110-diophantine-reciprocals-ii.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-110-diophantine-reciprocals-ii.md index 50830161323..e35bef343ee 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-110-diophantine-reciprocals-ii.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-110-diophantine-reciprocals-ii.md @@ -12,7 +12,7 @@ dashedName: problem-110-diophantine-reciprocals-ii $$\frac{1}{x} + \frac{1}{y} = \frac{1}{n}$$ -Можна перевірити, що за умови `n` = 1260 існує 113 різних розв’язків, і це найменше значення `n`, для якого загальна кількість різних розв’язків перевищує сотню. +Можна довести, що за умови `n` = 1260 існує 113 різних розв’язків, і це найменше значення `n`, за якого загальна кількість різних розв’язків перевищує сотню. Яке найменше значення `n`, для якого кількість розв’язків перевищує чотири мільйони? diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-115-counting-block-combinations-ii.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-115-counting-block-combinations-ii.md index 64c26715a7d..0f5dfdf802b 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-115-counting-block-combinations-ii.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-115-counting-block-combinations-ii.md @@ -16,7 +16,7 @@ dashedName: problem-115-counting-block-combinations-ii Тобто за умови m = 3 видно, що n = 30 є найменшим значенням, для якого функція підрахунку перевищує один мільйон. -Точно так само за умови m = 10 можна перевірити, що $F(10, 56) = 880711$ та $F(10, 57) = 1148904$, тому n = 57 є найменшим значенням, для якого функція підрахунку перевищує один мільйон. +Точно так само за умови m = 10 можна довести, що $F(10, 56) = 880711$ та $F(10, 57) = 1148904$, тому n = 57 є найменшим значенням, за якого функція підрахунку перевищує один мільйон. Дано, що m = 50. Знайдіть найменше значення `n`, за якого функція підрахунку перевищує один мільйон. diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-134-prime-pair-connection.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-134-prime-pair-connection.md index d127ecc7525..8dd79151d0b 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-134-prime-pair-connection.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-134-prime-pair-connection.md @@ -8,7 +8,7 @@ dashedName: problem-134-prime-pair-connection # --description-- -Розглянемо прості числа $p_1 = 19$ та $p_2 = 23$. Можна перевірити, що 1219 є найменшим числом, двома останніми цифрами якого є $p_1$, а також ділиться на $p_2$. +Розглянемо прості числа $p_1 = 19$ та $p_2 = 23$. Можна довести, що 1219 є найменшим числом, двома останніми цифрами якого є $p_1$, а також ділиться на $p_2$. За винятком пари $p_1 = 3$ та $p_2 = 5$, для кожної пари послідовних простих чисел $p_2 > p_1$ існують значення $n$, останніми двома цифрами яких є $p_1$, а $n$ ділиться на $p_2$. Нехай $S$ є найменшим із таких значень $n$. diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-150-searching-a-triangular-array-for-a-sub-triangle-having-minimum-sum.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-150-searching-a-triangular-array-for-a-sub-triangle-having-minimum-sum.md index c529c7084f4..f1aaccd4a75 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-150-searching-a-triangular-array-for-a-sub-triangle-having-minimum-sum.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-150-searching-a-triangular-array-for-a-sub-triangle-having-minimum-sum.md @@ -11,7 +11,7 @@ dashedName: problem-150-searching-a-triangular-array-for-a-sub-triangle-having-m Нам потрібно знайти трикутник, сума чисел якого є найменшою серед інших трикутників у масиві з додатними та від’ємними числами. -У наведеному нижче прикладі можна легко побачити, що виділений трикутник відповідає умові, оскільки його сума дорівнює −42. +У наведеному нижче прикладі можна легко довести, що виділений трикутник відповідає умові, оскільки його сума дорівнює −42. трикутний масив з виділеним трикутником із сумою -42 diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-162-hexadecimal-numbers.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-162-hexadecimal-numbers.md index 0d39d7cd1b1..e5f7c320113 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-162-hexadecimal-numbers.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-162-hexadecimal-numbers.md @@ -12,7 +12,7 @@ dashedName: problem-162-hexadecimal-numbers $$0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F$$ -Шістнадцяткове число, записане десятковими числами, виглядатиме так: $10 \times 16 + 15 = 175$. +Шістнадцяткове число AF, записане десятковими числами, виглядатиме так: $10 \times 16 + 15 = 175$. У тризначних шістнадцяткових числах 10A, 1A0, A10 та A01 наявні цифри 0, 1 та A. @@ -22,7 +22,7 @@ $$0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F$$ Дайте відповідь у вигляді шістнадцяткового числа. -**Note:** (A,B,C,D,E and F in upper case, without any leading or trailing code that marks the number as hexadecimal and without leading zeroes , e.g. 1A3F and not: 1a3f and not 0x1a3f and not $1A3F and not #1A3F and not 0000001A3F) +**Примітка:** (А, В, C, D, E і F у верхньому регістрі, без будь-якого ведучого або плаваючого коду, який позначає число як шістнадцяткове та без ведучих нулів, наприклад, 1A3F, а не: 1a3f, 0x1a3f, $1A3F, #1A3F, 0000001A3F) # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-163-cross-hatched-triangles.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-163-cross-hatched-triangles.md index 714ee4d9cc9..27269aeb240 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-163-cross-hatched-triangles.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-163-cross-hatched-triangles.md @@ -1,6 +1,6 @@ --- id: 5900f40f1000cf542c50ff22 -title: 'Problem 163: Cross-hatched triangles' +title: 'Завдання 163: заштриховані трикутники' challengeType: 1 forumTopicId: 301797 dashedName: problem-163-cross-hatched-triangles @@ -8,15 +8,15 @@ dashedName: problem-163-cross-hatched-triangles # --description-- -Consider an equilateral triangle in which straight lines are drawn from each vertex to the middle of the opposite side, such as in the size 1 triangle in the sketch below. +Розглянемо рівносторонній трикутник, у якому проведені меридіани, як у трикутнику розміру 1 на рисунку нижче. -triangles with size 1 and size 2 +трикутники розміру 1 і розміру 2 -Sixteen triangles of either different shape or size or orientation or location can now be observed in that triangle. Using size 1 triangles as building blocks, larger triangles can be formed, such as the size 2 triangle in the above sketch. One-hundred and four triangles of either different shape or size or orientation or location can now be observed in that size 2 triangle. +Тепер у цьому трикутнику можна знайти шістнадцять трикутників різної форми, розміру, напряму чи розташування. Використовуючи трикутники розміру 1 як будівельні блоки, можна сформувати більші трикутники, такі як трикутник розміру 2 на рисунку вище. Тепер у трикутнику розміру 2 можна знайти сто чотири трикутники різної форми, розміру, напряму чи розташування. -It can be observed that the size 2 triangle contains 4 size 1 triangle building blocks. A size 3 triangle would contain 9 size 1 triangle building blocks and a size $n$ triangle would thus contain $n^2$ size 1 triangle building blocks. +Можна помітити, що трикутник розміру 2 складається з 4 будівельних блоків трикутника розміру 1. Трикутник розміру 3 складатиметься з 9 будівельних блоків трикутника розміру 1, а трикутник розміру $n$ складатиметься з $n^2$ будівельник блоків трикутника розміру 1. -If we denote $T(n)$ as the number of triangles present in a triangle of size $n$, then +Якщо позначити $T(n)$ як кількість трикутників, що містяться в трикутнику розміру $n$, тоді $$\begin{align} & T(1) = 16 \\\\ & T(2) = 104 \end{align}$$ diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-164-numbers-for-which-no-three-consecutive-digits-have-a-sum-greater-than-a-given-value.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-164-numbers-for-which-no-three-consecutive-digits-have-a-sum-greater-than-a-given-value.md index 8b0d4ab3244..14963eaa4dd 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-164-numbers-for-which-no-three-consecutive-digits-have-a-sum-greater-than-a-given-value.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-164-numbers-for-which-no-three-consecutive-digits-have-a-sum-greater-than-a-given-value.md @@ -1,7 +1,7 @@ --- id: 5900f4111000cf542c50ff23 title: >- - Problem 164: Numbers for which no three consecutive digits have a sum greater than a given value + Завдання 164: числа, сума послідовних цифр яких не перевищує задане значення challengeType: 1 forumTopicId: 301798 dashedName: >- @@ -10,7 +10,7 @@ dashedName: >- # --description-- -How many 20 digit numbers $n$ (without any leading zero) exist such that no three consecutive digits of $n$ have a sum greater than 9? +Скільки існує двадцятизначних чисел $n$ (без початкових нулів), сума послідовних цифр яких не перевищує 9? # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-165-intersections.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-165-intersections.md index 2570b39f270..8b60b4e8edd 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-165-intersections.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-165-intersections.md @@ -1,6 +1,6 @@ --- id: 5900f4111000cf542c50ff24 -title: 'Problem 165: Intersections' +title: 'Завдання 165: перетини' challengeType: 1 forumTopicId: 301799 dashedName: problem-165-intersections @@ -8,33 +8,33 @@ dashedName: problem-165-intersections # --description-- -A segment is uniquely defined by its two endpoints. By considering two line segments in plane geometry there are three possibilities: the segments have zero points, one point, or infinitely many points in common. +Відрізок визначається лише двома кінцевими точками. Розглядаючи два відрізки у планіметрії є три варіанти: відрізки не мають спільних точок, мають одну спільну точку або мають нескінченно багато спільних точок. -Moreover when two segments have exactly one point in common it might be the case that that common point is an endpoint of either one of the segments or of both. If a common point of two segments is not an endpoint of either of the segments it is an interior point of both segments. +Крім того, коли два відрізки мають лише одну спільну точку, це може бути той випадок, коли спільною точкою є кінцева точка або одного з відрізків, або обох. Якщо спільна точка двох відрізків не є кінцевою точкою будь-якого із відрізків, то це внутрішня точка обох відрізків. -We will call a common point $T$ of two segments $L_1$ and $L_2$ a true intersection point of $L_1$ and $L_2$ if $T$ is the only common point of $L_1$ and $L_2$ and $T$ is an interior point of both segments. +Назвемо спільну точку $T$ двох відрізків $L_1$ й $L_2$ точкою перетину $L_1$ й $L_2$, якщо $T$ є єдиною спільною точкою $L_1$ й $L_2$, а $T$ є внутрішньою точкою обох відрізків. -Consider the three segments $L_1$, $L_2$, and $L_3$: +Розглянемо три відрізки $L_1$, $L_2$ та $L_3$: -$$\begin{align} & L_1: (27, 44) \\;\text{to}\\; (12, 32) \\\\ - & L_2: (46, 53) \\;\text{to}\\; (17, 62) \\\\ & L_3: (46, 70) \\;\text{to}\\; (22, 40) \\\\ +$$\begin{align} & L_1: від (27, 44) \\;\text{до}\\; (12, 32) \\\\ + & L_2: від (46, 53) \\;\text{до}\\; (17, 62) \\\\ & L_3: від (46, 70) \\;\text{до}\\; (22, 40) \\\\ \end{align}$$ -It can be verified that line segments $L_2$ and $L_3$ have a true intersection point. We note that as the one of the end points of $L_3$: (22, 40) lies on $L_1$ this is not considered to be a true point of intersection. $L_1$ and $L_2$ have no common point. So among the three line segments, we find one true intersection point. +Можна довести, що відрізки $L_2$ та $L_3$ мають точку перетину. Зазначимо, що оскільки одна кінцева точка $L_3$ (22, 40) лежить на $L_1$, вона не являється точкою перетину. $L_1$ та $L_2$ не мають спільних точок. Тому серед трьох відрізків ми знайшли лише одну точку перетину. -Now let us do the same for 5000 line segments. To this end, we generate 20000 numbers using the so-called "Blum Blum Shub" pseudo-random number generator. +Тепер зробимо те саме для 5000 відрізків. З цією метою ми згенеруємо 20000 чисел, використовуючи так званий генератор псевдовипадкових чисел «Blum Blum Shub». $$\begin{align} & s_0 = 290797 \\\\ & s_{n + 1} = s_n × s_n (\text{modulo}\\; 50515093) \\\\ & t_n = s_n (\text{modulo}\\; 500) \\\\ \end{align}$$ -To create each line segment, we use four consecutive numbers $t_n$. That is, the first line segment is given by: +Щоб створити кожен відрізок, ми використовуємо чотири послідовних числа $t_n$. Тобто перший відрізок задано цими координатами: -($_t$1, $t_2$) to ($t_3$, $t_4$) +від ($_t$1, $t_2$) до ($t_3$, $t_4$) -The first four numbers computed according to the above generator should be: 27, 144, 12 and 232. The first segment would thus be (27, 144) to (12, 232). +Перші чотири числа вичислені згідно зі згаданим генератором: 27, 144, 12 та 232. Тобто перший відрізок задається точками (27, 144) та (12, 232). -How many distinct true intersection points are found among the 5000 line segments? +Скільки окремих точок перетину буде знайдено серед 5000 відрізків? # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-166-criss-cross.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-166-criss-cross.md index b72d1b9e8c5..3922d0d03d5 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-166-criss-cross.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-166-criss-cross.md @@ -1,6 +1,6 @@ --- id: 5900f4131000cf542c50ff25 -title: 'Problem 166: Criss Cross' +title: 'Завдання 166: хрест-навхрест' challengeType: 1 forumTopicId: 301800 dashedName: problem-166-criss-cross @@ -8,17 +8,17 @@ dashedName: problem-166-criss-cross # --description-- -A 4x4 grid is filled with digits $d$, $0 ≤ d ≤ 9$. +Таблиця 4x4 заповнена цифрами $d$, $0 ≤ d ≤ 9$. -It can be seen that in the grid +Видно, що в таблиці $$\begin{array}{} 6 & 3 & 3 & 0 \\\\ 5 & 0 & 4 & 3 \\\\ 0 & 7 & 1 & 4 \\\\ 1 & 2 & 4 & 5 \end{array}$$ -the sum of each row and each column has the value 12. Moreover the sum of each diagonal is also 12. +сума кожного рядка та кожного стовпця має значення 12. Крім того, сума кожної діагоналі також дорівнює 12. -In how many ways can you fill a 4x4 grid with the digits $d$, $0 ≤ d ≤ 9$ so that each row, each column, and both diagonals have the same sum? +Скількома способами можна заповнити таблицю 4x4 цифрами $d$, $0 ≤ d ≤ 9$, щоб кожен рядок, кожен стовпець та обидві діагоналі мали однакову суму? # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-167-investigating-ulam-sequences.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-167-investigating-ulam-sequences.md index 7a2e9b7ca73..2f65ca4eb8a 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-167-investigating-ulam-sequences.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-167-investigating-ulam-sequences.md @@ -1,6 +1,6 @@ --- id: 5900f4141000cf542c50ff26 -title: 'Problem 167: Investigating Ulam sequences' +title: 'Завдання 167: вивчення послідовностей Уляма' challengeType: 1 forumTopicId: 301801 dashedName: problem-167-investigating-ulam-sequences @@ -8,13 +8,13 @@ dashedName: problem-167-investigating-ulam-sequences # --description-- -For two positive integers $a$ and $b$, the Ulam sequence $U(a,b)$ is defined by ${U{(a,b)}\_1} = a$, ${U{(a,b)}\_2} = b$ and for $k > 2$, ${U{(a,b)}\_k}$ is the smallest integer greater than ${U{(a,b)}\_{(k-1)}}$ which can be written in exactly one way as the sum of two distinct previous members of $U(a,b)$. +Послідовність Уляма $U(a,b)$ для двох натуральних чисел $a$ та $b$ визначається так: ${U{(a,b)}\_1} = a$, ${U{(a,b)}\_2} = b$, а для $k > 2$, ${U{(a,b)}\_k}$ є найменшим цілим числом, більшим за ${U{(a,b)}\_{(k-1)}}$, що можна записати лише у вигляді суми двох різних попередніх членів $U(a,b)$. -For example, the sequence $U(1,2)$ begins with +Наприклад, послідовність $U(1,2)$ починається з $$1, 2, 3 = 1 + 2, 4 = 1 + 3, 6 = 2 + 4, 8 = 2 + 6, 11 = 3 + 8$$ -5 does not belong to it because $5 = 1 + 4 = 2 + 3$ has two representations as the sum of two previous members, likewise $7 = 1 + 6 = 3 + 4$. +5 не належить сюди, тому що $5 = 1 + 4 = 2 + 3$ має два варіанти написання у вигляді суми двох попередніх членів, як і $7 = 1 + 6 = 3 + 4$. Знайдіть $\sum {U(2, 2n + 1)_k}$ за умови $2 ≤ n ≤ 10$, де $k = {10}^{11}$. diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-168-number-rotations.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-168-number-rotations.md index 0003b5f9a7d..11528dfa48a 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-168-number-rotations.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-168-number-rotations.md @@ -1,6 +1,6 @@ --- id: 5900f4151000cf542c50ff27 -title: 'Problem 168: Number Rotations' +title: 'Завдання 168: обертання чисел' challengeType: 1 forumTopicId: 301802 dashedName: problem-168-number-rotations @@ -8,13 +8,13 @@ dashedName: problem-168-number-rotations # --description-- -Consider the number 142857. We can right-rotate this number by moving the last digit (7) to the front of it, giving us 714285. +Розглянемо число 142857. Ми можемо повернути його праворуч, перемістивши останню цифру (7) на початок, що дасть нам 714285. -It can be verified that $714285 = 5 × 142857$. +Можна довести, що $714285 = 5 × 142857$. -This demonstrates an unusual property of 142857: it is a divisor of its right-rotation. +Це показує незвичайну властивість числа 142857: воно є дільником своєї оберненої версії. -For integer number of digits $a$ and $b$, find the last 5 digits of the sum of all integers $n$, $10^a < n < 10^b$, that have this property. +Для цілої кількості чисел $a$ та $b$, знайдіть останні п’ять цифр суми всіх цілих чисел $n$, $10^a < n < 10^b$, які мають цю властивість. # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-169-exploring-the-number-of-different-ways-a-number-can-be-expressed-as-a-sum-of-powers-of-2.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-169-exploring-the-number-of-different-ways-a-number-can-be-expressed-as-a-sum-of-powers-of-2.md index 58f578d28c6..11ccd86094b 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-169-exploring-the-number-of-different-ways-a-number-can-be-expressed-as-a-sum-of-powers-of-2.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-169-exploring-the-number-of-different-ways-a-number-can-be-expressed-as-a-sum-of-powers-of-2.md @@ -1,7 +1,7 @@ --- id: 5900f4151000cf542c50ff28 title: >- - Problem 169: Exploring the number of different ways a number can be expressed as a sum of powers of 2 + Завдання 169: вивчення кількості різних способів запису числа як суми степенів двійки challengeType: 1 forumTopicId: 301803 dashedName: >- @@ -10,15 +10,15 @@ dashedName: >- # --description-- -Define $f(0)=1$ and $f(n)$ to be the number of different ways $n$ can be expressed as a sum of integer powers of 2 using each power no more than twice. +Визначимо $f(0)=1$ та $f(n)$ як кількість різних способів представити $n$ у вигляді суми степенів числа 2, використовуючи кожен ступінь не більше двох разів. -For example, $f(10)=5$ since there are five different ways to express 10: +Наприклад, $f(10)=5$, оскільки існує п’ять різних способів представити 10: $$\begin{align} & 1 + 1 + 8 \\\\ & 1 + 1 + 4 + 4 \\\\ & 1 + 1 + 2 + 2 + 4 \\\\ & 2 + 4 + 4 \\\\ & 2 + 8 \end{align}$$ -What is $f({10}^{25})$? +Чому дорівнює $f({10}^{25})$? # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-170-find-the-largest-0-to-9-pandigital-that-can-be-formed-by-concatenating-products.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-170-find-the-largest-0-to-9-pandigital-that-can-be-formed-by-concatenating-products.md index c78f5fac241..5df9eee5c51 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-170-find-the-largest-0-to-9-pandigital-that-can-be-formed-by-concatenating-products.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-170-find-the-largest-0-to-9-pandigital-that-can-be-formed-by-concatenating-products.md @@ -1,7 +1,7 @@ --- id: 5900f4161000cf542c50ff29 title: >- - Problem 170: Find the largest 0 to 9 pandigital that can be formed by concatenating products + Завдання 170: знайти найбільше панцифрове число від 0 до 9 при об’єднанні добутків challengeType: 1 forumTopicId: 301805 dashedName: >- @@ -10,16 +10,16 @@ dashedName: >- # --description-- -Take the number 6 and multiply it by each of 1273 and 9854: +Візьміть число 6 та помножте його на 1273 й 9854: $$\begin{align} & 6 × 1273 = 7638 \\\\ & 6 × 9854 = 59124 \\\\ \end{align}$$ -By concatenating these products we get the 1 to 9 pandigital 763859124. We will call 763859124 the "concatenated product of 6 and (1273, 9854)". Notice too, that the concatenation of the input numbers, 612739854, is also 1 to 9 pandigital. +Об’єднавши ці добутки, отримуємо панцифрове число від 1 до 9: 763859124. Назвемо 763859124 об’єднаним добутком 6 та (1273, 9854). Зауважте, що об’єднання трьох вхідних чисел — 612739854 — також утворює панцифрове число від 1 до 9. -The same can be done for 0 to 9 pandigital numbers. +Те ж саме можна зробити для панцифрових чисел від 0 до 9. -What is the largest 0 to 9 pandigital 10-digit concatenated product of an integer with two or more other integers, such that the concatenation of the input numbers is also a 0 to 9 pandigital 10-digit number? +Яке найбільше десятизначне панцифрове число від 0 до 9, яке є об’єднаним добутком цілого числа з двома чи більше іншими цілими числами таким чином, що при об’єднанні вхідних чисел також вийде десятизначне панцифрове число від 0 до 9? # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-171-finding-numbers-for-which-the-sum-of-the-squares-of-the-digits-is-a-square.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-171-finding-numbers-for-which-the-sum-of-the-squares-of-the-digits-is-a-square.md index 0abd23b1040..9739348226a 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-171-finding-numbers-for-which-the-sum-of-the-squares-of-the-digits-is-a-square.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-171-finding-numbers-for-which-the-sum-of-the-squares-of-the-digits-is-a-square.md @@ -1,7 +1,7 @@ --- id: 5900f4181000cf542c50ff2a title: >- - Problem 171: Finding numbers for which the sum of the squares of the digits is a square + Завдання 171: пошук чисел, для яких сума квадратів чисел є квадратом challengeType: 1 forumTopicId: 301806 dashedName: >- @@ -10,13 +10,13 @@ dashedName: >- # --description-- -For a positive integer $n$, let $f(n)$ be the sum of the squares of the digits (in base 10) of $n$, e.g. +Для натурального числа $n$, нехай $f(n)$ є сумою квадратів чисел $n$ (з основою 10). Наприклад: $$\begin{align} & f(3) = 3^2 = 9 \\\\ & f(25) = 2^2 + 5^2 = 4 + 25 = 29 \\\\ & f(442) = 4^2 + 4^2 + 2^2 = 16 + 16 + 4 = 36 \\\\ \end{align}$$ -Find the last nine digits of the sum of all $n$, $0 < n < {10}^{20}$, such that $f(n)$ is a perfect square. +Знайдіть останні дев’ять цифр суми усіх $n$, $0 < n < {10}^{20}$, таких, що $f(n)$ є повним квадратом. # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-172-investigating-numbers-with-few-repeated-digits.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-172-investigating-numbers-with-few-repeated-digits.md index 000cbb3c21a..71a47fb4ef7 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-172-investigating-numbers-with-few-repeated-digits.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-172-investigating-numbers-with-few-repeated-digits.md @@ -1,6 +1,6 @@ --- id: 5900f4181000cf542c50ff2b -title: 'Problem 172: Investigating numbers with few repeated digits' +title: 'Завдання 172: вивчення чисел з кількома повторюваними цифрами' challengeType: 1 forumTopicId: 301807 dashedName: problem-172-investigating-numbers-with-few-repeated-digits @@ -8,7 +8,7 @@ dashedName: problem-172-investigating-numbers-with-few-repeated-digits # --description-- -How many 18-digit numbers $n$ (without leading zeros) are there such that no digit occurs more than three times in $n$? +Скільки існує 18-значних чисел $n$ (без початкових нулів), у яких жодна цифра не зустрічається в $n$ більше трьох разів? # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-174-counting-the-number-of-hollow-square-laminae-that-can-form-one-two-three-...-distinct-arrangements.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-174-counting-the-number-of-hollow-square-laminae-that-can-form-one-two-three-...-distinct-arrangements.md index 2b5fe12d1bd..8a05080087e 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-174-counting-the-number-of-hollow-square-laminae-that-can-form-one-two-three-...-distinct-arrangements.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-174-counting-the-number-of-hollow-square-laminae-that-can-form-one-two-three-...-distinct-arrangements.md @@ -20,7 +20,7 @@ If $t$ represents the number of tiles used, we shall say that $t = 8$ is type $L Let $N(n)$ be the number of $t ≤ 1000000$ such that $t$ is type $L(n)$; for example, $N(15) = 832$. -What is $\sum N(n)$ for $1 ≤ n ≤ 10$? +Чому дорівнює $\sum N(n)$ за умови $1 ≤ n ≤ 10$? # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-178-step-numbers.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-178-step-numbers.md index 75af7cbd49b..6cbcc6b74a0 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-178-step-numbers.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-178-step-numbers.md @@ -1,6 +1,6 @@ --- id: 5900f41e1000cf542c50ff31 -title: 'Problem 178: Step Numbers' +title: 'Завдання 178: крокові числа' challengeType: 1 forumTopicId: 301813 dashedName: problem-178-step-numbers @@ -8,15 +8,15 @@ dashedName: problem-178-step-numbers # --description-- -Consider the number 45656. +Розглянемо число 45656. -It can be seen that each pair of consecutive digits of 45656 has a difference of one. +Зауважимо, що будь-які дві послідовні цифри в 45656 відрізняються на одиницю. -A number for which every pair of consecutive digits has a difference of one is called a step number. +Число, в якому будь-які дві послідовні цифри відрізняються на одиницю, називається кроковим числом. -A pandigital number contains every decimal digit from 0 to 9 at least once. +У панцифровому числі кожна десяткова цифра від 0 до 9 зустрічається хоча б раз. -How many pandigital step numbers less than ${10}^{40}$ are there? +Скільки існує панцифрових крокових чисел, менших за ${10}^{40}$? # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-179-consecutive-positive-divisors.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-179-consecutive-positive-divisors.md index bc2c0e7e66f..e99cda78eaa 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-179-consecutive-positive-divisors.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-179-consecutive-positive-divisors.md @@ -1,6 +1,6 @@ --- id: 5900f41f1000cf542c50ff32 -title: 'Problem 179: Consecutive positive divisors' +title: 'Завдання 179: послідовні додатні дільники' challengeType: 1 forumTopicId: 301814 dashedName: problem-179-consecutive-positive-divisors @@ -8,7 +8,7 @@ dashedName: problem-179-consecutive-positive-divisors # --description-- -Find the number of integers $1 < n < {10}^7$, for which $n$ and $n + 1$ have the same number of positive divisors. For example, 14 has the positive divisors 1, 2, 7, 14 while 15 has 1, 3, 5, 15. +Знайдіть кількість цілих чисел $1 < n < {10}^7$, за яких $n$ та $n + 1$ мають однакову кількість додатних дільників. Наприклад, число 14 має додатні дільники 1, 2, 7 і 14, а число 15 — 1, 3, 5, 15. # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-180-rational-zeros-of-a-function-of-three-variables.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-180-rational-zeros-of-a-function-of-three-variables.md index bf9b160aa9f..0ad5848baa9 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-180-rational-zeros-of-a-function-of-three-variables.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-180-rational-zeros-of-a-function-of-three-variables.md @@ -1,6 +1,6 @@ --- id: 5900f4201000cf542c50ff33 -title: 'Problem 180: Rational zeros of a function of three variables' +title: 'Завдання 180: раціональні нулі функції трьох змінних' challengeType: 1 forumTopicId: 301816 dashedName: problem-180-rational-zeros-of-a-function-of-three-variables @@ -8,20 +8,20 @@ dashedName: problem-180-rational-zeros-of-a-function-of-three-variables # --description-- -For any integer $n$, consider the three functions +Розглянемо три функції для будь-якого цілого числа $n$ $$\begin{align} & f_{1,n}(x,y,z) = x^{n + 1} + y^{n + 1} − z^{n + 1}\\\\ & f_{2,n}(x,y,z) = (xy + yz + zx) \times (x^{n - 1} + y^{n - 1} − z^{n - 1})\\\\ & f_{3,n}(x,y,z) = xyz \times (x^{n - 2} + y^{n - 2} − z^{n - 2}) \end{align}$$ -and their combination +та їхню комбінацію $$\begin{align} & f_n(x,y,z) = f_{1,n}(x,y,z) + f_{2,n}(x,y,z) − f_{3,n}(x,y,z) \end{align}$$ -We call $(x,y,z)$ a golden triple of order $k$ if $x$, $y$, and $z$ are all rational numbers of the form $\frac{a}{b}$ with $0 < a < b ≤ k$ and there is (at least) one integer $n$, so that $f_n(x,y,z) = 0$. +Назвемо $(x,y,z)$ золотою трійкою порядку $k$, якщо $x$, $y$ та $z$ є раціональними числами у вигляді $\frac{a}{b}$, де $0 < a < b ≤ k$ та наявне (принаймні) одне ціле число $n$, щоб $f_n(x,y,z) = 0$. Нехай $s(x,y,z) = x + y + z$. -Let $t = \frac{u}{v}$ be the sum of all distinct $s(x,y,z)$ for all golden triples $(x,y,z)$ of order 35. All the $s(x,y,z)$ and $t$ must be in reduced form. +Нехай $t = \frac{u}{v}$ є сумою всіх різних $s(x,y,z)$ для золотих трійок $(x,y,z)$ порядку 35. Всі $s(x,y,z)$ і $t$ повинні бути в скороченій формі. Знайдіть $u + v$. diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-181-investigating-in-how-many-ways-objects-of-two-different-colours-can-be-grouped.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-181-investigating-in-how-many-ways-objects-of-two-different-colours-can-be-grouped.md index 6ccbf694678..739f3339eca 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-181-investigating-in-how-many-ways-objects-of-two-different-colours-can-be-grouped.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-181-investigating-in-how-many-ways-objects-of-two-different-colours-can-be-grouped.md @@ -1,7 +1,7 @@ --- id: 5900f4231000cf542c50ff34 title: >- - Problem 181: Investigating in how many ways objects of two different colours can be grouped + Завдання 181: скількома способами можна згрупувати об'єкти двох різних кольорів challengeType: 1 forumTopicId: 301817 dashedName: >- @@ -10,11 +10,11 @@ dashedName: >- # --description-- -Having three black objects $B$ and one white object $W$ they can be grouped in 7 ways like this: +Три чорних об’єкти $B$ і один білий об’єкт $W$ можна згрупувати сімома способами: $$(BBBW)\\;(B,BBW)\\;(B,B,BW)\\;(B,B,B,W)\\;(B,BB,W)\\;(BBB,W)\\;(BB,BW)$$ -In how many ways can sixty black objects $B$ and forty white objects $W$ be thus grouped? +Скількома способами можна згрупувати шістдесят чорних об’єктів $B$ та сорок білих об’єктів $W$? # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-182-rsa-encryption.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-182-rsa-encryption.md index 0790b029692..f58d8bccedc 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-182-rsa-encryption.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-182-rsa-encryption.md @@ -24,7 +24,7 @@ For any given `p` and `q`, find the sum of all values of `e`, `1 < e < φ(p,q)` # --hints-- -`RSAEncryption` should be a function. +`RSAEncryption` має бути функцією. ```js assert(typeof RSAEncryption === 'function') diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-185-number-mind.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-185-number-mind.md index 10c7ce29d85..db4074f20b7 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-185-number-mind.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-185-number-mind.md @@ -1,6 +1,6 @@ --- id: 5900f4251000cf542c50ff38 -title: 'Problem 185: Number Mind' +title: 'Завдання 185: number mind' challengeType: 1 forumTopicId: 301821 dashedName: problem-185-number-mind @@ -8,35 +8,35 @@ dashedName: problem-185-number-mind # --description-- -The game Number Mind is a variant of the well known game Master Mind. +Гра «Number Mind» є варіантом відомої гри «Master Mind» (укр. «Бики та корови»). -Instead of coloured pegs, you have to guess a secret sequence of digits. After each guess you're only told in how many places you've guessed the correct digit. So, if the sequence was 1234 and you guessed 2036, you'd be told that you have one correct digit; however, you would NOT be told that you also have another digit in the wrong place. +Замість кольорових кілочків, ви повинні вгадати секретну послідовність цифр. Після кожної спроби вам показують лише ті цифри послідовності, які ви вгадали. Отже, якщо послідовністю була 1234, а ви запропонували 2036, то вам скажуть, що ви вгадали одну цифру. Однак вам НЕ скажуть, що ви вгадали ще одну цифру, але у неправильному місці. -For instance, given the following guesses for a 5-digit secret sequence, +Ось спроби вгадати секретну послідовність з п’яти цифр: -$$\begin{align} & 90342 ;2\\;\text{correct}\\\\ - & 70794 ;0\\;\text{correct}\\\\ & 39458 ;2\\;\text{correct}\\\\ - & 34109 ;1\\;\text{correct}\\\\ & 51545 ;2\\;\text{correct}\\\\ - & 12531 ;1\\;\text{correct} \end{align}$$ +$$\begin{align} & 90342 ;2\\;\text{правильно}\\\\ + & 70794 ;0\\;\text{правильно}\\\\ & 39458 ;2\\;\text{правильно}\\\\ + & 34109 ;1\\;\text{правильно}\\\\ & 51545 ;2\\;\text{правильно}\\\\ + & 12531 ;1\\;\text{правильно} \end{align}$$ -The correct sequence 39542 is unique. +Правильна послідовність 39542 є унікальною. -Based on the following guesses, +Вам надано такі спроби: -$$\begin{align} & 5616185650518293 ;2\\;\text{correct}\\\\ - & 3847439647293047 ;1\\;\text{correct}\\\\ & 5855462940810587 ;3\\;\text{correct}\\\\ - & 9742855507068353 ;3\\;\text{correct}\\\\ & 4296849643607543 ;3\\;\text{correct}\\\\ - & 3174248439465858 ;1\\;\text{correct}\\\\ & 4513559094146117 ;2\\;\text{correct}\\\\ - & 7890971548908067 ;3\\;\text{correct}\\\\ & 8157356344118483 ;1\\;\text{correct}\\\\ - & 2615250744386899 ;2\\;\text{correct}\\\\ & 8690095851526254 ;3\\;\text{correct}\\\\ - & 6375711915077050 ;1\\;\text{correct}\\\\ & 6913859173121360 ;1\\;\text{correct}\\\\ - & 6442889055042768 ;2\\;\text{correct}\\\\ & 2321386104303845 ;0\\;\text{correct}\\\\ - & 2326509471271448 ;2\\;\text{correct}\\\\ & 5251583379644322 ;2\\;\text{correct}\\\\ - & 1748270476758276 ;3\\;\text{correct}\\\\ & 4895722652190306 ;1\\;\text{correct}\\\\ - & 3041631117224635 ;3\\;\text{correct}\\\\ & 1841236454324589 ;3\\;\text{correct}\\\\ - & 2659862637316867 ;2\\;\text{correct} \end{align}$$ +$$\begin{align} & 5616185650518293 ;2\\;\text{правильно}\\\\ + & 3847439647293047 ;1\\;\text{правильно}\\\\ & 5855462940810587 ;3\\;\text{правильно}\\\\ + & 9742855507068353 ;3\\;\text{правильно}\\\\ & 4296849643607543 ;3\\;\text{правильно}\\\\ + & 3174248439465858 ;1\\;\text{правильно}\\\\ & 4513559094146117 ;2\\;\text{правильно}\\\\ + & 7890971548908067 ;3\\;\text{правильно}\\\\ & 8157356344118483 ;1\\;\text{правильно}\\\\ + & 2615250744386899 ;2\\;\text{правильно}\\\\ & 8690095851526254 ;3\\;\text{правильно}\\\\ + & 6375711915077050 ;1\\;\text{правильно}\\\\ & 6913859173121360 ;1\\;\text{правильно}\\\\ + & 6442889055042768 ;2\\;\text{правильно}\\\\ & 2321386104303845 ;0\\;\text{правильно}\\\\ + & 2326509471271448 ;2\\;\text{правильно}\\\\ & 5251583379644322 ;2\\;\text{правильно}\\\\ + & 1748270476758276 ;3\\;\text{правильно}\\\\ & 4895722652190306 ;1\\;\text{правильно}\\\\ + & 3041631117224635 ;3\\;\text{правильно}\\\\ & 1841236454324589 ;3\\;\text{правильно}\\\\ + & 2659862637316867 ;2\\;\text{правильно} \end{align}$$ -Find the unique 16-digit secret sequence. +Знайдіть унікальну секретну послідовність з 16 цифр. # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-186-connectedness-of-a-network.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-186-connectedness-of-a-network.md index c18ff3c3c87..5ae31d119d3 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-186-connectedness-of-a-network.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-186-connectedness-of-a-network.md @@ -1,6 +1,6 @@ --- id: 5900f4281000cf542c50ff39 -title: 'Problem 186: Connectedness of a network' +title: 'Завдання 186: підключення до мережі' challengeType: 1 forumTopicId: 301822 dashedName: problem-186-connectedness-of-a-network @@ -8,26 +8,26 @@ dashedName: problem-186-connectedness-of-a-network # --description-- -Here are the records from a busy telephone system with one million users: +Ось записи із зайнятої телефонної мережі з мільйоном користувачів: -| RecNr | Caller | Called | -| ----- | ------ | ------ | -| 1 | 200007 | 100053 | -| 2 | 600183 | 500439 | -| 3 | 600863 | 701497 | -| ... | ... | ... | +| № | Хто телефонує | Кому телефонують | +| --- | ------------- | ---------------- | +| 1 | 200007 | 100053 | +| 2 | 600183 | 500439 | +| 3 | 600863 | 701497 | +| ... | ... | ... | -The telephone number of the caller and the called number in record $n$ are $Caller(n) = S_{2n - 1}$ and $Called(n) = S_{2n}$ where ${S}_{1,2,3,\ldots}$ come from the "Lagged Fibonacci Generator": +Мобільним номером абонента та набраним номером у записі №$n$ є $Caller(n) = S_{2n - 1}$ та $Called(n) = S_{2n}$, де ${S}_{1,2,3,\ldots}$ утворюються за допомогою генератора Фібоначчі: -For $1 ≤ k ≤ 55$, $S_k = [100003 - 200003k + 300007{k}^3]\\;(\text{modulo}\\;1000000)$ +За умови $1 ≤ k ≤ 55$, $S_k = [100003 - 200003k + 300007{k}^3]\\;(\text{modulo}\\;1000000)$ -For $56 ≤ k$, $S_k = [S_{k - 24} + S_{k - 55}]\\;(\text{modulo}\\;1000000)$ +За умови $56 ≤ k$, $S_k = [S_{k - 24} + S_{k - 55}]\\;(\text{modulo}\\;1000000)$ -If $Caller(n) = Called(n)$ then the user is assumed to have misdialled and the call fails; otherwise the call is successful. +Якщо $Caller(n) = Called(n)$, то вважається, що користувач помилився номером і стався збій виклику. В іншому випадку виклик успішний. -From the start of the records, we say that any pair of users $X$ and $Y$ are friends if $X$ calls $Y$ or vice-versa. Similarly, $X$ is a friend of a friend of $Z$ if $X$ is a friend of $Y$ and $Y$ is a friend of $Z$; and so on for longer chains. +Починаючи з першого запису ми кажемо, що будь-яка пара користувачів $X$ та $Y$ є друзями, якщо $X$ телефонує $Y$ або навпаки. Аналогічно, $X$ є другом друга $Z$, якщо $X$ є другом $Y$ та $Y$ є другом $Z$; і так далі в довших ланцюжках. -The Prime Minister's phone number is 524287. After how many successful calls, not counting misdials, will 99% of the users (including the PM) be a friend, or a friend of a friend etc., of the Prime Minister? +Мобільний номер прем’єр-міністра: 524287. Після скількох успішних викликів, не враховуючи збої викликів, 99% користувачів (включно з прем’єр-міністром) стануть друзями прем’єр-міністра, друзями його друзів і т. д.? # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-187-semiprimes.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-187-semiprimes.md index 36849a5124d..e18790d740a 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-187-semiprimes.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-187-semiprimes.md @@ -1,6 +1,6 @@ --- id: 5900f4291000cf542c50ff3a -title: 'Problem 187: Semiprimes' +title: 'Завдання 187: напівпрості числа' challengeType: 1 forumTopicId: 301823 dashedName: problem-187-semiprimes @@ -8,11 +8,11 @@ dashedName: problem-187-semiprimes # --description-- -A composite is a number containing at least two prime factors. For example, $15 = 3 × 5; 9 = 3 × 3; 12 = 2 × 2 × 3$. +Складене число — це число, яке має принаймні два прості дільники. Наприклад, $15 = 3 × 5; 9 = 3 × 3; 12 = 2 × 2 × 3$. -There are ten composites below thirty containing precisely two, not necessarily distinct, prime factors: 4, 6, 9, 10, 14, 15, 21, 22, 25, 26. +Ось десять складених чисел в межах тридцяти, які мають два прості дільники: 4, 6, 9, 10, 14, 15, 21, 22, 25, 26. -How many composite integers, $n < {10}^8$, have precisely two, not necessarily distinct, prime factors? +Скільки складених чисел $n < {10}^8$ мають два, не обов’язково різні, прості дільники? # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-188-the-hyperexponentiation-of-a-number.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-188-the-hyperexponentiation-of-a-number.md index 6d29da96c30..79b23a9adb3 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-188-the-hyperexponentiation-of-a-number.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-188-the-hyperexponentiation-of-a-number.md @@ -1,6 +1,6 @@ --- id: 5900f4291000cf542c50ff3b -title: 'Problem 188: The hyperexponentiation of a number' +title: 'Завдання 188: гіперпотенціювання числа' challengeType: 1 forumTopicId: 301824 dashedName: problem-188-the-hyperexponentiation-of-a-number @@ -8,13 +8,13 @@ dashedName: problem-188-the-hyperexponentiation-of-a-number # --description-- -The hyperexponentiation or tetration of a number $a$ by a positive integer $b$, denoted by $a↑↑b$ or ${}^ba$, is recursively defined by: +Гіперпотенціювання або тетрація числа $a$ натуральним числом $b$, позначено як $a↑↑b$ чи ${}^ba$, рекурсивно визначається ось так: $a↑↑1 = a$, $a↑↑(k+1) = a^{(a↑↑k)}$. -Thus we have e.g. $3↑↑2 = 3^3 = 27$, hence $3↑↑3 = 3^{27} = 7625597484987$ and $3↑↑4$ is roughly ${10}^{3.6383346400240996 \times {10}^{12}}$. Find the last 8 digits of $1777↑↑1855$. +Таким чином маємо $3↑↑2 = 3^3 = 27$, звідси $3↑↑3 = 3^{27} = 7625597484987$ та $3↑↑4$ приблизно дорівнює ${10}^{3.6383346400240996 \times {10}^{12}}$. Знайдіть останні вісім цифр числа $1777↑↑1855$. # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-189-tri-colouring-a-triangular-grid.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-189-tri-colouring-a-triangular-grid.md index e4d355fbf3a..3fdfedeb7ea 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-189-tri-colouring-a-triangular-grid.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-189-tri-colouring-a-triangular-grid.md @@ -1,6 +1,6 @@ --- id: 5900f4291000cf542c50ff3c -title: 'Problem 189: Tri-colouring a triangular grid' +title: 'Завдання 189: забарвлення трикутної сітки' challengeType: 1 forumTopicId: 301825 dashedName: problem-189-tri-colouring-a-triangular-grid @@ -8,19 +8,19 @@ dashedName: problem-189-tri-colouring-a-triangular-grid # --description-- -Consider the following configuration of 64 triangles: +Розглянемо таку розмітку для 64 трикутників: -64 triangles arranged to create larger triangle with side length of 8 triangles +64 трикутники, розміщені таким чином, що утворюють більший трикутник зі сторонами довжиною у 8 трикутників -We wish to colour the interior of each triangle with one of three colours: red, green or blue, so that no two neighbouring triangles have the same colour. Such a colouring shall be called valid. Here, two triangles are said to be neighbouring if they share an edge. Note: if they only share a vertex, then they are not neighbours. +Ми хочемо заповнити внутрішню область кожного трикутника одним із трьох кольорів (червоним, зеленим чи синім) таким чином, щоб жодні два сусідні трикутники не були однакового кольору. Таке забарвлення вважається допустимим. Два трикутники вважаються сусідніми, якщо вони мають спільне ребро. Примітка: якщо вони мають лише спільну вершину, вони не сусідні. -For example, here is a valid colouring of the above grid: +Наприклад, ось допустиме забарвлення наведеної вище розмітки: -colored grid of 64 triangles +забарвлена розмітка з 64 трикутників -A colouring C' which is obtained from a colouring C by rotation or reflection is considered distinct from C unless the two are identical. +Забарвлення C', отримане за допомогою повороту або відбиття забарвлення C, вважається відмінним від C, якщо вони не ідентичні. -How many distinct valid colourings are there for the above configuration? +Скільки існує різних допустимих забарвлень для наведеної вище розмітки? # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-190-maximising-a-weighted-product.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-190-maximising-a-weighted-product.md index 397b88ad02b..9d0b0ad06a7 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-190-maximising-a-weighted-product.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-190-maximising-a-weighted-product.md @@ -1,6 +1,6 @@ --- id: 5900f42b1000cf542c50ff3d -title: 'Problem 190: Maximising a weighted product' +title: 'Завдання 190: максимізація зваженого добутку' challengeType: 1 forumTopicId: 301828 dashedName: problem-190-maximising-a-weighted-product @@ -8,9 +8,9 @@ dashedName: problem-190-maximising-a-weighted-product # --description-- -Let $S_m = (x_1, x_2, \ldots, x_m)$ be the $m$-tuple of positive real numbers with $x_1 + x_2 + \cdots + x_m = m$ for which $P_m = x_1 \times {x_2}^2 \times \cdots \times {x_m}^m$ is maximised. +Нехай $S_m = (x_1, x_2, \ldots, x_m)$ буде $m$-кортежем натуральних чисел з властивістю $x_1 + x_2 + \cdots + x_m = m$, за яких $P_m = x_1 \times {x_2}^2 \times \cdots \times {x_m}^m$ є максимізованим. -For example, it can be verified that $[P_{10}] = 4112$ ([ ] is the integer part function). +Наприклад, можна довести, що $[P_{10}] = 4112$ ([ ] є функцією цілої частини числа). Знайдіть $\sum {[P_m]}$ за умови $2 ≤ m ≤ 15$. diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-191-prize-strings.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-191-prize-strings.md index 6c110c1a7f0..3d0d46411a7 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-191-prize-strings.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-191-prize-strings.md @@ -1,6 +1,6 @@ --- id: 5900f42b1000cf542c50ff3e -title: 'Problem 191: Prize Strings' +title: 'Завдання 191: призові рядки' challengeType: 1 forumTopicId: 301829 dashedName: problem-191-prize-strings @@ -8,11 +8,11 @@ dashedName: problem-191-prize-strings # --description-- -A particular school offers cash rewards to children with good attendance and punctuality. If they are absent for three consecutive days or late on more than one occasion then they forfeit their prize. +Певна школа пропонує грошові винагороди дітям, що не запізнюються та не пропускають уроків. Якщо дитина відсутня три дні поспіль або запізнюється більше одного разу — вона втрачає приз. -During an n-day period a trinary string is formed for each child consisting of L's (late), O's (on time), and A's (absent). +Протягом n-денного періоду для кожної дитини формується тризначний рядок, що складається з L (late — запізнення), O (on time — вчасно) і A (absent — відсутність). -Although there are eighty-one trinary strings for a 4-day period that can be formed, exactly forty-three strings would lead to a prize: +Хоча за 4 дні можна створити вісімдесят один тризначний рядок, рівно сорок три приведуть до призу: ```markup OOOO OOOA OOOL OOAO OOAA OOAL OOLO OOLA OAOO OAOA @@ -22,7 +22,7 @@ AALO AALA ALOO ALOA ALAO ALAA LOOO LOOA LOAO LOAA LAOO LAOA LAAO ``` -How many "prize" strings exist over a 30-day period? +Скільки «призових рядків» існує для 30-денного періоду? # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-192-best-approximations.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-192-best-approximations.md index 9dfcf2f8728..0b0a57b7ff9 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-192-best-approximations.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-192-best-approximations.md @@ -8,7 +8,7 @@ dashedName: problem-192-best-approximations # --description-- -Let $x$ be a real number. +Нехай $x$ буде дійсним числом. A best approximation to $x$ for the denominator bound $d$ is a rational number $\frac{r}{s}$ in reduced form, with $s ≤ d$, such that any rational number which is closer to $x$ than $\frac{r}{s}$ has a denominator larger than $d$: diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-193-squarefree-numbers.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-193-squarefree-numbers.md index 53c84b39ecf..4c003f89f14 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-193-squarefree-numbers.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-193-squarefree-numbers.md @@ -1,6 +1,6 @@ --- id: 5900f42f1000cf542c50ff41 -title: 'Problem 193: Squarefree Numbers' +title: 'Завдання 193: безквадратні числа' challengeType: 1 forumTopicId: 301831 dashedName: problem-193-squarefree-numbers @@ -8,9 +8,9 @@ dashedName: problem-193-squarefree-numbers # --description-- -A positive integer $n$ is called squarefree, if no square of a prime divides $n$, thus 1, 2, 3, 5, 6, 7, 10, 11 are squarefree, but not 4, 8, 9, 12. +Натуральне число $n$ називають безквадратним, якщо воно не ділиться на жоден квадрат простого числа $n$. Тобто безквадратними є 1, 2, 3, 5, 6, 7, 10, 11, але не 4, 8, 9, 12. -How many squarefree numbers are there below $2^{50}$? +Скільки існує безквадратних чисел менших за $2^{50}$? # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-194-coloured-configurations.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-194-coloured-configurations.md index e66d496a698..d7c4904295e 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-194-coloured-configurations.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-194-coloured-configurations.md @@ -14,9 +14,9 @@ Consider graphs built with the units A: A configuration of type $(a,b,c)$ is a graph thus built of $a$ units A and $b$ units B, where the graph's vertices are coloured using up to $c$ colours, so that no two adjacent vertices have the same colour. The compound graph above is an example of a configuration of type $(2,2,6)$, in fact of type $(2,2,c)$ for all $c ≥ 4$ -Let $N(a,b,c)$ be the number of configurations of type $(a,b,c)$. For example, $N(1,0,3) = 24$, $N(0,2,4) = 92928$ and $N(2,2,3) = 20736$. +Let $N(a,b,c)$ be the number of configurations of type $(a,b,c)$. Наприклад, $N(1,0,3) = 24$, $N(0,2,4) = 92928$ та $N(2,2,3) = 20736$. -Find the last 8 digits of $N(25,75,1984)$. +Знайдіть останні вісім цифр числа $N(25,75,1984)$. # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-196-prime-triplets.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-196-prime-triplets.md index 19ab7b889b9..68bd29f2fcd 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-196-prime-triplets.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-196-prime-triplets.md @@ -1,6 +1,6 @@ --- id: 5900f4301000cf542c50ff42 -title: 'Problem 196: Prime triplets' +title: 'Завдання 196: прості трійки' challengeType: 1 forumTopicId: 301834 dashedName: problem-196-prime-triplets @@ -8,7 +8,7 @@ dashedName: problem-196-prime-triplets # --description-- -Build a triangle from all positive integers in the following way: +Побудуйте трикутник з усіх натуральних чисел таким чином: $$\begin{array}{rrr} & 1 \\\\ & \color{red}{2} & \color{red}{3} \\\\ & 4 & \color{red}{5} & 6 \\\\ @@ -18,15 +18,15 @@ $$\begin{array}{rrr} & 1 \\\\ & 46 & \color{red}{47} & 48 & 49 & 50 & 51 & 52 & \color{red}{53} & 54 & 55 \\\\ & 56 & 57 & 58 & \color{red}{59} & 60 & \color{red}{61} & 62 & 63 & 64 & 65 & 66 \\\\ & \cdots \end{array}$$ -Each positive integer has up to eight neighbours in the triangle. +Кожне натуральне число в трикутнику має до восьми сусідів. -A set of three primes is called a prime triplet if one of the three primes has the other two as neighbours in the triangle. +Множина з трьох простих чисел називається простою трійкою, якщо два числа в трикутнику є сусідами третього. -For example, in the second row, the prime numbers 2 and 3 are elements of some prime triplet. +Наприклад, у другому ряді прості числа 2 і 3 є елементами простої трійки. -If row 8 is considered, it contains two primes which are elements of some prime triplet, i.e. 29 and 31. If row 9 is considered, it contains only one prime which is an element of some prime triplet: 37. +Якщо розглянути восьмий рядок, то він містить два простих числа, які є елементами простої трійки, тобто 29 та 31. Якщо розглянути дев’ятий рядок, то він містить лише одне просте число, яке є елементом простої трійки: 37. -Define $S(n)$ as the sum of the primes in row $n$ which are elements of any prime triplet. Then $S(8) = 60$ and $S(9) = 37$. +Визначимо $S(n)$ як суму простих чисел у рядку №$n$, які є елементами будь-якої простої трійки. Тоді $S(8) = 60$ та $S(9) = 37$. Дано, що $S(10000) = 950007619$. diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-197-investigating-the-behaviour-of-a-recursively-defined-sequence.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-197-investigating-the-behaviour-of-a-recursively-defined-sequence.md index 5fedbe350c6..1927ed3d001 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-197-investigating-the-behaviour-of-a-recursively-defined-sequence.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-197-investigating-the-behaviour-of-a-recursively-defined-sequence.md @@ -1,6 +1,6 @@ --- id: 5900f4311000cf542c50ff44 -title: 'Problem 197: Investigating the behaviour of a recursively defined sequence' +title: 'Завдання 197: вивчення поведінки рекурсивно визначеної послідовності' challengeType: 1 forumTopicId: 301835 dashedName: problem-197-investigating-the-behaviour-of-a-recursively-defined-sequence @@ -8,9 +8,9 @@ dashedName: problem-197-investigating-the-behaviour-of-a-recursively-defined-seq # --description-- -Given is the function $f(x) = ⌊{2}^{30.403243784 - x^2}⌋ × {10}^{-9}$ ( ⌊ ⌋ is the floor-function), the sequence $u_n$ is defined by $u_0 = -1$ and $u_{n + 1} = f(u_n)$. +За даної функції $f(x) = ⌊{2}^{30.403243784 - x^2}⌋ × {10}^{-9}$ ( ⌊ ⌋ є функцією підлоги), послідовність $u_n$ визначена як $u_0 = -1$ та $u_{n + 1} = f(u_n)$. -Знайдіть $u_n + u_{n + 1}$ за умови $n = {10}^{12}$. Give your answer with 9 digits after the decimal point. +Знайдіть $u_n + u_{n + 1}$ за умови $n = {10}^{12}$. Відповідь закругліть до дев’яти цифр після коми. # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-199-iterative-circle-packing.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-199-iterative-circle-packing.md index 8fbeef5b95a..0f88ef852ea 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-199-iterative-circle-packing.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-199-iterative-circle-packing.md @@ -1,6 +1,6 @@ --- id: 5900f4341000cf542c50ff46 -title: 'Problem 199: Iterative Circle Packing' +title: 'Завдання 199: ітеративна укладка кіл' challengeType: 1 forumTopicId: 301837 dashedName: problem-199-iterative-circle-packing @@ -8,13 +8,13 @@ dashedName: problem-199-iterative-circle-packing # --description-- -Three circles of equal radius are placed inside a larger circle such that each pair of circles is tangent to one another and the inner circles do not overlap. There are four uncovered "gaps" which are to be filled iteratively with more tangent circles. +Три кола з однаковим радіусом розміщені всередині більшого кола так, що кожна пара кіл дотична одна до одної, а внутрішні кола не перетинаються. Залишається чотири непокритих «прогалини», які потрібно інтерактивно заповнити дотичними колами. -a diagram of non-overlapping circles +зображення кіл, які не перетинаються -At each iteration, a maximally sized circle is placed in each gap, which creates more gaps for the next iteration. After 3 iterations (pictured), there are 108 gaps and the fraction of the area which is not covered by circles is 0.06790342, rounded to eight decimal places. +При кожній ітерації у прогалині розміщують максимально велике коло, що створює ще більше прогалин для наступної ітерації. Після трьох ітерацій (на малюнку) залишилось 108 прогалин, а частка непокритої площі становить 0.06790342, заокруглено до восьмого знака після коми. -What fraction of the area is not covered by circles after `n` iterations? Give your answer rounded to eight decimal places using the format x.xxxxxxxx . +Яка частка площі залишається непокритою після `n` ітерацій? Дайте відповідь, округлену до восьми знаків після коми у форматі x.xxxxxxxx. # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-200-find-the-200th-prime-proof-sqube-containing-the-contiguous-sub-string-200.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-200-find-the-200th-prime-proof-sqube-containing-the-contiguous-sub-string-200.md index e20a52f129b..8908ca0c0fe 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-200-find-the-200th-prime-proof-sqube-containing-the-contiguous-sub-string-200.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-101-to-200/problem-200-find-the-200th-prime-proof-sqube-containing-the-contiguous-sub-string-200.md @@ -1,7 +1,7 @@ --- id: 5900f4351000cf542c50ff47 title: >- - Problem 200: Find the 200th prime-proof sqube containing the contiguous sub-string "200" + Завдання 200: знайти 200-й простостійкий ск’юб, який містить підрядок «200» challengeType: 1 forumTopicId: 301840 dashedName: >- @@ -10,15 +10,15 @@ dashedName: >- # --description-- -We shall define a sqube to be a number of the form, ${p^2}{q^3}$, where $p$ and $q$ are distinct primes. +Визначимо ск’юб як число у вигляді ${p^2}{q^3}$, де $p$ та $q$ є різними простими числами. -For example, $200 = {5^2}{2^3}$ or $120072949 = {{23}^2}{{61}^3}$. +Наприклад, $200 = {5^2}{2^3}$ або $120072949 = {{23}^2}{{61}^3}$. -The first five squbes are 72, 108, 200, 392, and 500. +Першими п’ятьма ск’юбами є 72, 108, 200, 392 та 500. -Interestingly, 200 is also the first number for which you cannot change any single digit to make a prime; we shall call such numbers, prime-proof. The next prime-proof sqube which contains the contiguous sub-string `200` is 1992008. +Цікаво, що 200 також є першим числом, у якому ви не можете змінити жодну цифру, що утворити просте число. Такі числа називають простостійкими. Наступним простостійким ск’юбом, який містить підрядок `200`, є 1992008. -Find the 200th prime-proof sqube containing the contiguous sub-string `200`. +Знайдіть 200-й простостійкий ск’юб, який містить підрядок `200`. # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-210-obtuse-angled-triangles.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-210-obtuse-angled-triangles.md index 7b22b6b274c..d703ebdf95e 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-210-obtuse-angled-triangles.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-210-obtuse-angled-triangles.md @@ -16,7 +16,7 @@ Let $N(r)$ be the number of points $B$ in $S(r)$, so that the triangle $OBC$ has So, for example, $N(4)=24$ and $N(8)=100$. -What is $N(1\\,000\\,000\\,000)$? +Чому дорівнює $N(1\\,000\\,000\\,000)$? # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-219-skew-cost-coding.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-219-skew-cost-coding.md index eaaefe78b69..ae3d8d01c75 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-219-skew-cost-coding.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-219-skew-cost-coding.md @@ -20,7 +20,7 @@ $$0000, 0001, 001, 01, 10, 11$$ Now suppose that it costs one penny to transmit a '0' bit, but four pence to transmit a '1'. Then the total cost of the prefix-free code shown above is 35 pence, which happens to be the cheapest possible for the skewed pricing scheme in question. In short, we write $Cost(6) = 35$. -What is $Cost(10^9)$? +Чому дорівнює $Cost(10^9)$? # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-229-four-representations-using-squares.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-229-four-representations-using-squares.md index 97e9d20cbca..0cf26db4593 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-229-four-representations-using-squares.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-229-four-representations-using-squares.md @@ -8,7 +8,7 @@ dashedName: problem-229-four-representations-using-squares # --description-- -Consider the number 3600. It is very special, because +Розглянемо число 3600. It is very special, because $$\begin{align} & 3600 = {48}^2 + {36}^2 \\\\ & 3600 = {20}^2 + {2×40}^2 \\\\ & 3600 = {30}^2 + {3×30}^2 \\\\ diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-237-tours-on-a-4-x-n-playing-board.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-237-tours-on-a-4-x-n-playing-board.md index 598c68ecdf1..449af5d4392 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-237-tours-on-a-4-x-n-playing-board.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-237-tours-on-a-4-x-n-playing-board.md @@ -19,7 +19,7 @@ The diagram shows one tour over a 4 × 10 board: one tour over 4 x 10 board -$T(10)$ is 2329. What is $T({10}^{12})$ modulo ${10}^8$? +$T(10)$ is 2329. Чому дорівнює $T({10}^{12})$ modulo ${10}^8$? # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-254-sums-of-digit-factorials.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-254-sums-of-digit-factorials.md index e4db2542f01..39dfc3badbd 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-254-sums-of-digit-factorials.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-254-sums-of-digit-factorials.md @@ -18,7 +18,7 @@ Define $sg(i)$ as the sum of the digits of $g(i)$. So $sg(5) = 2 + 5 = 7$. Further, it can be verified that $g(20)$ is 267 and $\sum sg(i)$ for $1 ≤ i ≤ 20$ is 156. -What is $\sum sg(i)$ for $1 ≤ i ≤ 150$? +Чому дорівнює $\sum sg(i)$ за умови $1 ≤ i ≤ 150$? # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-263-an-engineers-dream-come-true.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-263-an-engineers-dream-come-true.md index c68db942c00..b0138cde0fb 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-263-an-engineers-dream-come-true.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-263-an-engineers-dream-come-true.md @@ -8,7 +8,7 @@ dashedName: problem-263-an-engineers-dream-come-true # --description-- -Consider the number 6. The divisors of 6 are: 1,2,3 and 6. +Розглянемо число 6. The divisors of 6 are: 1,2,3 and 6. Every number from 1 up to and including 6 can be written as a sum of distinct divisors of 6: diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-269-polynomials-with-at-least-one-integer-root.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-269-polynomials-with-at-least-one-integer-root.md index cfd6f8af5cd..419daa0ce77 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-269-polynomials-with-at-least-one-integer-root.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-269-polynomials-with-at-least-one-integer-root.md @@ -22,9 +22,9 @@ We can see that: Define $Z(k)$ as the number of positive integers, $n$, not exceeding $k$ for which the polynomial $P_n$ has at least one integer root. -It can be verified that $Z(100\\,000)$ is 14696. +Можна довести, що $Z(100\\,000)$ дорівнює 14696. -What is $Z({10}^{16})$? +Чому дорівнює $Z({10}^{16})$? # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-270-cutting-squares.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-270-cutting-squares.md index 7b235e2d315..06f66f93a3f 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-270-cutting-squares.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-201-to-300/problem-270-cutting-squares.md @@ -18,7 +18,7 @@ Counting any reflections or rotations as distinct, we call $C(N)$ the number of ways to cut 2x2 square, counting reflections and rotations as distinct -What is $C(30)\bmod {10}^8$ ? +Чому дорівнює $C(30)\bmod {10}^8$ ? # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-312-cyclic-paths-on-sierpiski-graphs.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-312-cyclic-paths-on-sierpiski-graphs.md index f664fc822f9..f956550e7a0 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-312-cyclic-paths-on-sierpiski-graphs.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-312-cyclic-paths-on-sierpiski-graphs.md @@ -17,7 +17,7 @@ Let $C(n)$ be the number of cycles that pass exactly once through all the vertic eight cycles that pass exactly once through all vertices of S_3 -It can also be verified that: +Також можна довести, що: $$\begin{align} & C(1) = C(2) = 1 \\\\ & C(5) = 71\\,328\\,803\\,586\\,048 \\\\ & C(10 000)\bmod {10}^8 = 37\\,652\\,224 \\\\ diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-313-sliding-game.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-313-sliding-game.md index 633364d31c1..f90f6678fc2 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-313-sliding-game.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-313-sliding-game.md @@ -12,7 +12,7 @@ In a sliding game a counter may slide horizontally or vertically into an empty s completing game in five moves on grid 2x2 -Let $S(m, n)$ represent the minimum number of moves to complete the game on an $m$ by $n$ grid. For example, it can be verified that $S(5, 4) = 25$. +Let $S(m, n)$ represent the minimum number of moves to complete the game on an $m$ by $n$ grid. Наприклад, можна довести, що $S(5, 4) = 25$. initial grid state and final grid state for game on grid 5x4 diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-323-bitwise-or-operations-on-random-integers.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-323-bitwise-or-operations-on-random-integers.md index 77eecc1a2ef..4805befb63c 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-323-bitwise-or-operations-on-random-integers.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-323-bitwise-or-operations-on-random-integers.md @@ -17,7 +17,7 @@ For the sequence $x_i$ the following recursion is given: It can be seen that eventually there will be an index $N$ such that $x_i = 2^{32} - 1$ (a bit-pattern of all ones) for all $i ≥ N$. -Find the expected value of $N$. Give your answer rounded to 10 digits after the decimal point. +Find the expected value of $N$. Відповідь закругліть до десяти цифр після коми. # --hints-- diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-335-gathering-the-beans.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-335-gathering-the-beans.md index a57c225071c..92b1df15d90 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-335-gathering-the-beans.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-335-gathering-the-beans.md @@ -14,7 +14,7 @@ Whenever Peter feels bored, he places some bowls, containing one bean each, in a So with 5 bowls it takes Peter 15 moves to return to the initial situation. -Let $M(x)$ represent the number of moves required to return to the initial situation, starting with $x$ bowls. Thus, $M(5) = 15$. It can also be verified that $M(100) = 10920$. +Let $M(x)$ represent the number of moves required to return to the initial situation, starting with $x$ bowls. Thus, $M(5) = 15$. Також можна довести, що $M(100) = 10920$. Знайдіть $\displaystyle\sum_{k = 0}^{{10}^{18}} M(2^k + 1)$. Give your answer modulo $7^9$. diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-342-the-totient-of-a-square-is-a-cube.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-342-the-totient-of-a-square-is-a-cube.md index e89be346215..0de9b260420 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-342-the-totient-of-a-square-is-a-cube.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-342-the-totient-of-a-square-is-a-cube.md @@ -8,7 +8,7 @@ dashedName: problem-342-the-totient-of-a-square-is-a-cube # --description-- -Consider the number 50. +Розглянемо число 50. ${50}^2 = 2500 = 2^2 × 5^4$, so $φ(2500) = 2 × 4 × 5^3 = 8 × 5^3 = 2^3 × 5^3$. $φ$ denotes Euler's totient function. diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-362-squarefree-factors.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-362-squarefree-factors.md index e38c7ecdfdd..a0a6a7f5954 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-362-squarefree-factors.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-362-squarefree-factors.md @@ -8,7 +8,7 @@ dashedName: problem-362-squarefree-factors # --description-- -Consider the number 54. +Розглянемо число 54. 54 can be factored in 7 distinct ways into one or more factors larger than 1: diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-374-maximum-integer-partition-product.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-374-maximum-integer-partition-product.md index 006be44a666..fbb81dea69f 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-374-maximum-integer-partition-product.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-374-maximum-integer-partition-product.md @@ -22,7 +22,7 @@ So $f(5) = 6$ and $m(5) = 2$. For $n = 10$ the partition with the largest product is $10 = 2 + 3 + 5$, which gives $f(10) = 30$ and $m(10) = 3$. And their product, $f(10) \times m(10) = 30 \times 3 = 90$ -It can be verified that $\sum f(n) \times m(n)$ for $1 ≤ n ≤ 100 = 1\\,683\\,550\\,844\\,462$. +Можна довести, що $\sum f(n) \times m(n)$ за умови $1 ≤ n ≤ 100 = 1\\,683\\,550\\,844\\,462$. Знайдіть $\sum f(n) \times m(n)$ за умови $1 ≤ n ≤ {10}^{14}$. Give your answer modulo $982\\,451\\,653$, the 50 millionth prime. diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-381-prime-k-factorial.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-381-prime-k-factorial.md index c94b9902073..d17572f370a 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-381-prime-k-factorial.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-381-prime-k-factorial.md @@ -16,7 +16,7 @@ $$(7 - 1)! + (7 - 2)! + (7 - 3)! + (7 - 4)! + (7 - 5)! = 6! + 5! + 4! + 3! + 2! As $872\bmod (7) = 4$, $S(7) = 4$. -It can be verified that $\sum S(p) = 480$ for $5 ≤ p < 100$. +Можна довести, що $\sum S(p) = 480$ за умови $5 ≤ p < 100$. Знайдіть $\sum S(p)$ за умови $5 ≤ p < {10}^8$. diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-383-divisibility-comparison-between-factorials.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-383-divisibility-comparison-between-factorials.md index 86a8ea61309..288b7aeeccc 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-383-divisibility-comparison-between-factorials.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-383-divisibility-comparison-between-factorials.md @@ -14,7 +14,7 @@ For example, $f_5(625\\,000) = 7$. Let $T_5(n)$ be the number of integers $i$ which satisfy $f_5((2 \times i - 1)!) < 2 \times f_5(i!)$ and $1 ≤ i ≤ n$. -It can be verified that $T_5({10}^3) = 68$ and $T_5({10}^9) = 2\\,408\\,210$. +Можна довести, що $T_5({10}^3) = 68$ та $T_5({10}^9) = 2\\,408\\,210$. Знайдіть $T_5({10}^{18})$. diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-385-ellipses-inside-triangles.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-385-ellipses-inside-triangles.md index 293701acd90..0fecb3f398e 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-385-ellipses-inside-triangles.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-385-ellipses-inside-triangles.md @@ -21,7 +21,7 @@ Let $A(n)$ be the sum of the areas of all such triangles. For example, if $n = 8$, there are two such triangles. Their vertices are (-4,-3), (-4,3), (8,0) and (4,3), (4,-3), (-8,0), and the area of each triangle is 36. Thus $A(8) = 36 + 36 = 72$. -It can be verified that $A(10) = 252$, $A(100) = 34\\,632$ and $A(1000) = 3\\,529\\,008$. +Можна довести, що $A(10) = 252$, $A(100) = 34\\,632$ та $A(1000) = 3\\,529\\,008$. Знайдіть $A(1\\,000\\,000\\,000)$. diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-394-eating-pie.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-394-eating-pie.md index 2317988407a..b96fb30acf4 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-394-eating-pie.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-394-eating-pie.md @@ -21,7 +21,7 @@ When less than a fraction $F$ of pie remains, he does not repeat this procedure. animation of pie slicing procedure -For $x ≥ 1$, let $E(x)$ be the expected number of times Jeff repeats the procedure above with $F = \frac{1}{x}$. It can be verified that $E(1) = 1$, $E(2) ≈ 1.2676536759$, and $E(7.5) ≈ 2.1215732071$. +For $x ≥ 1$, let $E(x)$ be the expected number of times Jeff repeats the procedure above with $F = \frac{1}{x}$. Можна довести, що $E(1) = 1$, $E(2) ≈ 1.2676536759$ та $E(7.5) ≈ 2.1215732071$. Find $E(40)$ rounded to 10 decimal places behind the decimal point. diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-396-weak-goodstein-sequence.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-396-weak-goodstein-sequence.md index 36a5a0c31f6..2c7d352cd6a 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-396-weak-goodstein-sequence.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-301-to-400/problem-396-weak-goodstein-sequence.md @@ -28,9 +28,9 @@ It can be shown that every weak Goodstein sequence terminates. Let $G(n)$ be the number of nonzero elements in the $n$th weak Goodstein sequence. -It can be verified that $G(2) = 3$, $G(4) = 21$ and $G(6) = 381$. +Можна довести, що $G(2) = 3$, $G(4) = 21$ та $G(6) = 381$. -It can also be verified that $\sum G(n) = 2517$ for $1 ≤ n < 8$. +Також можна довести, що $\sum G(n) = 2517$ за умови $1 ≤ n < 8$. Знайдіть останні дев’ять цифр $\sum G(n)$ за умови $1 ≤ n < 16$. diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-404-crisscross-ellipses.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-404-crisscross-ellipses.md index 246064611bd..d2891d5fc3d 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-404-crisscross-ellipses.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-404-crisscross-ellipses.md @@ -22,7 +22,7 @@ For example, (209, 247, 286) is a canonical ellipsoidal triplet. Let $C(N)$ be the number of distinct canonical ellipsoidal triplets ($a$, $b$, $c$) for $a ≤ N$. -It can be verified that $C({10}^3) = 7$, $C({10}^4) = 106$ and $C({10}^6) = 11\\,845$. +Можна довести, що $C({10}^3) = 7$, $C({10}^4) = 106$ та $C({10}^6) = 11\\,845$. Знайдіть $C({10}^{17})$. diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-408-admissible-paths-through-a-grid.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-408-admissible-paths-through-a-grid.md index 4591fd07bf5..c6e9f85300f 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-408-admissible-paths-through-a-grid.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-408-admissible-paths-through-a-grid.md @@ -14,7 +14,7 @@ For example, (9, 16) is inadmissible, while (0, 4), (3, 1) and (9, 4) are not. Consider a path from point ($x_1$, $y_1$) to point ($x_2$, $y_2$) using only unit steps north or east. Let's call such a path admissible if none of its intermediate points are inadmissible. -Let $P(n)$ be the number of admissible paths from (0, 0) to ($n$, $n$). It can be verified that $P(5) = 252$, $P(16) = 596\\,994\\,440$ and $P(1\\,000)\bmod 1\\,000\\,000\\,007 = 341\\,920\\,854$. +Let $P(n)$ be the number of admissible paths from (0, 0) to ($n$, $n$). Можна довести, що $P(5) = 252$, $P(16) = 596\\,994\\,440$ та $P(1\\,000)\bmod 1\\,000\\,000\\,007 = 341\\,920\\,854$. Знайдіть $P(10\\,000\\,000)\bmod 1\\,000\\,000\\,007$. diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-411-uphill-paths.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-411-uphill-paths.md index dcd2f66307b..1a446bfe324 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-411-uphill-paths.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-411-uphill-paths.md @@ -18,7 +18,7 @@ For example, if $n = 22$, there are 11 distinct stations, and a valid path can p valid path passing through 5 stations, for n = 22, with 11 distinct stations -It can also be verified that $S(123) = 14$ and $S(10\\,000) = 48$. +Також можна довести, що $S(123) = 14$ та $S(10\\,000) = 48$. Знайдіть $\sum S(k^5)$ за умови $1 ≤ k ≤ 30$. diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-412-gnomon-numbering.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-412-gnomon-numbering.md index ecbe83b1d1e..1918edf7e0a 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-412-gnomon-numbering.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-412-gnomon-numbering.md @@ -20,7 +20,7 @@ For example, here are two valid numberings of $L(5, 3)$: two valid numberings of L(5, 3) -Let $LC(m, n)$ be the number of valid numberings of $L(m, n)$. It can be verified that $LC(3, 0) = 42$, $LC(5, 3) = 250\\,250$, $LC(6, 3) = 406\\,029\\,023\\,400$ and $LC(10, 5)\bmod 76\\,543\\,217 = 61\\,251\\,715$. +Let $LC(m, n)$ be the number of valid numberings of $L(m, n)$. Можна довести, що $LC(3, 0) = 42$, $LC(5, 3) = 250\\,250$, $LC(6, 3) = 406\\,029\\,023\\,400$ та $LC(10, 5)\bmod 76\\,543\\,217 = 61\\,251\\,715$. Знайдіть $LC(10\\,000, 5\\,000)\bmod 76\\,543\\,217$. diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-415-titanic-sets.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-415-titanic-sets.md index bc3a3114f7a..ec327ee38d8 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-415-titanic-sets.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-415-titanic-sets.md @@ -14,7 +14,7 @@ An example of a titanic set is $S = \\{(0, 0), (0, 1), (0, 2), (1, 1), (2, 0), ( On the other hand, the set {(0, 0), (1, 1), (2, 2), (4, 4)} is not a titanic set since the line passing through any two points in the set also passes through the other two. -For any positive integer $N$, let $T(N)$ be the number of titanic sets $S$ whose every point ($x$, $y$) satisfies $0 ≤ x$, $y ≤ N$. It can be verified that $T(1) = 11$, $T(2) = 494$, $T(4) = 33\\,554\\,178$, $T(111)\bmod {10}^8 = 13\\,500\\,401$ and $T({10}^5)\bmod {10}^8 = 63\\,259\\,062$. +For any positive integer $N$, let $T(N)$ be the number of titanic sets $S$ whose every point ($x$, $y$) satisfies $0 ≤ x$, $y ≤ N$. Можна довести, що $T(1) = 11$, $T(2) = 494$, $T(4) = 33\\,554\\,178$, $T(111)\bmod {10}^8 = 13\\,500\\,401$ та $T({10}^5)\bmod {10}^8 = 63\\,259\\,062$. Знайдіть $T({10}^{11})\bmod {10}^8$. diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-451-modular-inverses.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-451-modular-inverses.md index e6c252912b9..931ce309825 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-451-modular-inverses.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-451-modular-inverses.md @@ -8,7 +8,7 @@ dashedName: problem-451-modular-inverses # --description-- -Consider the number 15. +Розглянемо число 15. There are eight positive numbers less than 15 which are coprime to 15: 1, 2, 4, 7, 8, 11, 13, 14. diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-453-lattice-quadrilaterals.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-453-lattice-quadrilaterals.md index 28ae1886fb9..5f6095e3a35 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-453-lattice-quadrilaterals.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-453-lattice-quadrilaterals.md @@ -16,7 +16,7 @@ For example, $Q(2, 2) = 94$ as can be seen below: 94 quadrilaterals whose vertices are lattice points with coordinates (x, y) satiffying 0 ≤ x ≤ m and 0 ≤ y ≤ n -It can also be verified that $Q(3, 7) = 39\\,590$, $Q(12, 3) = 309\\,000$ and $Q(123, 45) = 70\\,542\\,215\\,894\\,646$. +Можна довести, що $Q(3, 7) = 39\\,590$, $Q(12, 3) = 309\\,000$ та $Q(123, 45) = 70\\,542\\,215\\,894\\,646$. Знайдіть $Q(12\\,345, 6\\,789)\bmod 135\\,707\\,531$. diff --git a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-461-almost-pi.md b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-461-almost-pi.md index 22b5e8c7061..964d455843c 100644 --- a/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-461-almost-pi.md +++ b/curriculum/challenges/ukrainian/18-project-euler/project-euler-problems-401-to-480/problem-461-almost-pi.md @@ -20,7 +20,7 @@ You are given `almostPi(200)` = 62 + 752 + 892 # --hints-- -`almostPi` should be a function. +`almostPi` має бути функцією. ```js assert(typeof almostPi === 'function')