CCO 016 / COM 110 - UNIFEI · C – A Linguagem de Programação Editora Campus – 2002 Ascencio,...

48
CCO 016 / COM 110 Fundamentos de Fundamentos de Programação Programação Universidade Federal de Itajubá Prof. Roberto Affonso da Costa Junior

Transcript of CCO 016 / COM 110 - UNIFEI · C – A Linguagem de Programação Editora Campus – 2002 Ascencio,...

CCO 016 / COM 110Fundamentos de Fundamentos de

ProgramaçãoProgramação

Universidade Federal de Itajubá

Prof. Roberto Affonso da Costa Junior

AULA 01AULA 01

– Introdução ao curso– Revisão de representação numérica

Prof. Roberto Affonso da Costa Junior

[email protected]

http//www.facebook.com/rcosta62br

https://rcosta62br.unifei.edu.br

Instituto de Matemática e Computação

O cursoO curso

• Tipo de aulas– Apresentação de slides– Prática em laboratório

– Prática em casa– Utilização de ambientes de programação• Software: CodeBlocks (Abaixar a versão (Abaixar a versão

for Windows no site do Professor).for Windows no site do Professor).

AvaliaçãoAvaliação

1 – Prova de 0 a 100 pontos individual (P1)

Essa prova será realizada no laboratório na data marcadas no site da sua turma.

A prova será individual e as turmas serão divididas em duas partes.

A prova será realizada em um sistema, que irá corrigir o código feito pelo aluno. Se estiver sem erros de escritas e a saída apresentar o resultado

correto, será atribuída a nota 20 ao aluno, que corresponde a nota 2.0 da UNIFEI. Se não, o aluno poderá concertar a questão e reenviar. No final, o

resultado ou terá a nota máxima ou zero.

AvaliaçãoAvaliação

1 – Prova de 0 a 100 pontos em equipe (P2)

Essa prova será realizada no laboratório na data marcada no site da sua turma.

A prova será em equipe de 2 ou 3 alunos.

A prova será realizada em um sistema, que irá corrigir o código feito pelo aluno. Se estiver sem erros de escritas e a saída apresentar o resultado

correto, será atribuída a nota 20 ao aluno, que corresponde a nota 2.0 da UNIFEI. Se não, o aluno poderá concertar a questão e reenviar. No final, o

resultado ou terá a nota máxima ou zero.

AvaliaçãoAvaliação

3 – Trabalhos de 0 a 100 pontos (T1)

O trabalho será realizado no site:

www.urionlinejudge.com.br

As notas do trabalho são de 0 a 100 pontos.

Serão realizados 3 trabalhos.

AvaliaçãoAvaliação

3 – Trabalhos de 0 a 100 pontos (T2)

O trabalho será realizado no site:

www.urionlinejudge.com.br

As notas do trabalho são de 0 a 100 pontos.

Serão realizados 3 trabalhos.

AvaliaçãoAvaliação

A composição da nota 1 (N1) é feita da seguinte forma: N1 = 0.8 * P1 + 0.3 * T1, sendo que a maior nota tem que ser 100 (se a nota for maior que 100 ela irá ser reduzida para 100).

A composição da nota 2 (N2) é feita da seguinte forma: N2 = 0.8 * P2 + 0.3 * T2, sendo que a maior nota tem que ser 100 (se a nota for maior que 100 ela irá ser reduzida para 100).

NÃO HÁ TRANSPOSIÇÃO DE NOTA.

AvaliaçãoAvaliação1 – Prova Substitutiva de 0 a 100 pontos (PS)

– Essa prova será realizada no laboratório individualmente e substituirá uma das provas anteriores.

AvaliaçãoAvaliaçãoA nota final será composta de:

Nota Final (NF) = (N1 + N2) / 2

Se NF >= 60

Então “APROVADO”

Senão “REPROVADO”

A prova Substitutiva, vai substituir a nota da prova P1 ou P2, a menor delas.

AvaliaçãoAvaliaçãoAs provas serão feitas eletronicamente, o aluno deverá ler as questões, interpretar, construir um código, enviar para o sistema que irá verificar se o resultado de saída do código é condizente que o solicitado pela questão.

Se o código estiver errado o sistema irá apresentar um erro. O aluno, poderá corrigir esse erro e reenviar para o sistema.

Se o código estiver certo o sistema vai enviar a resposta “YES”.

Não haverá meio certo e nem meio errado.

AvaliaçãoAvaliação

Resposta Descrição

YES Seu programa foi aceito, e você receberá um balão da cor correspondente ao problema.

NO: Incorrect Output

Também conhecido como Wrong Answer. Indica que seu programa respondeu incorretamente a algum(ns) dos testes.

NO: Time-limit

Exceeded

A execução do seu programa excedeu o tempo permitido. Esse limite de tempo usualmente não é divulgado aos times e pode variar para cada problema.

NO: Runtime Error

Durante o teste ocorreu um erro de execução (causado pelo seu programa) na máquina julgadora. Acesso a posições irregulares de memória ou estouro dos limites da máquina são os erros mais comuns.

AvaliaçãoAvaliação

Resposta Descrição

NO: Compilation

Error

Seu programa tem erros de sintaxe. Pode ser ainda que você errou o nome do problema ou linguagem no momento da submissão.

NO: Output Format Error

Também conhecido como Presentation Error, indica que a saída do seu programa não segue a especificação exigida na folha de questões, apesar do "resultado" estar correto. Corrija para se adequar à especificação do problema.

NO: Contact Staff

Você deve pedir ao professor para olhar o que houve, pois algum erro incomum aconteceu.

AvaliaçãoAvaliação

O aluno que perder a prova fará a reposição na prova substitutiva, que será realizado individualmente.

No caso da perda de uma prova com autorização da PRG, o aluno irá realizar individualmente e em horário agendado com o professor.

Datas ImportantesDatas Importantes

• Estão disponibilizadas no site:

rcosta62br.unifei.edu.br

Sugestão de BibliografiaSugestão de Bibliografia Roberto Affonso da Costa JuniorNotas de Aulas

Dirceu Douglas Salvetti , Lisbete Madsen Barbosa AlgoritmosMarkron Books – 1998

Brian W. Kernighan, Dennis M. Ritchie C – A Linguagem de Programação Editora Campus – 2002

Ascencio, A. F. G. e Campos, E. A. V.Fundamentos de Programação de Computadores – Algoritmos, Pascal e C/C++Editora Prentice Hall, 2003

Sugestão Para EstudarSugestão Para EstudarComo devo estudar a disciplina?

1. Tirar pelo menos trinta minutos por dia para resolver exercícios;

2. Com dúvidas procurar o professor na sala dele nas horas disponibilizada ou na monitoria, toda quarta das 17:30 as 19:00 horas no LDC5;

3. Ao copiar um programa pronto, tentar entender os conceitos usados para o desenvolvimento do programa;

4. TER FORÇA DE VONTADE.

Sugestões para seu bom Sugestões para seu bom desempenho no cursodesempenho no curso

• Não falte às aulas;

• Não tenha vergonha de fazer perguntas para tirar suas dúvidas durante as aulas;

• Não deixe para estudar às vésperas das provas;

• Procure seu professor em sua sala, sempre que uma dúvida não tiver sido bem esclarecida;

• O aluno não será atendido pelo professor às vésperas das provas;

• Sempre que possível, utilize o computador para tirar suas dúvidas;

• Jamais tente colar ou passar cola para outros durante as atividades escolares; as penas institucionais são muito rígidas a este respeito. O aluno, se pego nestas situações, é punido com a perda da disciplina.

• Qualquer dúvida com relação à disciplina, procure o professor da mesma ou leia diariamente os quadros de avisos oficiais; não confie em boatos ou “fiquei sabendo”, ou “disseram” etc.

• Haverá chamada em todas as aulas. O aluno que faltar mais de ¼ das aulas será reprovado.

• Para justificar sua ausência, o aluno deve procurar a PRG, documentado com o motivo de sua ausência. E está informará o professor.

A importância da disciplina no A importância da disciplina no currículo da engenhariacurrículo da engenharia

Preparar os alunos do curso, para programação de computadores digitais através de uma linguagem de alto nível. Dessa forma, ao finalizarem este curso, os alunos estarão habilitados a conceber, definir, projetar, implementar e validar programas envolvendo as atividades naturais de seu aprendizado em outras disciplinas, ou outras atividades, tais como por exemplo, pesquisas e iniciação cientifica.

• Além disso, o engenheiro é usuário obrigatório desta ferramenta, principalmente na área de engenharia, onde inúmeras aplicações utilizam o computador como instrumento para resolver as atividades relativas à área.

• Trabalhos complexos e frequentes, atualmente só podem ser realizados com a utilização de computadores.

• Daí a grande importância do aprendizado desta disciplina no seu currículo.

Valores decimaisValores decimais

• Digito decimal– 0 1 2 3 4 5 6 7 8 9

• Utilizado para a representação numérica entendida pelo usuário humano

• Operações disponíveis:– Todas aquelas conhecidas na aritmética humana

Valores BináriosValores Binários

• Assim como os humanos representam as informações numéricas através dos dígitos decimais, a máquina representa todas as suas informações através dos dígitos binários.

• Isto se deve ao fato de que a máquina é do estado binário, ou seja, verdadeiro ou falso, aceso ou apagado, etc.

• Isto significa que qualquer tipo de informação armazenada, obtida, processada pelo computador é sempre do tipo binário, ou seja, é constituída dos dígitos 0 ( zero ) ou 1 ( hum ).

• Por isto é importante o entendimento de como é feita a representação da informação em termos binários.

Decimal-BináriaDecimal-Binária

• A transformação de um número decimal em binário é feita usando a divisão do número decimal por 2 e assim sucessivamente até que o quociente seja 0.

• Exemplo:

7 2

31 2

11

710 = 1112

Leia o númerode baixo para

cima.

2

01

TreinamentoTreinamento

1) Transforme os valores de decimal para binário.

a) 1010 =

b) 2510 =

c) 3710 - 6810

=

d) 13210 =

e) 9310 + 2510

=

Binário-DecimalBinário-Decimal

• A transformação de um número binário em decimal é feita usando a soma da multiplicação de cada unidade pela potência de 2 elevado a posição da unidade. A posição da unidade começa com zero.

• Exemplo:

1112 = 1 x 22 + 1 x 21 + 1 x 20 = 4 + 2 + 1

= 710

TreinamentoTreinamento

2) Transforme os valores de binário para decimal.

a) 1012 =

b) 10101012 =

c) 11010012 - 11101010112=

d) 10102 =

e) 1010101012 + 1101102=

Valores HexadecimaisValores Hexadecimais

• Digito Hexadecimal

– Utilizado na representação dos valores decimais na base 16

– 0 1 2 3 4 5 6 7 8 9 A B C D E F

– Correspondem respectivamente a:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Decimal-HexadecimalDecimal-Hexadecimal

• A transformação de um número decimal em hexadecimal é feita usando a divisão do número decimal por 16 e assim sucessivamente até que o quociente seja 0.

• Exemplo:

18991 16

118615 16

0

2

1899110 = 4A2F16

41074 16

416

TreinamentoTreinamento

5) Transforme os valores de decimal para hexadecimal

a) 1010 =

b) 2510 =

c) 3710 – 6810

=

d) 13210 =

e) 9310 + 5110

=

Hexadecimal-DecimalHexadecimal-Decimal

• A transformação de um número hexadecimal em decimal é feita usando a soma da multiplicação de cada unidade pela potência de 8 elevado a posição da unidade. A posição da unidade começa com zero.

• Exemplo:

4A2F16 = 4 x 163 + 10 x 162 + 2 x 161 + 15

x 160 = 16384 + 2560 + 32 + 15 = 1899110

TreinamentoTreinamento

6) Transforme os valores de hexidecimal para decimal.

a) AF16 =

b) 2A516 =

c) F2D16 - 1DEA16

=

d) 12B16 =

e) 97616 + A2416

=

Decimal-OctalDecimal-Octal

• A transformação de um número decimal em octal é feita usando a divisão do número decimal por 8 e assim sucessivamente até que o quociente seja 0.

• Exemplo:

17 8

21 8

02

1710 = 218

Leia o númerode baixo para

cima.

TreinamentoTreinamento

3) Transforme os valores de decimal para octal.

a) 1010 =

b) 2510 =

c) 3710 – 6810

=

d) 13210 =

e) 9310 + 3710

=

Octal-DecimalOctal-Decimal

• A transformação de um número octal em decimal é feita usando a soma da multiplicação de cada unidade pela potência de 8 elevado a posição da unidade. A posição da unidade começa com zero.

• Exemplo:

218 = 2 x 81 + 1 x 80 = 16 + 1 = 1710

TreinamentoTreinamento

4) Transforme os valores de octal para decimal.

a) 178 =

b) 258 =

c) 1328 – 6718 =

d) 468 =

e) 1008 + 9008=

Transformações quaisquerTransformações quaisquer

• É possível fazer-se qualquer tipo de transformação, ou seja, de qualquer base para qualquer base.

• Lembre-se que estas representações são realizadas para simplificar o entendimento pelo humano, enquanto a maquina entende e processa apenas o modo binário.

• A transformação de uma base para outra é realizada exatamente da mesma forma mostrada no exemplo anterior, modificando-se apenas as bases.

• Na base binária, os dígitos constituintes são 0 e 1;

• Na base octal, os dígitos constituintes são 0, 1, ..., 7

• Na base hexadecimal, os dígitos constituintes são, 0, 1, ..., 9, A, B, ...., F

Binário-HexadecimalBinário-Hexadecimal

• A transformação de um número binário em hexadecimal é feita usando a separação do número binário em grupo de 4, ou seja, de 0 a 15 em decimal, ou em binário, de 0000 a 1111.

• Exemplo:

1101 01012 = D516

TreinamentoTreinamento

7) Transforme os valores de hexadecimal para binário.

a) BD16 =

b) 5A216 =

c) 2FD16 - 6AF16

=

d) 1B216 =

e) 679116 + 21916

=

Hexadecimal-BinárioHexadecimal-Binário

• A transformação de um número hexadecimal em binário é feita transformando cada unidade em um número binário.

• Exemplo:

F3A16 = 1111 0011 10102

TreinamentoTreinamento

8) Transforme os valores de binário para hexadecimal.

a) 1012 =

b) 10101012 =

c) 11010012 =

d) 110102 =

e) 1010101012 =

Octal-Binário e Binário-OctalOctal-Binário e Binário-Octal

• Tem algum jeito de transformar diretamente Octal em binário e vice-versa?

• Exemplo:

7328 = ???

1111001110102 = ???

TreinamentoTreinamento

9) Resolva as expressões.

a) 1012 + 1102 =

b) 178 + 238 – 138 =

c) A716 + 5F16 – 2116 =

d) 11012 + 318 – 2716 =

e) AD16 + 778 – 11010010012 =