{ "metadata": { "language": "ruby", "name": "", "signature": "sha256:aac9136852eb5266549424d875f47c07e8884cefe39785f282de1c498d59cceb" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "\u0141a\u0144cuchy znak\u00f3w" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Cudzys\u0142owy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wy\u015bwietl na ektranie \u0142a\u0144cuch znak\u00f3w otoczony podw\u00f3jnymi cudzys\u0142owami `\"`. U\u017cyj znaku w-ty\u0142-ciach `\\` aby wprowadzi\u0107 znaki specjalne, np.:\n", "* `\\n` - znak nowej linii\n", "* `\\t` - znak tabulacji poziomej\n", "* `\\v` - znak tabulacji pionowej\n", "\n", "Przyk\u0142ad\n", "```ruby\n", "puts \"Ala ma kota.\\nAnia ma psa.\"\n", "```" ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wy\u015bwietl \u0142a\u0144cuch znak\u00f3w otoczony pojedynczymi cudzys\u0142owami `'`. Sprawd\u017a dzia\u0142anie znaku `\\`.\n", "\n", "Przyk\u0142ad\n", "\n", "```ruby\n", "puts 'Ala ma kota.\\nAnia ma psa.'\n", "```" ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 16 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Zadanie 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Stw\u00f3rz napis kt\u00f3ry wy\u015bwietla si\u0119 w trzech liniach." ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Zadanie 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Stw\u00f3rz napis w kt\u00f3rym wyst\u0119puje podw\u00f3jny cudzys\u0142\u00f3w." ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Interpolacja" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "W Rubim aby wstawi\u0107 warto\u015b\u0107 zmiennej do \u0142a\u0144cucha mo\u017cna u\u017cy\u0107 _interpolacji_. Korzystaj\u0105c z sekwencji #{} mo\u017cna do \u0142a\u0144cucha wstawi\u0107 dowolny kod Rubiego.\n", "\n", "Sprawd\u017a dzia\u0142anie interpolacji z wykorzystaniem zmiennych.\n", "\n", "Przyk\u0142ad\n", "```ruby\n", "imie = \"Aniu\"\n", "puts \"Witaj #{imie}\"\n", "```" ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 18 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Podobny efekt mo\u017cna uzyska\u0107 za pomoc\u0105 operatora dodawania `+`. \n", "\n", "Przyk\u0142ad\n", "```ruby\n", "imie = \"Aniu\"\n", "puts \"Witaj \" + imie\n", "```" ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 20 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Istnieje jednak istotna r\u00f3\u017cnica pomi\u0119dzy tymi narz\u0119dziami. W przypadku interpolacji zawsze niejawnie nast\u0119puje zamiana warto\u015bci\n", "na \u0142a\u0144cuch znak\u00f3w. W przypadku dodawania nic takiego si\u0119 nie dzieje, wi\u0119c warto\u015b\u0107 musi ju\u017c by\u0107 \u0142a\u0144cuchem.\n", " \n", "Spr\u00f3buj wykona\u0107 nast\u0119puj\u0105cy kod:\n", "```ruby\n", "imie = \"Aniu\"\n", "puts \"Witaj \" + imie\n", "liczba = 2\n", "puts \"Witaj \" + liczba\n", "```" ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 22 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Aby weliminowa\u0107 wyst\u0119puj\u0105cy problem, konieczne jest wcze\u015bniejsze zamienienie liczby na \u0142a\u0144cuch znak\u00f3w.\n", "S\u0142u\u017cy do tego metoda `to_s`.\n", "\n", "Przyk\u0142ad\n", "```ruby\n", "liczba = 2\n", "puts \"Witaj \" + liczba.to_s\n", "```" ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "W przypadku interpolacji metoda `to_s` jest wywo\u0142ywana niejawnie. Je\u015bli zatem umieszczasz warto\u015bci r\u00f3\u017cnych zmiennych w napisie,\n", "pro\u015bciej jest u\u017cy\u0107 interpolacji.\n", "\n", "Jednak\u017ce interpolacja nie dzia\u0142a w przypadku \u0142a\u0144cuch\u00f3w otoczonych pojedynczymi cudzys\u0142owami.\n", "\n", "Przyk\u0142ad\n", "```ruby\n", "liczba = 2\n", "puts 'Witaj #{liczba}'\n", "```" ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Zadanie 3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Obliczy wynik podzielenia 777 przez 11. Wynik wy\u015bwietl w postaci komunikatu: \"Wynik dzielenia 777 przez 11 to:...\"" ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Dokumenty zagnie\u017cd\u017cone" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Czasami w programie przydatne jest u\u017cycie \u0142a\u0144cucha sk\u0142adaj\u0105cego si\u0119 z wielu wierszy. \n", "Mo\u017cna to zrobi\u0107 nast\u0119puj\u0105co:\n", "\n", "```ruby\n", "napis = \"Ala ma kota.\\nAnia ma psa.\\nOla ma szynszyle\"\n", "```\n", "\n", "Wygodniej jest jednak u\u017cy\u0107 dokument\u00f3w zagnie\u017cd\u017conych. Dokument taki zaczyna si\u0119\u00a0od sekwencji `<<`, po kt\u00f3rej pojawia si\u0119 \u0142a\u0144cuch znak\u00f3w, oznaczaj\u0105cy koniec - _znacznik ko\u0144ca_. Ca\u0142y tekst, a\u017c do wyst\u0105pienia znacznika ko\u0144ca, traktowany jest jak pojedynczy \u0142a\u0144cuch oddzielony znakami nowej linii.\n", "\n", "Przyk\u0142ad\n", "```\n", "tekst = <