12
Comandos de entrada e saída Aula prática THOBER CORADI DETOFENO, MSC. Aula 10 JOINVILLE 2013 Universidade do Estado de Santa Catarina – CCT/UDESC

Comandos de entrada e saída Aula prática THOBER CORADI DETOFENO, MSC. Aula 10 JOINVILLE 2013 Universidade do Estado de Santa Catarina – CCT/UDESC

Embed Size (px)

Citation preview

Page 1: Comandos de entrada e saída Aula prática THOBER CORADI DETOFENO, MSC. Aula 10 JOINVILLE 2013 Universidade do Estado de Santa Catarina – CCT/UDESC

Comandos de entrada e saídaAula prática

THOBER CORADI DETOFENO, MSC.

Aula 10

JOINVILLE2013

Universidade do Estado de Santa Catarina – CCT/UDESC

Page 2: Comandos de entrada e saída Aula prática THOBER CORADI DETOFENO, MSC. Aula 10 JOINVILLE 2013 Universidade do Estado de Santa Catarina – CCT/UDESC

ExemploConverter de C para Scilab

http://www.ime.usp.br/~macmulti/exercicios/funcoes1/

1. Um número a é dito permutação de um número b se os dígitos de a formam uma permutação dos dígitos de b.

Exemplo: 5412434 é uma permutação de 4321445, mas não é uma permutação de 4312455.

Obs.: Considere que o dígito 0 (zero) não aparece nos números.

(a) Faça uma função contadígitos que dados um inteiro n e um inteiro d, 0 < d < 9, devolve quantas vezes o dígito d aparece em n.

(b) Usando a função do item anterior, faça um programa que lê dois inteiros positivos a e b e responda se a é permutação de b.

Page 3: Comandos de entrada e saída Aula prática THOBER CORADI DETOFENO, MSC. Aula 10 JOINVILLE 2013 Universidade do Estado de Santa Catarina – CCT/UDESC

ExercícioConverter de Algoritmo para Scilab

Page 4: Comandos de entrada e saída Aula prática THOBER CORADI DETOFENO, MSC. Aula 10 JOINVILLE 2013 Universidade do Estado de Santa Catarina – CCT/UDESC

ExercícioConverter de Algoritmo para Scilab

Page 5: Comandos de entrada e saída Aula prática THOBER CORADI DETOFENO, MSC. Aula 10 JOINVILLE 2013 Universidade do Estado de Santa Catarina – CCT/UDESC

ExercícioConverter de Algoritmo para ScilabA figura apresenta um algoritmo para determinar o maior elemento em cada linha de

uma matriz A de dimensão m × n.

Page 6: Comandos de entrada e saída Aula prática THOBER CORADI DETOFENO, MSC. Aula 10 JOINVILLE 2013 Universidade do Estado de Santa Catarina – CCT/UDESC

Matéria

Vamos estudar o Capítulo 7 – Comandos de Entrada e

SaídaApostila scilab_2010_08.pdf

Page 7: Comandos de entrada e saída Aula prática THOBER CORADI DETOFENO, MSC. Aula 10 JOINVILLE 2013 Universidade do Estado de Santa Catarina – CCT/UDESC

Comandos de Entradainput

http://help.scilab.org/docs/5.4.0/pt_BR/input.html

x_mdialog

http://help.scilab.org/docs/5.4.0/pt_BR/x_mdialog.html

x_choices

http://help.scilab.org/docs/5.4.0/pt_BR/x_choices.html

x_choose

http://help.scilab.org/docs/5.4.0/pt_BR/x_choose.html

x_dialog

http://help.scilab.org/docs/5.4.0/pt_BR/x_dialog.html

x_matrix

http://help.scilab.org/docs/5.4.0/pt_BR/x_matrix.html

Page 8: Comandos de entrada e saída Aula prática THOBER CORADI DETOFENO, MSC. Aula 10 JOINVILLE 2013 Universidade do Estado de Santa Catarina – CCT/UDESC

Comandos de SaídaDISP - disp(x1,[x2,...xn])

http://help.scilab.org/docs/5.4.0/pt_BR/disp.html

PRINT – print('file-name',x1,[x2,...xn])

http://help.scilab.org/docs/5.4.0/pt_BR/print.html

MSPRINTF - str=msprintf(format,a1,...,an);

http://help.scilab.org/docs/5.4.0/pt_BR/msprintf.html

MESSAGEBOX - [btn] = messagebox(msg)

http://help.scilab.org/docs/5.4.0/pt_BR/messagebox.html

WARNING - warning('string')

http://help.scilab.org/docs/5.4.0/pt_BR/warning.html

WAITBAR

http://help.scilab.org/docs/5.4.0/pt_BR/waitbar.html

Page 9: Comandos de entrada e saída Aula prática THOBER CORADI DETOFENO, MSC. Aula 10 JOINVILLE 2013 Universidade do Estado de Santa Catarina – CCT/UDESC
Page 10: Comandos de entrada e saída Aula prática THOBER CORADI DETOFENO, MSC. Aula 10 JOINVILLE 2013 Universidade do Estado de Santa Catarina – CCT/UDESC

Aula práticaO IBOP deseja fazer uma pesquisa a nível nacional. Serão entrevistadas várias pessoas.

Cada pessoa deve responder a um questionário formado pelos seguintes itens:

1. Sexo: ( )M ( )F

2. Idade: ____ anos

3. Fumante: ( )S ( )N

Assim, faça um programa Scilab que, a partir das entrevistas realizadas, responda as seguintes perguntas:

a) Qual é o percentual de fumantes em relação ao número total de pessoas entrevistadas?

b) Qual é o percentual de homens não fumantes abaixo de 40 anos em relação ao número total de homens entrevistados?

c) Qual é o percentual de mulheres fumantes acima de 40 anos em relação ao número total de mulheres entrevistadas?

Observação: a parada do processamento do programa deve ocorrer no momento em que se fornecer o valor zero para a idade de uma pessoa.

Page 11: Comandos de entrada e saída Aula prática THOBER CORADI DETOFENO, MSC. Aula 10 JOINVILLE 2013 Universidade do Estado de Santa Catarina – CCT/UDESC

Aula práticaFaça um programa em SciLab que realize algumas operações em vetores. O vetor utilizado nas operações deve

guardar elementos numéricos inteiros. O programa deve possuir um menu principal através do qual o usuário pode escolher a opção que deseja. As operações (opções do menu principal) são:

• Cadastro de um elemento qualquer no vetor. Neste caso, o usuário deverá fornecer um elemento e o programa deverá cadastrá-lo no vetor, de tal forma que o vetor sempre permaneça ordenado ascendentemente, de acordo com os elementos anteriormente cadastrados. É permitida a inclusão de um valor numérico que já exista no vetor.

• Pesquisa por um elemento qualquer no vetor. Neste caso, o usuário deverá entrar com o elemento a ser pesquisado e o programa deverá retornar, caso o elemento exista no vetor, a(s) posição(ões) em que o mesmo se encontra no vetor; caso contrário, o programa deverá retornar uma mensagem de erro.

• Alteração de um elemento dado a sua posição no vetor. Neste caso, o usuário deverá entrar com a posição desejada e o programa deverá permitir a alteração do elemento desta posição, caso a mesma exista, para um novo elemento a ser fornecido pelo usuário. Caso a posição não exista, o programa deverá retornar uma mensagem de erro.

• Remoção de um elemento. Neste caso, o usuário deverá entrar com o elemento a ser removido e o programa deverá remover tal elemento do vetor, em todas as posições em que o mesmo aparece. Caso o elemento não exista no vetor, deve ser apresentada uma mensagem de erro. Não é permitido deixar um “buraco vazio” no vetor; todos os elementos do mesmo devem estar em posições consecutivas.

• Listagem do vetor. Neste caso, o programa deverá apresentar todos os elementos contidos no vetor corrente.

Page 12: Comandos de entrada e saída Aula prática THOBER CORADI DETOFENO, MSC. Aula 10 JOINVILLE 2013 Universidade do Estado de Santa Catarina – CCT/UDESC

Aula PráticaUma determinada prova de múltipla escolha consiste de 10 questões, sendo numeradas de 1 a 10.

Cada questão vale 3 pontos e admite uma resposta dentre as opções A, B, C ou D. Esta prova foi aplicada em uma turma de, no máximo, 30 alunos e, a partir de tal aplicação, foi gerado um arquivo texto denominado "resposta.txt" contendo, na primeira linha, o gabarito oficial da prova (nas colunas 1, 3, 5, 7, 9, 11, 13, 15, 17 e 19 encontram-se, respectivamente, as respostas corretas das 10 questões da prova) e, nas demais linhas, os seguintes dados sobre um determinado aluno da turma para a qual a prova foi aplicada:

• respostas da prova: caracteres (ocupam as colunas 1, 3, 5, 7, 9, 11, 13, 15, 17 e 19);

• matrícula: valor inteiro constituído por 5 dígitos (ocupa as colunas 21 a 25);

• nome: cadeia de, no máximo, 30 caracteres (ocupa as colunas 27 a 56).

Assim, faça um programa em SciLab que calcule e apresente a quantidade de pontos que cada aluno obteve na prova. No caso, devem ser armazenadas, em um arquivo texto denominado "resultado.txt”, as seguintes informações para cada aluno da turma: matrícula, nome e a pontuação obtida pelo mesmo na prova. Ademais, no próprio arquivo "resultado.txt”, devem ser também armazenados:

• o(s) nome(s) do(s) aluno(s) que apresentou(aram) a maior pontuação da prova;

• para cada questão da prova, a quantidade de alunos que acertaram e que erraram a mesma.