• Nenhum resultado encontrado

ESTRUTURA BIDIMENSIONAL

No documento Programação 1 Linguagem C (UFRPE) (páginas 139-150)

Construa algoritmos em linguagem algorítmica para resolver os

ESTRUTURA BIDIMENSIONAL

9) Leia uma matriz N (2X3) de números inteiros e positivos e gere uma matriz C, do mesmo tamanho, de caracteres, onde cada posição C[linha, coluna] terá o valor “P” ou “I” dependendo de se o número da posição correspondente em N[linha, coluna] for PAR ou IMPAR, respectivamente.

10) Leia uma matriz 4 x 4 de números inteiros e escreva os elementos da diagonal principal desta matriz. Para facilitar, observe o desenho abaixo. Em destaque está a diagonal principal. Como podem ser identificadas as posições desses elementos?

11) Leia as 4 notas de cada um dos 25 alunos de uma disciplina e escreva as notas que estão abaixo da média geral da turma e a porcentagem de notas acima da média da turma.

12) Leia uma matriz contendo o preço de 5 fornecedores para 10 produtos e calcule e imprima o preço médio de cada fornecedor para os 10 produtos.

13) Leia um vetor com os nomes dos 50 alunos de uma turma e uma matriz com as três notas desses alunos na mesma disciplina. Depois, calcule e escreva o nome dos alunos com média superior ou igual à média geral da turma.

DESAFIO: Leia um vetor com os nomes dos 500 candidatos de um

concurso, outro vetor com o gabarito das respostas (“a”, “b”, “c”, “d” ou “e”) das 60 questões da prova e uma matriz com as respostas dos candidatos para a prova. Ao final, escrever os nomes dos candidatos que obtiveram a maior quantidade de acertos.

SUBALGORITMOS

14) Crie um procedimento para exibir a tabuada da soma de um

número que deve ser passado como parâmetro. Por exemplo, se vier o número 1, você deve imprimir a tabuada da soma do número 1 (a soma de um com todos os outros números de 0

a 9). Faça também o algoritmo principal que vai chamar esse procedimento.

15) Escrever um algoritmo para determinar se um determinado número inteiro é positivo ou negativo. Utilizar um subalgoritmo de função que retorna um valor lógico para indicar se o valor recebido é positivo ou negativo.

16) Escreva um algoritmo que lê um número não determinado de valores, todos inteiros e positivos, um valor de cada vez, até que seja digitado o valor ZERO. A cada número, chamar uma função para calcular o fatorial do mesmo. Escrever cada número lido e seu fatorial. Se o número for negativo, dar uma mensagem apropriada.

17) Faça uma função (e o algoritmo principal que utiliza a mesma) que recebe a média final de um aluno por parâmetro e retorna o seu conceito, conforme a tabela abaixo:

Nota Conceito

de 0,0 a 4,9 D de 5,0 a 6,9 C de 7,0 a 8,9 B de 9,0 a 10,0 A

18) Faça um algoritmo que usa uma função que recebe, por parâmetro, a altura e o sexo de uma pessoa e retorna o seu peso ideal. Para homens, calcular o peso ideal usando a fórmula peso ideal = 72.7 x altura - 58 e, para mulheres, peso ideal = 62.1 x altura - 44.7.

Super Desafio

Escreva um algoritmo que apresente um menu com as seguintes opções:

0 Inicializar vertor

1 Inserir elemento no vetor 2 Remover elemento do vetor

4 Sair

Quando for escolhida a opção número 0, um subalgoritmo apropriado deve ser ativado para colocar ZERO em todas as posições do vetor. O subalgoritmo deve receber como parâmetro o vetor a ser inicializado.

Quando for escolhida a opção número 1, um subalgoritmo apropriado é ativado para inserir um elemento (número inteiro positivo) em um vetor. O subalgoritmo deve receber como parâmetro o número a ser inserido e o vetor onde ele deve ser inserido. Regras: A inserção

sempre será realizada no final do vetor (posições que possuam o valor ZERO são consideradas disponíveis). Se não for possível incluir no final (não há mais posições disponíveis no final do vetor), deve- se procurar se existe pelo meio do vetor alguma posição com valor ZERO. Se houver, inserir o elemento naquela posição. Se não houver, avisar ao usuário que o vetor está realmente cheio.

Quando for escolhida a opção número 2, um subalgoritmo apropriado é ativado para deletar um elemento do vetor. O subalgoritmo deve receber como parâmetro a posição (índice) do elemento a ser eliminado e o vetor. Regras: se a posição que se deseja deletar não

existir (índice > 30) deve-se imprimir uma mensagem apropriada. Se a posição que se deseja deletar tiver valor zero (posição ainda sem elementos), também deve ser impressa uma mensagem apropriada. Cada elemento que for deletado deve ser substituído pelo valor ZERO.

Quando for escolhida a opção número 3, um subalgoritmo para imprimir todo o vetor na tela deverá ser ativado. O subalgoritmo deverá receber como parâmetro o vetor a ser impresso. Regras: só

devem ser impressas as posições diferentes de ZERO. E ao final da impressão, dizer quantos números foram impressos (Total de números impressos = XX).

OBS: Considere que existem dois vetores de tamanho 30 de

números inteiros e positivos.

Resumo

Neste fascículo, foram apresentados os conceitos avançados da linguagem algorítmica e um ambiente para programação usando essa linguagem (o que pode facilitar a prática dos exercícios). Além disso,

foi demonstrada uma forma de testar os algoritmos escritos, chamado teste de mesa.

Entre os conceitos avançados estudados estava o de estruturas homogêneas, que são conjuntos de dados de um único tipo agrupados sob um mesmo nome. Essas estruturas são classificadas conforme o número de dimensões do conjunto ou, em outras palavras, conforme a quantidade de índices necessários para localizar um elemento dentro do conjunto (geralmente, um índice para cada dimensão). Dessa forma, as estruturas podem ser: unidimensionais, bidimensionais, tridimensionais ou multidimensionais. O foco do nosso estudo nesta disciplina está apenas nas estruturas unidimensionais (vetores) e bidimensionais (matrizes).

Vetores são estruturas de dados homogêneas unidimensionais que permitem agrupar diversas informações dentro de uma variável única. Estas correspondem a um grupo de posições contínuas na memória que possuem o mesmo nome e o mesmo tipo de dado e são acessadas por um ÚNICO índice. Seu tamanho é definido por constantes inteiras e positivas e a definição do seu nome segue as mesmas regras aplicadas para identificadores

Matrizes são estruturas de dados homogêneas bidimensionais, ou seja, elas necessitam de dois índices para individualizar um elemento do conjunto: um índice para a linha e outro índice para a coluna. Por exemplo, declarar uma matriz M, de 4 linhas por 3 colunas (4 x 3), constituída de elementos numéricos inteiros fará com que passe a existir uma estrutura de dados agrupada na memória do computador, capaz de armazenar 4x3=12 elementos inteiros, endereçáveis por um par de índices, com o primeiro indicando a linha e o outro, a coluna.

Outro conceito avançado estudado foi o de subalgoritmos. Subalgoritmo é um algoritmo que, geralmente, resolve um pequeno problema, e que está subordinado a um outro algoritmo. Esta subordinação deve-se ao fato de que o subalgoritmo só será acionado se solicitado pelo algoritmo principal (também é possível que um subalgoritmo chame outro subalgoritmo). Nesse caso, o algoritmo completo passa a ser dividido em um algoritmo principal e em diversos subalgoritmos (tantos quantos forem necessários ou convenientes para a resolução do problema). O algoritmo principal é aquele por onde começa a execução, e chama, eventualmente, os

Os subalgoritmos podem ser de dois tipos: procedimentos ou funções. A diferença entre eles é que as funções retornam a quem as chamar um valor, explicitamente. E o procedimento não. Ambos os tipos podem receber parâmetros. Os parâmetros podem ser recebidos por valor ou por referência. Quando a passagem é feita por valor, uma cópia do argumento do programa chamador é passada para o parâmetro. Assim o argumento original nunca é modificado. Quando a passagem é feita por referência, o argumento e o parâmetro passam a referenciar um mesmo endereço de memória. Dessa forma, qualquer modificação feita dentro do subalgoritmo no parâmetro, é refletida no argumento original, modificando-o. Indica-se que a passagem é por referência utilizando-se a palavra reservada VAR na declaração dos parâmetros do subalgoritmo.

Pronto! Agora finalizamos o primeiro módulo da disciplina! Finalizamos todo o estudo da linguagem algorítmica. Agora, já podemos partir para começar a implementar nossos programas em uma linguagem de programação. Essa linguagem será linguagem C e o estudo da mesma será o conteúdo de todo o segundo módulo. Até lá!

Vice-Reitor: Prof. Reginaldo Barros

Pró-Reitor de Administração: Prof. Francisco Fernando Ramos Carvalho Pró-Reitor de Extensão: Prof. Paulo Donizeti Siepierski

Pró-Reitor de Pesquisa e Pós-Graduação: Prof. Fernando José Freire Pró-Reitor de Planejamento: Prof. Rinaldo Luiz Caraciolo Ferreira Pró-Reitora de Ensino de Graduação: Profª. Maria José de Sena Coordenação de Ensino a Distância: Profª Marizete Silva Santos Produção Gráfica e Editorial

Capa e Editoração: Allyson Vila Nova, Rafael Lira e Alesanco Andrade Revisão Ortográfica: Ivanda Martins

Ilustrações: Allyson Vila Nova

Fascículo 4 - Linguagem de Programação C ...6 Objetivos do Fascículo 4 ...6 Conteúdo Programático do Fascículo 4 ...6 4.1 Unidade 6 – Noções Básicas da Linguagem C ...8 4.1.1 Breve Histórico da Linguagem C ...9 4.1.2 A Linguagem C ...10 4.1.3 O Dev C++...11 4.1.4 Nosso Primeiro Programa em C...14 4.1.5 Estrutura de um Programa em C...18 4.1.6 Comentários ...19 4.1.7 Diretivas de Compilação...20 4.1.8 Palavras Reservadas ...22 4.1.9 Identificadores ...22 4.1.10 Constantes ...23 4.1.11 Variáveis ...29 4.1.12 Tipos de Dados Básicos (ou Tipos Primitivos) ...30 4.1.13 O Tipo String...31 4.1.14 Modificadores de Tipos de Dados ...32

4.1.16 Inicialização de variáveis ...37 4.1.17 Operadores e Expressões ...38 4.1.18 Entrada e Saída de Dados ...49 4.1.19 Impressão Formatada de Dados ...50 4.1.20 Leitura Formatada de Dados ...55 4.1.21 Outras Formas de Entrada e Saída e Dados ...59 4.1.22 Aprenda Praticando ...62

No documento Programação 1 Linguagem C (UFRPE) (páginas 139-150)