Thanks to visit codestin.com
Credit goes to pt.scribd.com

0% acharam este documento útil (0 voto)
160 visualizações8 páginas

Algoritmos Swift

1) O documento discute conceitos básicos de programação em Swift, incluindo variáveis, tipos de dados, operadores e estruturas de controle. 2) São apresentados tipos primitivos, operadores aritméticos, lógicos e de comparação, além de estruturas como if/else, switch e loops. 3) O texto explica o uso de funções para reutilização de código e recebimento de parâmetros.

Enviado por

Lucas celestino
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
160 visualizações8 páginas

Algoritmos Swift

1) O documento discute conceitos básicos de programação em Swift, incluindo variáveis, tipos de dados, operadores e estruturas de controle. 2) São apresentados tipos primitivos, operadores aritméticos, lógicos e de comparação, além de estruturas como if/else, switch e loops. 3) O texto explica o uso de funções para reutilização de código e recebimento de parâmetros.

Enviado por

Lucas celestino
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 8

HackaTruck - UFS

Algoritmos - Módulo 1
Nota: Material apenas de resumo, sendo indicado apenas para uma
rápida revisão antes ou após estudar o conteúdo.

Variáveis e Constantes em Swift

Há duas formas de declarar uma variável na linguagem Swift, podendo ser uma variável do tipo var(mutável) ou
utilizando uma variável do tipo constante let(imutável).

// Variável mutável
var saborPizza = "Calabresa" // Variável do tipo String
var tamanhoEmCm = 48 // Variável do tipo Int

// Variável imutável
let nomePizzaria = "PizzaForDevs" // Constante do tipo String
let precoUnico = 49.99 // Constante do tipo Float

// Função print() imprime o resultado na tela.


print(saborPizza)
print(tamanhoEmCm)
print(nomePizzaria)
print(precoUnico)

Padraões de Escrita e Nomenclaturas


Classes em Swift são escritas utilizando UpperCamelCase

O restante utiliza lowerCamelCase, como é o caso das variáveis.

Tipos de dados
Na linguagem Swift temos os tipos:

Int
Character
String
Float
Double
Bool

A linguagem Swift faz uma atribuição automática de tipo ao iniciarmos uma variável.

var firstName = "Douglas" // O tipo é String.

Essa atribuição automática é chamada de forma implícita.

Já a atribuição explícita funciona declarando o tipo de dado da variável.


let firstName: String = "Douglas" // Tipo String.

Para verificar o tipo de uma variável utilizamos o operador type(of: variável)

let fullName: String = "Douglas Cunha de Jesus"

print(type(of: fullName)) // String

Nota: Qualquer decimal criado de forma implícita será automaticamente do tipo Double. Caso queiramos trabalhar com
float devemos declarar de forma explícita.

Vejamos alguns exemplos de variáveis e seus tipos

let firstName: String = "Douglas"

let piFloat: Float = 3.1415

let piDouble: Double = 3.1415

let isMe: Bool = true

let caractere: Character = "@"

Comandos de Atribuição
Veremos operações que podem ser realizadas dentro de um programa.

Utilizamos o símbolo = para realizar atribuições a variáveis.

let firstName: String = "Douglas" // Atribuímos o valor a variável.

Utilizamos o operador de adição para realizar concatenação(junção) de duas ou mais strings.

let firstName: String = "Douglas"


let lastName: String = "Cunha"
let fullName: String = firstName + " " + lastName
print(fullName) // Douglas Cunha

Operadores Aritméticos

Os operadores aritméticos que iremos utilizar na linguagem Swift são:

Adição: +
Subtração: -
Multiplicação: *
Divisão: /
Resto: %
var x: Int = 10
var y: Int = 2

var total: Int

// Soma
total = x + y
print(total) // 12

// Subtração
total = x - y
print(total) // 8

// Multiplicação
total = x * y
print(total) // 20

// Divisão
total = x / y
print(total) // 5

// Resto
total = x % y
print(total) // 0

Os operadores pow() e sqrt() são os operadores de potênciação e radiciação

import Foundation // Nos permite utilizar os operadores pow() e sqrt()


var x1, y1, result: Double
x1 = 2.0
y1 = 9.0

result = pow(x1, 2.0)


print("\(x1) elevado ao quadrado é: \(result)")
// Essa barra \(valor) é chamado de interporlação
// é uma maneira mais simples de exibir um resultado.

result = sqrt(y1)
print("A raiz quadrada de \(y1) é: \(result)")

Operadores Lógicos

Operadores lógicos geram dois valores, true ou false. Podemos realizar algumas combinações envolvendo os
operadores lógicos, vejamos:

var resultado: Bool

resultado = !true
print("O resultado de !true é \(resultado)") // False. É uma negação.

resultado = !false
print("O resultado de !false é \(resultado)") // True, estamos negando o valor false.

Alguns operadores lógicos são:


AND (&&)
OR (||)
NOT (!)

var isTrue: Bool = true


var isFalse: Bool = false

print(isTrue && isFalse) // False

print(isTrue && (!isFalse)) // True

Operadores de Comparação
Operadores de comparação atuam sobre dois operandos e retornam um valor do tipo lógico.

Vejamos alguns desses operadores:

Igualdade (==)
Diferente (!=)
Menor que (<)
Maior que (>)
Menor ou igual que (<=)
Maior ou igual que (>=)

var salarioJoao, salarioPedro, salarioMarcos: Double


var resultado: Bool

salarioJoao = 1300
salarioPedro = 1000
salarioMarcos = 1000

resultado = salarioJoao == salarioPedro // False


print("O salário do João é igual ao salário do pedro? \(resultado)")

resultado = salarioJoao != salarioPedro // True


print("O salário do João é diferente do salário do Pedro? \(resultado)")

resultado = salarioJoao > salarioPedro // True


print("O salário do João é maior que o salário do pedro? \(resultado)")

resultado = salarioJoao < salarioPedro // False


print("O salário do João é menor que o salário do Pedro? \(resultado)")

resultado = salarioJoao <= salarioPedro // False


print("O salário do João é menor ou igual ao salário do Pedro? \(resultado)")

resultado = salarioJoao >= salarioPedro // True


print("O salário do João é maior ou igual ao salário do Pedro? \(resultado)")

resultado = salarioPedro <= salarioMarcos // True


print("O salário do Pedro é menor ou igual ao salário do Marcos? \(resultado)")

resultado = salarioPedro >= salarioMarcos // True


print("O salário do Pedro é maior ou igual ao salário do Marcos? \(resultado)")
Estrutura Condicional
Comando IF-ELSE

Uma estrutura condicional serve para avaliar uma condição, caso ela seja verdadeira iremos executar o nosso
bloco de código.

var minhaIdade = 22

// 22 > 18, logo é true.


if (minhaIdade >= 18) {
print("Maior de idade")
}
else {
print("Menor de idade!")
}

Além disso, temos múltiplas condições utilizando o comando ELSE-IF.

Comando Switch

O comando Switch serve para evitar um grande aninhamento de if-else, ele é praticamente igual ao comando if,
mas utilizado de outra forma.

var diaSemana: String = "Sexta"

switch diaSemana {
case "Segunda":
print("Segundou!")
case "Terça":
print("Terçou!")
case "Quarta":
print("Quartou!")
case "Quinta":
print("Quintou!")
case "Sexta":
print("Sextou!")
case "Sábado":
print("Sabadou!")
case "Domingo":
print("Domingou!")
default:
print("Valor inválido!")
}

Ou seja, o valor da variável diaSemana é testado em todas os casos até que encontremos um respectivo valor.

Operador de Intervalo usando Switch:


let reais = 10

switch reais {
// O 5 não está incluso, pois é menor que cinco.
case 0..<5:
print("O preço está entre 0 e 4 reais!")
case 5...10:
print("O preço está entre 5 e 10 reais!")
default:
print("O preço é maior que 10 reais!")
}

A notação de intervalos é utilizada pra representar uma sequência de valores. O operador < na frente de um número
serve para excluir esse valor do intervalo.

Estrutura de Repetição
O comando While repete uma determinada instrução até que a condição seja verdadeira.

var count = 1

while count <= 5 {


print(count)
// Incrementa uma unidade
count += 1
}

Podemos utilizar o comando break para finalizar um laço de repetição, vejamos:

var i = 10;

while i >= 10 {
print(i)
if i == 1 {
print("Feliz ano novo!")
break
}
// Decrementa i
i -= 1
}

Comando repeat-while é igual ao do-while da linguagem C, a repetição executa ao menos uma vez e após isso é realizado
uma checagem da condição de execução. ```swift var x = 5

// Executa ao menos uma vez. repeat { print(x) x += 1 } while x <= 10 // Condição

Comando for é semelhante ao comando while.

// Percorre de 1 a 5.
for i in 1...5 {
print("Bom dia!")
}
// Exemplo de loop que gera a tabuada de 10
for i in 1...10 {
print("10 x \(i) = \(10 * i)")
}

// Exemplo de loop que gera toda a tabuada

for x in 1...10 {
for y in 1...10 {
print("\(x) x \(y) = \(x * y)")
}
}

No exemplo acima temos que o primeiro loop irá executar e logo em seguida, o segundo loop irá executar ate que
o valor(condição de existência) y for igual a 10. Após isso o primeiro loop executa e o valor de x se torna 2 e
executa o segundo loop novamente, tudo isso ocorre até que o primeiro loop tenha valor 11, o que torna a
condição falsa.

Funções
Uma função é um bloco de código responsável por executar determinadas instruções. Utilizar funções faz com que
nosso código fique mais legível além de permitir o reuso dessas funções dentro do nosso código.

// Declaração de função
func displaySomething() {
print("Hello, world!")
}

// Realizamos a chamada da função para executpa-la.


displaySomething() // Hello, world!

Utilizar parâmetros nas nossas funções nos permite passar valores como entrada para a função, vejamos:

func sumOfTwoNumbers(numUm: Int, numDois: Int) {


print("A soma entre \(numUm) + \(numDois) = \(numUm + numDois)") // 5
}
// Chamamos a função e passamos dois argumentos para os nossos parâmetros numUm e numDois.
sumOfTwoNumbers(numUm: 2, numDois: 3)

Na função acima passamos dois parâmetros do tipo Int com seus respectivos nomes, em seguida, utilizamos a
função print e realizamos a soma desses parâmetros. Após isso, chamamos a nossa função e passamos dois
valores como argumento para a nossa função. Note que temos que especificar o nome de cada parâmetro.

Tipo de Retorno de uma função é basicamente o que a função retorna como valor após a sua execução, vejamos:

// Note que após os parênteses temos o tipo de retorno


// da nossa função, nesse caso um valor inteiro.
func sumOfTwoNumbers(numUm: Int, numDois: Int) -> Int {
// Retornamos a soma dos nossos parâmetros.
return numUm + numDois
}

// Chamamos a função
print(sumOfTwoNumbers(numUm: 2, numDois: 3)) // 5

Recursão
Recursão é basicamente uma função que chama a sí própria x vezes. Após criarmos nossa função, é necessário
definirmos um caso base para que não haja uma chamada infinita da função(nesse caso um loop). Vejamos um
exemplo de recursão infinita:

func helloWorld() {
// Chamamos a própria função dentro da nossa função.
helloWorld()
}

// Chamamos a função para realizar sua execução.


helloWorld()

No exemplo acima temos que nossa função irá chamar a sí própria infinitas vezes, o que resultará em um
"estouro" de memória, o que causa a parada do programa.

Utilizando um caso base nos permite controla a recursão para que não haja infinitas chamadas da função, vejamos:

func countDownTimer(time: Int) {


print("Contagem regressiva: \(time)")

// Caso base.
if time > 0 {
// Chamamos a própria função e fazemos a decrementação do nosso parâmetro.
countDownTimer(time: time - 1)
}
// Exibe a mensagem abaixo.
if time == 0 {
print("Feliz ano novo!!!")
}
}
// Chamamos a função para realizar a sua execução.
countDownTimer(time: 10)

Exemplo de recursão envolvendo fatorial de um número

func fatorial(num: Int) -> Int {


// Caso base.
if num <= 1 {
return 1
}
// Chamamos a função e em seguida, realizamos a multiplicação entre os valores.
return (fatorial(num: num - 1) * num)
}

var valor = 5
print("O fatorial de \(valor) é: ", fatorial(num: valor)) // 120 pois 5 * 4 * 3 * 2 * 1 = 120.

Fim do primeiro módulo.

Você também pode gostar