Buscar

Fundamentos de programação aplicada a REDES - Maurício_Braga -1ª webconferência - 2021 2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 48 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 48 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 48 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

PROGRAMAÇÃO APLICADA A 
REDES
MAURÍCIO DA MOTTA BRAGA
Software
• Conjunto de instruções que diz ao computador o que fazer.
• As instruções são escritas em uma forma organizada e 
seqüencialmente lógica.
Software
• Categorias de software
• Sistema operacional: controla e coordena o hardware (Ex. Linux).
• Tradutores: compiladores, interpretadores e montadores (assemblers).
• Aplicativos: personalizados ou pacotes (ex. Word, Excel).
Hardware
Software
Aplicativo
INTERFACE
Sistema Operacional
Tradutores
Arquiteturas computacionais
Como os programas eram escritos inicialmente?
Programação Assembly
• Processadores só podem rodar software escritos na sua linguagem nativa
(código de máquina). Cada processador possui uma linguagem nativa
diferente.
• A linguagem assembly fornece uma forma mais fácil de escrever código de 
máquina. 
• Em um projeto, precisamos primeiro definir qual processador rodará os
nossos programas, e a partir daí, aprender a linguagem nativa desse
processador.
Exemplo CPU - Z80
• Criado quando Federico Faggin, depois de trabalhar no projeto do 8080, 
deixou a Intel no final de 1974 para fundar a Zilog com Ralph Ungermann.
• Foi projetado para ser binariamente compatível com o Intel 8080, de 
forma que a maior parte do código 8080 podia ser executado sem 
alterações nele, principalmente o SO CP/M.
• Forma, junto com o 6502 e o 6800, o grupo dos mais importantes 
processadores de 8 bits de sua época, sendo até hoje muito utilizado.
Exemplo CPU - Z80
• Processador de 8 bits com barramento de endereços de 16 bits, 
endereçando até 64 kb de memória;
• Após um reset ou boot, o z80 começa a buscar instruções a partir de 
0x0000. Por isso normalmente programas em rom estão na parte 
baixa da memória, e programas em RAM estão na parte ata.
• possui 158 instruções básicas, com 208 bits de memória interna 
acessível ao programador, que são organizados na forma de 
registradores.
Exemplo CPU - Z80
• Seus recursos de programação incluem um registrador acumulador (A), um 
registrador de flags (F) e seis outros registradores de uso geral de oito bits (B, 
C, D, E, H e L), que podem ser emparelhados pelo programador como 3 
registradores de 16 bits. 
• Além dos registradores gerais estão disponíveis os registradores "stack
pointer" (SP - ponteiro de pilha), "program counter" (PC - contador de 
programa) e dois índices (ponteiros de memória); 
• Há outros registradores auxiliares que não estão disponíveis para o 
programador.
Exemplo assembly Z80
STROUT EQU 9
BDOS EQU 5
start:
LD DE,FRASE 
LD C,STROUT 
CALL BDOS 
JP 0
FRASE: DB 'Testando...$'
end
Compilação desse programa produz:
00 00 00 11 0E 01 0E 09 CD 05 00 C3 00 00 
54 65 73 74 ...
Exemplo Assembly
• Ou seja, programar em ASM…
Felizmente há uma maneira mais fácil…
O computador como uma máquina multinível
Portas lógicas
Microprograma / Reg + ULA
Conjunto de instruções
Chamadas de sistema
Programador
de aplicações / 
programas 
normalmente 
traduzidos
Construindo Software
• Linguagem de programação
• Idioma no qual as instruções são escritas;
• Várias linguagens estão disponíveis no mercado.
• Programas em alto nível→ tradutores→ execução.
PROGRAM Soma;
VAR X: integer;
BEGIN
X := 2+2;
WRITE (‘Soma =‘, X)
END.
Computador Soma = 4
X Soma
Vetores, Matriz, Registros, etc.2 4
Exemplos de linguagens de programação
• Java;
• C / C++ e variantes como Objective C (IOS);
• PHP;
• .net;
• Python;
• Fortran;
• Pascal;
• Ladder;
• SQL Windows etc.
Paradigmas de programação
• Fornece um meio de se classificar as linguagens 
de programação baseado em suas 
funcionalidades. 
• As linguagens podem ser classificadas em vários 
paradigmas.
Paradigmas de programação
• Determina a visão que o programador possui sobre a estruturação e 
execução do programa. Ex:
• Programação imperativa→ os programadores podem definir um 
programa como uma coleção de comandos ou ordens que dizem 
exatamente como uma tarefa deve ser realizada;
• Programação funcional → os programadores abstraem o programa 
como uma seqüência de funções executadas de modo empilhado.
• Programação lógica→ Paradigma de programação que faz uso da 
lógica matemática. 
Exemplo programação em lógica - Prolog
• “PROgramming in LOGic”, é uma linguagem baseada em lógica de 
primeira ordem.
• Útil para a resolução de problemas que envolvem construir uma 
representação simbólica de objetos e definir relações entre esses objetos.
• Pelo fato de sua estrutura conceitual ser ligada a lógica matemática, 
constitui uma excelente ferramenta para o estudo de lógica.
Exemplo Prolog
• Exemplo Prolog: 
• homem(ricardo).
• mortal(X) :- homem(X).
• A partir desse fato e dessa regra podemos inferir que Ricardo é mortal. 
No prolog faríamos uma consulta para isso:
• ?-mortal(ricardo)
• Resposta: true.
O que é programação?
Programar: atividade de 
comunicar algoritmos 
aos computadores
Algoritmos
• Seqüência ordenada e não ambígua de passos que levam a solução de 
dado problema
SoluçãoProblema Algoritmo
Exemplos de algoritmos
Manual de instruções de
um eletrodoméstico
Receita de bolo
Exemplo de Algoritmo
• Sacar dinheiro de um caixa eletrônico
1. Passar o cartão do banco no leitor;
2. Digitar senha da conta-corrente;
3. No menu que vai aparecer, escolher a opção “saque”;
4. Digitar o valor desejado e apertar a tecla “Enter”;
5. Confirmar o saque e apertar a tecla “Enter”;
6. Ficar esperando em frente ao caixa até a saída do dinheiro;
7. Retirar o dinheiro.
Programação
• Diretrizes para construção de softwares
• Identificação do problema;
• Identificação das “entradas de dados”;
• Identificação das “saídas de dados”;
• Identificação de regras do problema e limitações do agente;
• Determinar o que fazer para transformar as “entradas” em “saídas”;
• Obedecer regras e limitações;
• Determinar ações possíveis de serem realizadas.
• Construção do algoritmo;
• Teste de solução.
Programação
• Exemplo: Calcular a média final de um aluno.
O aluno realizará duas provas: P1, P2.
Para montar o algoritmo proposto, faremos três perguntas:
a) Quais são os dados de entrada?
R: Os dados de entrada são P1 e P2.
b) Qual será o processamento a ser utilizado?
R: O procedimento será somar todos os dados de entrada e dividi-los por 2 (dois)
(P1 + P2)/2
c) Quais serão os dados de saída?
R: O dado de saída será a média final
Algoritmos
• Descrição de algoritmos (cont.)
• Linguagem algorítmica / pseudocódigo / Português estruturado
• “Linguagem simplificada de programação”
• Expressões concisas e pré-definidas
• Palavras-chaves, indentação, um passo por linha.
• Ex:
var
media, P1, P2: real
inicio
escreva("Digite as notas")
leia(P1)
leia(P2)
media <-(P1 + P2) / 2
escreva("A media é ",media)
fimalgoritmo
Sintaxe dos algoritmos
Scripts e a administração de sistemas
• A programação e os algoritmos também fazem parte do dia a dia de 
um administrador de sistemas;
• Podemos utilizar a criação de arquivos de scripts para tornar mais 
simples as execuções de tarefas repetitivas no dia a dia. 
• Muito tempo do administrador pode ser perdido realizando ações 
desse tipo, como abrir os mesmos programas todos os dias; esvaziar 
a lixeira e diretórios temp para economizar espaço em disco; etc. 
Linux
• Toda sessão no Linux começa com uma solicitação de um nome de 
login. 
• Sempre que um usuário digita seu nome de login e senha 
corretamente, um Shell é invocado e a partir dele o usuário passa 
a dar comandos e interagir com o sistema. 
Linux
• O superusuário (root): 
• administrador do sistema, é responsável também por
cadastrar os usuários. 
• Pode também definir shells específicos para cada usuário
• Dica: execute os comandos sempre como usuário comum e não 
como root, para evitar riscos de danos ao sistema operacional. 
• Uma maneira fácil de verificar é abrir o terminal e se o símbolo 
antes do cursor é o $, você está como usuário comum,mas se é 
o #, você está como root. Para sair do modo root, digite exit.
Script
• Pode ser pensado como um algoritmo projetado para realizar 
uma determinada tarefa, utilizando os comandos específicos 
do bash e os executáveis do sistema operacional
• Criado em um arquivo texto, via terminal ou em modo gráfico. 
Script
• Um shell script começa (mas não necessariamente) definindo qual o 
interpretador de comandos que será utilizado para interpretar e 
executar o script. 
• Existem outros além do bash, como o sh, o ksh e o csh. 
• A primeira linha de um shell script define qual o interpretador de 
comandos será utilizado. Devemos utilizar o path completo de onde 
se encontra o shell, no caso, no diretório /bin/.
Executando scripts online
• Há diferentes sites que permitem que testemos os nossos script. Um deles 
é esse aqui: https://www.jdoodle.com/test-bash-shell-script-online/
Exemplo de script
#!/bin/bash
# Comentário: exemplo 1
echo "Seu nome de usuário é:"
whoami
echo "Info de hora atual e tempo que o computador está ligado:"
uptime
echo "O script está executando do diretório:"
pwd
echo
echo "tá ligado?"
Executando o script
Análise do script
• echo: exibe na tela o texto entre aspas duplas. 
• whoami: exibe o usuário logado no sistema;
• Uptime: exibe a hora atual, o tempo decorrido desde que o 
computador foi ligado, o número de usuários logados e uma 
média do número de processos carregados nos últimos um, cinco 
e 15 minutos;
• pwd: exibe o diretório no qual o arquivo está rodando.
Comentários começam com #. 
Constantes e Variáveis
• Variável
• Um dos conceitos mais importantes na construção de algoritmos.
• Representa um espaço de memória reservado para armazenar 
determinado tipo de dado;
• Deve receber um nome para referenciação e modificação;
• Deve possuir um tipo associado;
• Quando um algoritmo termina sua execução, todas as variáveis são 
apagadas da memória;
• Só podem armazenar um dado por vez.
Identificadores em Java
• Devem começar com uma letra, um cifrão ($) ou um underscore (_)
Exemplos:
1. Foobar
2. BIGInterface
3. $incomeAfterExpenses
4. 3_node5
5. !theCase
Ok!
Ok!
Ok!
Errado!
Errado!
Constantes e Variáveis
• Declaração de variáveis
• Toda variável utilizada em um algoritmo deve ser declarada.
• A sintaxe utilizada em pseudocódigo é:
• Exemplo linguagem algorítmica:
• real: nota1, nota2, media;
• Exemplo Java:
• double nota1=0, nota2=0, media=0; 
<tipo>:<variavel1>, <variavel2>, ...;
Strings
• Implementam o tipo cadeia de caracteres em uma linguagem de 
programação como Java;
• Em Java, Strings são objetos que disponibilizam um conjunto de 
funções que podem ser usadas pelo usuário.
• Pode-se concatenar uma String com uma outra variável ou expressão 
com o sinal +. 
Strings
• Exemplo:
• String s1 = “Exemplo de uma string”;
• int x = 10;
• String s2 = “Idade de ricardo = ” + x;
• int y = 5;
• String s3 = “Respostas: x = ” + x + “ e y = ” + y;
• System.out.println(s3);
Criando variáveis em Shell script
• Pelo fato da linguagem não ser tipada, podemos armazenar qualquer tipo 
de valor em uma variável, desde strings a números.
• Identificadores de variáveis podem começar por letras (maiúscula ou
minúscula) ou underscore (_);
• A linguagem é case sensitive (diferencia maiúsculas e minúsculas) então
nome e Nome são duas variáveis diferentes.
Criando variáveis
• Declaração: É feita no formato nome_da_variavel=valor. Ex:
• Codigo_cliente=95
• _cidade=”Recife”
• Obs: não deve haver espaços entre o sinal de igual e o nome e o valor da 
variável.
• Em um ambiente shell, as variáveis são, por padrão, do tipo string.
Criando variáveis
• Para usar a variável, deve-se adicionar um $ na frente do identificador.
• Para armazenar o resultado de um comando em uma variável, use a 
sintaxe: nome_da_variavel=$(comando) ou
nome_da_variavel=`comando`
• Para receber valores do teclado use a sintaxe: read nome_da_variavel
Exemplo com variáveis
# Comentário: segundo exemplo
echo "Programa com variáveis"
numero_exemplo=2
echo "Esse é o nosso programa número $numero_exemplo"
echo "Executando o comando df para visualizar o espaço gasto no disco:"
system_info=`df -h` # Também poderia ser system_info=$(df -h)
echo "$system_info"
Executando o exemplo
OBRIGADO(A)
MAURÍCIO DA MOTTA 
BRAGA
BRAGA.MAURICIO@GMAIL.C
OM
PROFESSOR
OBRIGADO(A)

Continue navegando