Baixe o app para aproveitar ainda mais
Prévia do material em texto
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE SÃO PAULO CAMPUS VOTUPORANGA Emily G. Oliveira Gabriela Rossini Sheila G. Barbosa Trabalho 2 Prof. Dr. Cecilio Merlotti Rodas Computação Científica (CICO) Votuporanga Dez/2017 1. Comente as principais características da programação orientada a objetos. Citar as referências. R: O termo Programação Orientada a Objetos (POO) foi criado por Alan Kay. Simula 67 foi a primeira linguagem a a usar ideias do POO. Alguns exemplos de linguagens modernas que adotaram essas ideias são Java, C#, C++, PHP, Ruby, Python e Lisp. A POO foi criada para tentar aproximar o mundo real do mundo virtual. O programador cria representações abstratas para os objetos do mundo real. Os objetos conversam uns com os outros através do envio de mensagens. 2. . Resumidamente, a programação paralela procura criar condições para que um determinado programa (ou processamento computacional) possa ser implementado de tal forma que permita que sua execução aconteça em diversas máquinas. Procure identificar as vantagens de se utilizar essa técnica. R: As vantagens são: Solução de aplicações complexas: • Análise de local para perfuração de poços de petróleo – • Simulações físicas • Análise de algoritmos para criptografia Diversos níveis de concorrência em hardware 3 . //Faça um programa que crie um vetor de 50 posições, atribuindo valores inteiros, positivos, //aleatoriamente, com a função rand(). Os valores aleatórios devem estar em 0 e 500. Em seguida criar //uma matriz 5x10 obedecendo o seguinte critério: a) criar um laço para varrer o vetor criado copiando //os valores do vetor para a matriz; cada um dos números do vetor vai assumir uma posição na matriz //somente, e somente se, forem maiores que 250, caso contrário, o valor inserido na posição será 0 //(zero). Ao final mostrar os valores do vetor e os valores na matriz. #include<stdio.h> #include<stdlib.h> #include<string.h> #include<locale.h> #include<time.h> main(){ int vetor[50], i=0; int matriz[5][10], k, j; srand(time(NULL)); for(i=0; i<50; i++){ vetor[i]=rand()%501; } i=0; for (k=0; k<5; k++){ for (j=0; j<10; j++){ if (vetor[i] >= 250){ matriz[k][j] = vetor[i]; i++; } else { matriz[k][j] = 0; i++; } } } for (k=0; k<5; k++){ for (j=0; j<10; j++){ printf("%d\t", matriz[k][j]); } printf("\n\n"); } } 4. //Faça um programa que crie uma função para verificar se, dadas as medidas de 3 retas, formam um //triângulo. Sabendo que para formar um triângulo a soma das retas opostas precisa ser maior que o //valor da reta observada. Crie a função e aplique seu uso no código do programa. #include<stdio.h> #include<locale.h> #include<stdlib.h> #include<string.h> main(){ setlocale(LC_ALL, "Portuguese"); float l1, l2, l3; printf("\n\tDigite o primeiro lado\n\t"); scanf("%f", &l1); printf("\n\tDigite o segundo lado\n\t"); scanf("%f", &l2); printf("\n\tDigite o terceiro lado\n\t"); scanf("%f", &l3); system("pause"); if (((l1+l2) > l3) || ((l1+l3) > l2)) printf("\t\nÉ possível formar um triângulo"); else if ((l2+l3) > l1) printf("\t\nÉ possível formar um triângulo"); else printf("\t\nÉ impossível formar um triângulo"); } 5. //Faça um programa que crie uma função para, passar 2 parâmetros, sendo eles números reais. //A função deverá retornar qual dos dois valores é o maior. Criar a função e aplicar o seu uso no código do programa. #include<stdio.h> #include<locale.h> float numeros(float num1, float num2){ float numeros; } main(){ setlocale(LC_ALL, "Portuguese"); float a, b; printf("\tDigite o primeiro valor:\n"); scanf("%f", &a); printf("\tDigite o segundo valorl:\n"); scanf("%f", &b); if (a>b) printf("\t\nO primeiro número é maior que o segundo"); if (a>b) printf("\t\nO segundo número é maior que o primeiro"); } 6. //Fazer uma função que receba um caractere como parâmetro e retorne verdadeiro caso o caractere //seja uma consoante, e falso caso seja uma vogal. #include<stdio.h> #include<stdlib.h> #include<string.h> #include<locale.h> #include<time.h> int alfabeto (char v[20]){ if (stcmp(v, "a") == 0 || strcmp(v, "e") == 0 || strcmp (v, "i")== 0 ||strcmp(v, "o")==|| strcmp(v, "u")==0){ printf("falso"); return 0; } else { printf("verdadeiro"); return 0; } } int main(){ char letra [30]; printf("Digite uma letra do alfabeto: "); gets (letra); alfabeto(letra); } 7. //Um estacionamento cobra uma taxa mínima de R$3,00 para estacionar por três horas. Um adicional //de R$2,00 por hora não necessariamente inteira é cobrado após as três primeiras horas. Escreva um //programa que calcule e exiba as taxas do estacionamento para cada cliente que estacionou nessa //garagem ontem. Você deve inserir as horas de estacionamento para cada cliente. O programa deve //exibir a cobrança para o cliente atual e calcular e exibir o total recebido no final do dia. O programa //deve usar uma função valorAPagar para determinar a cobrança para cada cliente. Considere que você //não saiba a quantia de clientes, portanto crie um laço while. #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <time.h> void valorAPagar (){ int hora, preco, adicional, total, i, final, resposta; char nome[40]; adicional=2; final=0; resposta=1; i=0; total=0; while(resposta==1){ printf("\nDigite o nome do cliente\n"); scanf("%s",&nome); printf("\nDigite quantas horas %s ficou estacionado ontem:\n", nome); scanf("%d", &hora); if(hora<=3){ preco=3; total=total+preco; i++; final=final+hora; } else{ preco=(3+((hora-3)*adicional)); total=total+preco; final=final+hora; i++; } printf("\nO preço a ser pago por %s é de R$ %d,00\n", nome, preco); printf("\nDeseja continuar cadastrando? 1 para sim 0 para não\n"); scanf("%d", &resposta); } printf("\nOntem %d cliente estacionaram\n",i); printf("\nCom um total de %d horas estaciondas\n",final); printf("\nO total recebido ontem foi de R$%d,00\n",total); printf("\nPrograma Finalizado! Tenha um bom dia...\n"); } int main() { setlocale (LC_ALL, "Portuguese"); valorAPagar(); getchar(); return(0); } 8. //Escreva uma função desenhaQuadrado(argumento 1, argumento 2) que exibe um quadrado sólido //(o mesmo número de linhas e colunas). O caractere utilizado par preencher o quadrado e o valor do //lado são passados como argumentos (parâmetros) para a função. Por exemplo, se o caractere for x //e o valor do lado for 3, a função deverá exibir: //xxx //xxx //xxx #include <stdlib.h> #include <stdio.h> #include <time.h> #include <locale.h> #include <string.h> void desenhaQuadrado(char x,inta){ int i, k; for(i=0;i<a;i++){ for(k=0;k<a;k++) printf("%c ", x); printf("\n");} } int main(){ setlocale (LC_ALL,"Portuguese"); char bloco; int lado,i,k; printf("Digite o caracter que ira desenhar o bloco: "); scanf("%c%*c", &bloco); printf("Digite o lado do quadrado : "); scanf("%d%*c", &lado); printf("\n\n"); desenhaQuadrado(bloco,lado); } 9. //A prefeitura de uma cidade fez uma pesquisa entre os seus habitantes, coletando dados sobre o //salário e número de filhos. Faça um procedimento que leia esses dados para um número não //determinado de pessoas e retorne a média de salário da população, a média do número de filhos, o //maior salário e o percentual de pessoas com salário até R$950,00 #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <time.h> #include <locale.h> main() { setlocale(LC_ALL, "Portuguese"); float salario, mediaSalario, mediaFilho, porcentagem; int filho,i, r, t, s; int resposta=1; char nome[40]; i=0; r=0; s=0; t=0; while (resposta==1){ i++; printf("\nDigite o nome da pessoa:\n"); scanf("%s%*c", &nome); printf("\nDigite a quantidade de filhos que %s possui.\n", nome); scanf("%d%*c", &filho); printf("\nDigite em o salário de %s, em reais\n", nome); scanf("%f", &salario); t=(salario+t); r=(r+filho); if(salario<=950){ s++; } printf("\nDeseja continuar cadastrando? 1 para sim 0 para não.\n"); scanf("%d%*c", &resposta); } mediaSalario=(t/i); mediaFilho=(r/i); porcentagem=(s/i); printf("\nA media salarial é: %5.2f\n", mediaSalario); printf("\nA media do numero de filhos é: %5.2f\n", mediaFilho); printf("\nA porcentegem de pessoas que ganha até 950.00 reais é: %5.3f\n", porcentagem); system(pause); } 10. //Faça um programa criando uma função que recebe, por parâmetro, um valor N e calcula e escreve //a tabuada de 1 até N. Mostre a tabuada na forma: //1 x N = N //2 x N = 2N #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <time.h> void tabuada (){ int valor, N, a,b; printf("\nDigite o valor N\n"); scanf("%d",&N); i=N; while(a==N){ for(b=1;b<=N;b++){ valor=b*N; a++; printf("\n%d x %d = %d\n",b,N,valor); } } } int main() { setlocale (LC_ALL, "Portuguese"); tabuada(); getchar(); return(0); } 11. //Faça um programa que crie uma função que determina, por meio de passagem de 2 parâmetros //(valor inteiro) a quantidade de linhas e colunas de um vetor: montaMatriz(int linha, int coluna). //Sendo que o primeiro argumento (parâmetro) se refere ao número de linhas e o segundo a colunas. //O programa deverá criar uma matriz de acordo com o tamanho definido pelo usuário (por meio da //passagem de parâmetros). Os valores inseridos na matriz deverão ser criados aleatoriamente com a //função rand(), positivos, inteiros, entra 0 e 200. A função montaMatriz() também deverá mostrar os //valores criados aleatoriamente na matriz. #include <stdio.h> #include <stdlib.h> #include <time.h> int montaMatriz(int linha, int coluna){ int matriz[linha][coluna], i,j; for(i=0;i<linha;i++){ for(j=0;j<coluna;j++){ matriz[i][j]= rand()%201; } } printf("\n\nMatriz:"); printf("\n\n\n"); for(i=0;i<linha;i++){ for(j=0;j<coluna;j++){ printf("%d \t", matriz[i][j]); } printf("\n\n"); } return 0; } int main(){ int a,b; printf("\n Digite um numero: "); scanf("%d", &a); printf("\n Digite um numero: "); scanf("%d", &b); montaMatriz(a,b); getchar(); return 0; } 12. /Faça um programa que crie um arquivo TEXTO em disco, com o nome “dados12.txt”, e escreva neste //arquivo em disco uma contagem que vá de 1 até 100. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> #include <time.h> int main(){ setlocale (LC_ALL, "Portuguese"); int i; char url[] = "\\E:\\Gaby2txt"; FILE *primeiro; primeiro = fopen(url, "w"); for(i=1;i<=100;i++){ printf("\n%d", i); fwrite(&i,sizeof(i),1,primeiro); } fclose(primeiro); printf("\n Programa finalizado"); getchar(); return(0); } 13. //. Faça um programa que leia o arquivo dados12.txt e mostre somente os números divisíveis por 3, ou //seja, os números cujo resto da divisão seja igual a 0 (zero). #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> #include <time.h> int main(){ setlocale (LC_ALL, "Portuguese"); int i; int resto; char url[] = "\\E:\\Gaby2\\Arquivo1txt"; FILE *primeiro; primeiro = fopen(url, "r"); if(!feof(primeiro)){ for(i=1;i<=100;i++){ fread(&i,sizeof(i),1,primeiro); if(i%3==0){ printf("\n%d\n", i); } } } fclose(primeiro); printf("\n\nPrograma terminado"); getchar(); return(0); } 14. //Faça um programa que leia (do teclado) um cadastro de 10 alunos, indicando o nome, nota1, nota2. //Grave os dados em um arquivo chamado notas.txt. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> #include <time.h> int main(){ setlocale (LC_ALL, "Portuguese"); char nome[40]; int idade, i, nota1, nota2; char url[] = "\\E:\\Gaby2\\Notas.txt"; FILE *primeiro; primeiro = fopen(url, "w"); for(i=0;i<10;i++){ printf("\nDigite o nome do %dº aluno:\n", i+1); scanf("%s%*c", &nome); printf("\nDigite a nota 1 de %s:\n", nome); scanf("%d", ¬a1); printf("\nDigite a nota 2 de %s:\n", nome); scanf("%d", ¬a2); fwrite(&nome, sizeof(nome),1,primeiro); fwrite(¬a1, sizeof(nota1),1,primeiro); fwrite(¬a2, sizeof(nota2),1,primeiro); } fclose(primeiro); printf("\n Terminado"); getchar(); return(0); } 15. //Faça um programa que leia o cadastro de 10 alunos armazenado no arquivo notas.txt do exercício //anterior. Calcule e mostre a média de cada aluno. Mostre também se o aluno está aprovado ou //reprovado, considerando a média de aprovação igual ou superior a 6.0. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> #include <time.h> int main(){ setlocale (LC_ALL, "Portuguese"); char nome[40]; int nota1, nota2;int i; float media; char url[] = "\\E:\\Gaby2\\Notas\\Nota2.txt"; FILE *primeiro; primeiro = fopen(url, "r"); if(!feof(primeiro)){ for(i=0;i<10;i++){ fread(&nome,sizeof(nome),1,primeiro); fread(¬a1,sizeof(nota1),1,primeiro); fread(¬a2,sizeof(nota2),1,primeiro); media=(nota1+nota2)/2; printf("\nO aluno %s, tem N1=%d + N2=%d que da uma média de %5.2f\n", nome, nota1, nota2, media); if(media<6){ printf("\nO aluno %s, tem uma nota média de: %5.2f\n", nome, media); printf("\nPortanto o aluno %s está Reprovado\n", nome); } else{ printf("\nO aluno %s, tem uma nota média de: %5.2f\n", nome, media); printf("\nPortanto o aluno %s está Aprovado\n", nome); } } } fclose(primeiro); printf("\n\nPrograma Terminado"); getchar(); return(0); } 16. //Faça um programa que leia pelo teclado o nome e a idade de N pessoas. Não insira nomes repetidos. //Armazene esses dados em um arquivo com o nome idades.txt. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> #include <time.h> int main(){ setlocale (LC_ALL, "Portuguese"); char nome[30]; int idade; int resposta = 1; char url[] = "\\E:\\Gaby2\\Idades.txt"; primeiro = fopen(url, "w"); while(resposta==1){ printf("\nDigite seu o nome:\n"); scanf("%s%*c", &nome); printf("\nDigite sua idade:\n"); scanf("%d", &idade); fwrite(&nome, sizeof(nome),1,primeiro); fwrite(&idade, sizeof(idade),1,primeiro); printf("Deseja continuar? Digite 1 para sim e 0 para não\n"); scanf("%d%*c", &resposta); } fclose(primeiro); printf("\n\n Terminado"); getchar(); return(0); } 17. //Faça um programa que permita fazer uma busca no arquivo idades.txt, criado no exercício 16. O //usuário irá digitar o nome de uma pessoa, e em seguida o programa irá verificar se existe o nome //digitado. Se o programa não encontrar ninguém com o nome digitado, então mostrar uma //mensagem informando que o registro não existe. Se o nome for encontrado, então mostrar uma //mensagem informando que o nome foi encontrado, mostrando ainda: o nome, a idade e o ano de //nascimento da pessoa, objeto da busca. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> #include <time.h> int main(){ setlocale (LC_ALL, "Portuguese"); char nomebusca[30], nome[30]; int idade; int i; char url[] = "E:\Gaby2\Idades.txt"; FILE *primeiro; primeiro = fopen(url, "r"); printf("\nDigite o nome:\n"); scanf("%s%*c", &nomebusca); if(!feof(primeiro)){ fread(&nome,sizeof(nome),1,primeiro); fread(&idade,sizeof(idade),1,primeiro); if(strcmp(nome,nomebusca)==0){ printf("\nO nome %s, consta nos resgitro.\n", nome); printf("\n%s, tem %d anos de idade.\n", nome, idade); printf("\n%s nasceu no ano de: %d\n",nome, 2017-idade); } else{ printf("\nO nome %s, não consta nos registro\n"); } } fclose(primeiro); printf("\n\nPrograma finalizado"); getchar(); return(0); } Referências: SCHEPKE, C. LIMA,J.V. Programação Paralela em Memória Compartilhada e Distribuída. Disponível em: http://www.inf.ufrgs.br/erad2015/downloads/p/mc/mc-schepke.pdf CABRAL, L. Programação Orientada a Objetos Disponível em: http://www.larback.com.br/adm/anexos/06032016233738.Introducao_a_progra macao_orientada_a_objetos.pdf
Compartilhar