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 Exemplo Converter 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. Exercício Converter de Algoritmo para Scilab Exercício Converter de Algoritmo para Scilab Exercício Converter de Algoritmo para Scilab A figura apresenta um algoritmo para determinar o maior elemento em cada linha de uma matriz A de dimensão m × n. Matéria Vamos estudar o Capítulo 7 – Comandos de Entrada e Saída Apostila scilab_2010_08.pdf Comandos de Entrada input 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 Comandos de Saída DISP - 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 Aula prática O 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. Aula prática Faç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. Aula Prática Uma 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.