Upload
phungtruc
View
214
Download
0
Embed Size (px)
Citation preview
Grupo NT
INFORMAÇÃO E COMUNICAÇÃO
LINGUAGEM DE PROGRAMAÇÃO C
AutorGrupo NT
RevisãoNT Editora e Figuramundo
Projeto GráficoNT Editora
Editoração EletrônicaNT Editora e Figuramundo
CapaNT Editora
NT Editora, uma empresa do Grupo NTSCS Q2 - Bl. D - Salas 307 e 308 - Ed. Oscar NiemeyerCEP 70316-900 - Brasília - DFFone: (61) [email protected] e www.grupont.com.br
Linguagem de Programação C. / NT Editora.
-- Brasília: 2014. 142p. : il. ; 21,0 X 29,7 cm.
ISBN - 978-85-8416-060-0
1. Programação de Computadores I – C. 2. Algoritmos. 3. Treinamento interativo.
Copyright © 2014 por NT Editora.Nenhuma parte desta publicação poderá ser reproduzida por
qualquer modo ou meio, seja eletrônico, fotográfico, mecânico ou outros, sem autorização prévia e escrita da NT Editora.
LEGENDA
ÍCONES
Prezado(a) aluno(a),Ao longo dos seus estudos, você encontrará alguns ícones na coluna lateral do mate-rial didático. A presença desses ícones o(a) ajudará a compreender melhor o conteúdo abordado e também como fazer os exercícios propostos. Conheça os ícones logo abaixo:
Saiba MaisEsse ícone apontará para informações complementares sobre o assunto que você está estudando. Serão curiosidades, temas afins ou exemplos do cotidi-ano que o ajudarão a fixar o conteúdo estudado.
ImportanteO conteúdo indicado com esse ícone tem bastante importância para seus es-tudos. Leia com atenção e, tendo dúvida, pergunte ao seu tutor.
DicasEsse ícone apresenta dicas de estudo.
Exercícios Toda vez que você vir o ícone de exercícios, responda às questões propostas.
Exercícios Ao final das lições, você deverá responder aos exercícios no seu livro.
Bons estudos!
4 NT Editora
Sumário
1. INTRODUÇÃO AOS ALGORITMOS ................................................................. 71.1 Introdução .................................................................................................................................. 7
2. INTRODUÇÃO À PROGRAMAÇÃO ............................................................... 132.1 Introdução ................................................................................................................................132.2 Só para lembrar .......................................................................................................................13
3. USO BÁSICO DE FUNÇÕES ........................................................................... 243.1 Introdução ................................................................................................................................243.2 Só para lembrar .......................................................................................................................24
4. ESTRUTURAS CONDICIONAIS ...................................................................... 384.1 Introdução ................................................................................................................................384.2 Só para lembrar .......................................................................................................................38
5. ESTRUTURAS DE REPETIÇÃO ....................................................................... 535.1 Introdução ................................................................................................................................535.2 Só para lembrar .......................................................................................................................53
6. USO AVANÇADO DE FUNÇÕES .................................................................... 666.1 Introdução ................................................................................................................................666.2 Só para lembrar .......................................................................................................................66
5Linguagem de Programação C
7. VETORES E MATRIZES ................................................................................... 767.1 Introdução ................................................................................................................................767.2 Só para lembrar .......................................................................................................................76
8. PONTEIROS E STRINGS ................................................................................. 898.1 Introdução ................................................................................................................................898.2 Só para lembrar .......................................................................................................................89
9. LIDANDO COM ARQUIVOS ......................................................................... 1039.1 Introdução ............................................................................................................................. 1039.2 Só para lembrar .................................................................................................................... 103
10. ESTRUTURAS ............................................................................................. 11410.1 Introdução ........................................................................................................................... 11410.2 Só para lembrar ................................................................................................................. 114
11. OUTRAS TÉCNICAS COMUNS .................................................................. 13111.1 Introdução ........................................................................................................................... 13111.2 Só para lembrar ................................................................................................................. 131
Linguagem de Programação C 7
Repr
oduç
ão p
roib
ida.
Cop
yrig
ht ©
NT
Edito
ra. T
odos
os
dire
itos
rese
rvad
os.
1. INTRODUÇÃO AOS ALGORITMOS
1.1 IntroduçãoProgramar consiste em criar soluções e transformá-las em softwa-
re. A maior parte das soluções baseia-se em decisões a serem tomadas e ações a serem repetidas. Essas soluções são os algoritmos e, para con-vertê-las em software, você precisará usar um compilador baseado em uma linguagem de programação.
Exercitando o conhecimento...
1 – Defina:
• Programa de computador;
• Compilador;
• Linguagem de programação;
• Algoritmo.
2 – O exemplo abaixo ilustra uma estrutura condicional simples, com apenas um nível de SE ... SENÃO.
Jogando uma moeda:
SE sair cara, então...
o nosso time joga do lado esquerdo
SENÃO
o nosso time joga do outro lado.
Crie dois algoritmos com estruturas condicionais baseados em situações do dia a dia, de modo que o primeiro tenha apenas um SE ... SENÃO e o segundo tenha dois SE ... SENÃO aninhados (um dentro do outro).
Muitos termos novos? Vá ao CBT e comece o seu curso. Você não só conhecerá os concei-tos teóricos básicos de programação como
também saberá por que usar a poderosa linguagem C, na qual este curso se baseia.
Quando terminar a lição, não se esqueça de realizar as atividades propostas abaixo.
SUMÁRIO
8 NT Editora
Repr
oduç
ão p
roib
ida.
Cop
yrig
ht ©
NT
Edito
ra. T
odos
os
dire
itos
rese
rvad
os.
3. As três estruturas de repetição abaixo possuem as mesmas ações, mas têm diferen-ças entre si.
a) PARA a numeração do envelope começando em 1 até chegar a 50
Pegue o envelope numerado
Feche o envelope numerado
b) ENQUANTO não acabarem os envelopes
Pegue o envelope numerado
Feche o envelope numerado
c) FAÇA
Pegue o envelope numerado
Feche o envelope numerado
ENQUANTO não acabarem os envelopes
Responda: baseando-se nos exemplos do CBT, em que situação é vantajoso usar cada um desses tipos de estruturas?
4. Em programação, o que é um loop infinito?
5. Crie uma estrutura de repetição PARA baseada no seu dia a dia.
6. Crie uma estrutura de repetição ENQUANTO baseada no seu dia a dia.
7. Crie uma estrutura de repetição FAÇA ... ENQUANTO baseada no seu dia a dia.
8. Considere o exemplo:
No fim do ano: você pode (ou não) ter uma pilha com vários envelopes para enviar cartões:
ENQUANTO a pilha não estiver vazia
Pegue o envelope do topo da pilha
Preencha o envelope
Coloque um cartão no envelope
Feche o envelope
/* Repete-se o processo */
O que acontecerá se a pilha estiver vazia já no início do algoritmo?
9. Além de ser uma das linguagens preferidas dos programadores profissionais, a lin-guagem ANSI C é portável e de médio nível. O que estes termos significam?
SUMÁRIO
Linguagem de Programação C 9
Repr
oduç
ão p
roib
ida.
Cop
yrig
ht ©
NT
Edito
ra. T
odos
os
dire
itos
rese
rvad
os.
Parabéns, você fina-lizou esta lição!
Agora responda às questões ao lado.
Exercícios
Questão 01 − O que é um programa de computador? Assinale a única alternativa correta.
a) Sinônimo de software aplicativo, como o sistema operacional Windows, um progra-ma é um comando enviado a um computador que executa alguma tarefa.
b) Sinônimo de software , é um conjunto de instruções e regras que o computador deve executar de modo a resolver problemas e agilizar tarefas repetitivas.
c) Visto que o hardware precisa do software , um programa de computador é o elo entre o software e o hardware, não pertencendo a nenhuma destas categorias.
d) É a lógica de resolução de um problema.
Questão 02 − “Um programa usado para gerar outros programas” e “um conjunto de regras que o programador deve aprender para escrever seus programas” definem, respectivamente:
a) editor eletrônico e linguagem lógica;
b) compilador e gramática da língua inglesa;
c) compilador e linguagem de programação;
d) editor de programas e linguagem lógica.
Questão 03 − Assinale a única alternativa que NÃO pode ser feita por um algoritmo:
a) intuir que algo bom vai acontecer;
b) calcular o imposto de renda de um bilionário;
c) gerenciar uma lanchonete multinacional;
d) estimar a expectativa de vida da população brasileira.
Questão 04 − Dado o algoritmo abaixo, como você reordenaria suas linhas para que o motorista, em hipótese alguma, chegasse em seu destino?
a) 01, 02, 03, 04, 07, 06, 05.
b) 01, 07, 03, 04, 02, 06, 05.
c) 04, 05, 03, 01, 07, 06, 02.
d) 01, 07, 03, 04 ,05, 06, 02.
01 SE o destino estiver à esquerda, então...02 Viro o carro para a esquerda03 SENÃO04 SE o destino estiver à direita, então...05 Viro o carro para a direita06 SENÃO07 Passo normalmente
SUMÁRIO
10 NT Editora
Repr
oduç
ão p
roib
ida.
Cop
yrig
ht ©
NT
Edito
ra. T
odos
os
dire
itos
rese
rvad
os.
Questão 05 − Dados os algoritmos abaixo, assinale a única alternativa correta:
/* Leitura total de um livro de 600 páginas*/(1) PARA a numeração da página começando em 1 até chegar a
600Leia a página Vá para a próxima página
(2) ENQUANTO o livro não terminar Leia a página Vá para a próxima página
a) o algoritmo (1) funciona exatamente do mesmo jeito que o algoritmo (2);
b) o algoritmo (1) é mais genérico que o algoritmo (2) para o problema em questão;
c) do jeito que estão, os dois algoritmos funcionariam bem se o livro tivesse 700 páginas;
d) o algoritmo (2) funcionaria bem sem alterações mesmo que o livro tivesse 700 páginas.
Questão 06 − Dado o algoritmo abaixo, assinale a única alternativa correta:
No fim do ano – você pode (ou não) ter uma pilha com vários envelopes para enviar cartões:
ENQUANTO a pilha não estiver vazia Pegue o envelope do topo da pilha de envelopes Preencha o envelope Coloque um cartão no envelope Feche o envelope /* Repete-se o processo */
a) quando a pilha ficar vazia, o algoritmo causará um erro, pois não está preparado para este caso;
b) quando a pilha ficar vazia, o algoritmo ignorará as ações que forem impossíveis até parar;
c) quando a pilha ficar vazia, o algoritmo se encerra;
d) para usar este algoritmo, a pilha de envelopes nunca pode ficar vazia.
Questão 07 − Dado o algoritmo abaixo com uma pilha vazia (sem envelopes) como entrada, assinale a única alternativa correta:
No fim do ano – você pode (ou não) ter uma pilha com vários envelopes para enviar cartões:
ENQUANTO a pilha não estiver vazia Pegue o envelope do topo da pilha de envelopes Preencha o envelope Coloque um cartão no envelope Feche o envelope /* Repete-se o processo */
SUMÁRIO
Linguagem de Programação C 11
Repr
oduç
ão p
roib
ida.
Cop
yrig
ht ©
NT
Edito
ra. T
odos
os
dire
itos
rese
rvad
os.
a) o algoritmo causará um erro, pois não está preparado para esse caso;
b) o algoritmo ignorará as ações que forem impossíveis até parar;
c) o algoritmo se encerra;
d) para usar esse algoritmo, a pilha de envelopes nunca pode ficar vazia.
Questão 08 − O algoritmo abaixo entra em loop infinito se não houver ninguém conhe-cido na festa. Marque o algoritmo alternativo que resolve o problema corretamente sem loops infinitos:
Em uma festa – você chega em uma festa e faz questão de ficar conversando com alguém já conhecido: FAÇA Olhe para alguém na festa verifique se é conhecidoENQUANTO não encontrar alguém conhecido entre as pessoas da festa
a) ( )
ENQUANTO não tiver olhado todos na festa Olhe para alguém na festa e verifique se é conhecido SE for conhecido, então... conversa com a pessoa. /* sai do algoritmo */
b) ( )
ENQUANTO não encontrar alguém conhecido Olhe para alguém na festa Verifique se é conhecido
c) ( )
FAÇA Olhe para alguém na festa e verifique se é desconhecidoENQUANTO não encontrar alguém conhecido
d) ( )
FAÇA Olhe para alguém na festa e verifique se é conhecido SE for conhecido, então... sai da festa. /* sai do algoritmo */ENQUANTO não encontrar alguém conhecido.
SUMÁRIO
12 NT Editora
Repr
oduç
ão p
roib
ida.
Cop
yrig
ht ©
NT
Edito
ra. T
odos
os
dire
itos
rese
rvad
os.
Questão 09 − Para o algoritmo abaixo, considere que a festa não tenha ninguém (além de você, que não conta!). Assinale a única alternativa que retrata como o algorit-mo irá se comportar:
Em uma festa – você chega em uma festa e faz questão de ficar conversando com alguém já conhecido:FAÇAOlhe para alguém na festaVerifique se é conhecidoENQUANTO não encontrar alguém conhecido entre as pessoas da festa
a) o algoritmo funcionará normalmente;
b) o algoritmo entrará em loop infinito;
c) entrará em loop até que o algoritmo perceba que não conseguiu resolver o problema;
d) o algoritmo simplesmente não funcionará nesse caso.
Questão10 − Quais são as principais vantagens da linguagem C?
a) É portável, popular, de poucos recursos, tem uso profissional, é de alto nível, tem alguns compiladores gratuitos e facilita o estudo de outras linguagens.
b) É portável, popular, poderosa, tem uso profissional, é de médio nível, tem alguns compiladores gratuitos e facilita o estudo de outras linguagens.
c) Não é portável, popular, poderosa, tem uso profissional, é de médio nível, tem alguns compiladores gratuitos e facilita o estudo de outras linguagens.
d) É portável, poderosa, restrita ao uso acadêmico, é de alto nível, tem alguns compila-dores gratuitos e facilita o estudo de outras linguagens.
SUMÁRIO