Programação para Redes de Computadores (técnico) (diário 2016-1 - Estudo Dirigido)

De MediaWiki do Campus São José
Ir para: navegação, pesquisa

Neste estudo dirigido, usaremos a programação da disciplina em 2014-1, executada pelo professor Jorge Casagrande.

Plano de ensino

Aulas

Capítulo 1 - Lógica de programação e algoritmos

Um material de referência pode ser visto em (Link)

Avaliação

Lógica de programação
  1. Faça um algoritmo para comer um chocolate;
  2. Faça um algoritmo para fazer um suco de laranja;
  3. Faça um algoritmo para trocar um pneu de um carro;
  4. Faça um algoritmo para instalar um reprodutor de BluRay.
Algoritmos
  1. Sabendo que A = 2, B = 6, C = 4, informe se as expressões abaixo são verdadeiras ou falsas:
  1. A > B
  2. (A + C) > B
  3. (B + A) <= C
  4. (C + A) > B
  5. C = (B − A)
  1. Sabendo que A = 10, B = 9, C = 6, D = 3, informe se as expressões abaixo são verdadeiras ou falsas:
  1. (A > B)E(B > C)
  2. (D > A)OU(C > D)
  3. (NAO(C > B))OU(D > A)
Fluxogramas
  1. Desenvolver um fluxograma que leia um número e informe se o mesmo está entre a faixa de 1 a 9.
  2. Desenvolver um fluxograma que leia dois números inteiros e informe qual é o maior;
  3. Desenvolver um fluxograma que leia dois números inteiros e efetue a divisão do primeiro pelo segundo, somente se o divisor for diferente de zero, caso contrário exibir uma mensagem de erro;
  4. Desenvolver um fluxograma que leia três números inteiros e informe qual é o maior, o menor e o do meio;
Pseudocódigo
  1. Desenvolva um algoritmo que leia um número N e mostre os números de 1 até N;
  2. Desenvolva um algoritmo que leia dois números, N1 e N2, e mostre a sequência de números entre eles;
  3. Desenvolva um algoritmo para ler duas notas de um aluno, dentro da faixa de 0 até 10 e informe a média deste aluno. O algoritmo deverá validar a entrada do dados, ou seja, deverá ficar questionando o valor das notas até que o usuário forneça um valor dentro da faixa permitida. O algoritmo deverá apresentar a mensagem “nota inválida, por favor entre com valores de 0 a 10” sempre que o valor fornecido estiver fora da faixa de 0 a 10;
  4. Imprima a tabuada de multiplicação dos números de 1 a 10. Ex: 1x1. . . , 1x2. . . , 2x1. . . ;
  5. Desenvolva um algoritmo para ler K notas de um aluno, dentro da faixa de 0 até 10 e informe a média deste aluno. O algoritmo deverá validar a entrada do dados, ou seja, deverá ficar questionando o valor das notas até que o usuário forneça um valor dentro da faixa permitida. O algoritmo deverá apresentar a mensagem “nota inválida, por favor entre com valores de 0 a 10” sempre que o valor fornecido estiver fora da faixa de 0 a 10. Ao fim da entrada de dados, o programa deverá mostrar a média das K notas.

Capítulo 2 - Shell Script

Avaliação

Shell Script
  1. Desenvolva um algoritmo que leia dois números inteiros e exiba qual deles ́e o maior
  2. Desenvolva um algoritmo que leia um numero inteiro positivo e imprima a sequência de 0 ate este numero. O programa deverá tratar caso o usuário forneça um numero menor que zero.
  3. Desenvolva um algoritmo que simule a autenticação de usuários. O usuário deve fornecer uma senha e se esta senha for igual a palavra secreta dever ́a exibir a mensagem “Acesso autorizado”, caso contrario devera exibir “Acesso negado”. O algoritmo deverá solicitar a senha ao usuário até que este forneça a senha correta ou até que o numero de tentativas permitidas seja alcançado. No caso, o numero máximo de tentativas ́e 3.
Solução - Clicar no "+" para expandir
#!/bin/bash

# Variáveis do sistema
senha_correta=1234
max_tentativa=3
tentativa=1
acesso_OK=0

while [ $tentativa -le $max_tentativa ] && [ $acesso_OK -eq 0 ]; do

	# Solicitando a senha do usuário
	echo -n "Digite a senha: "
	read senha

	# ---------------------------------------------------- tentativa 1
	# Testando se a senha está correta
	if [ $senha -eq $senha_correta ];
		then
			echo "Acesso autorizado"
			echo "Fim"
			acesso_OK=1
		else
			echo "Acesso negado - Tentativa $tentativa"
	
			# Como a senha está incorreta, incrementa o número
			# de tentativas
			tentativa=$((tentativa+1))
	fi

done

echo "Você acertou a senha"
|}

Arquivo:PRC12503-exemplos1.zip

Arquivos e argumentos em Shell
  1. Leia dois operandos e um operador, através de argumentos de linha de comando, e realize a operação aritmética correspondente. Exemplo: ./exercicio3.sh 10 + 2, resultado: 12.
  2. Leia duas datas no formato AAAA-MM-DD, através de argumentos de linha de comando, e informe a diferença em dias entre essas datas. Exemplo: ./exercicio4.sh 2009-09-21 2001-10-02.
  3. Leia o nome de uma interface de rede (argumentos de linha de comando) e informe o IP, a máscara de rede e o endereço de broadcast associados a esta. Dica: Faça uso do comando ip combinado as ferramentas grep, tail e cut. Exemplo: ip a | grep eth0 | tail -1
Solução - Clicar no "+" para expandir
#!/bin/bash

horizontal() {
	traco="--------------------------------------------------------------------------------------------------------------------------------------"
	echo -n "+"
	echo -n "${traco:0:$(($1-2))}"
	echo    "+"
}

vertical(){
	espaco="                                                                                                                                                "
	echo -n "|"
	echo -n "${espaco:0:$(($1-2))}"
	echo    "|"
}

# Faz a linha horizontal superior
horizontal $1

# Faz as linhas verticais
cont=1
limite=$(($2-2))
while [ $cont -le $limite ]; do
	cont=$(($cont+1))
	vertical $1
done

# Faz a linha horizontal inferior
horizontal $1
|}