domingo, 8 de mayo de 2016

palindromo c++

//construya un algoritmo que lea una FRASE , de largo maximo30 , y determine si es palindromo o //no. El algoritmo debe procesar correctamente frases de mas de una palabra.

#include <iostream>
#include <cstring>
using namespace std;

int main()
{
    int i,j,k=0;
    bool siga;
    char pal[31],respuesta[20];
    cout<<"Por favor digite una palabra de maximo 30 letras(sin espacion ni puntos) :";cin>>pal;
    j=strlen(pal);
    i=0;

    siga=true;
    while(i<j && siga==true){
        if(pal[i]== pal[j-1]){
            i++;
            j--;
        }
        else{
            siga=false;
        }
    }
    if(i<j){
        strcpy(respuesta,"no es palindromo");
    }
    else{
        strcpy(respuesta,"es palindromo");
    }
    cout<<respuesta;
    return 0;
}


//construya un algoritmo que lea una frase del español de maximo 100 caracteres y determine cuantas //palabras , vocales y consonantes tiene.

#include <iostream>
#include <ctype.h>
//tolower() convirte a minusculas
//toupper() convierte a mayusculas
#include <cstring>
using namespace std;
int main()
{
      int i,j,k,r,ct=0,ctvoc=0,ctcon=0;
      char frase[100],voc[10]="aeiou",con[50]="qwrtyplkjhgfdszxcvbnmñ";
      cout<<"Digitar frase de a lo mas 100 letras : ";cin.getline(frase,100);
      j=strlen(frase);
      for (k=0;k<j;k++){
        frase[k]= tolower(frase[k]);
      }
      r=strlen(con);
      ct=1;
      for(k=0;k<j;k++){
        if(frase[k]==' '){
            ct++;
        }
      }
      for(i=0;i<j;i++){
        for(k=0;k<5;k++){
            if (frase[i]==voc[k]){
                ctvoc++;
            }
        }
        for(k=0;k<r;k++){
            if (frase[i]==con[k]){
                ctcon++;
            }
        }
      }
      cout<<"tiene "<<ct<<" palabras."<<endl;
      cout<<"tiene "<<ctvoc<<" vocales."<<endl;
      cout<<"tiene "<<ctcon<<" consonantes."<<endl;
      return 0;

}

jueves, 5 de mayo de 2016


  • Escriba un algoritmo que lea dos arreglos de números enteros ordenados ascendentemente y luego produzca la lista ordenada de la mezcla de los dos.


#include <iostream>
using namespace std;

int main()
{
    int lar1,lar2,i,largo,aux;
    cout<<"Ingrese largo del primer arreglo: ";cin>>lar1;
    cout<<"Ingrese largo del segundo arreglo: ";cin>>lar2;
    largo=lar1+lar2;
    int a1[lar1],a2[lar2],a3[largo];
    cout<<"___________________________________"<<endl;
    cout<<"------ llenar primer arreglo -----"<<endl;
    for(i=0;i<lar1;i++){
        cout<<"Ingrese valor "<<i+1<<" ; ";cin>>a1[i];
    }
    cout<<"Arreglo1 ordenado : [ ";
    for(i=0;i<lar1;i++){
        cout<<a1[i]<<" ";
    }
    cout<<"]"<<endl;
    cout<<"___________________________________"<<endl;
    cout<<"------ llenar segundo arreglo -----"<<endl;
    for(i=0;i<lar2;i++){
        cout<<"Ingrese valor "<<i+1<<" ; ";cin>>a2[i];
    }
    cout<<"Arreglo2 ordenado : [ ";
    for(i=0;i<lar2;i++){
        cout<<a2[i]<<" ";
    }
    cout<<"]"<<endl;
    cout<<"___________________________________"<<endl;
    for(i=0;i<largo;i++){
        if(i<lar1){
            a3[i]=a1[i];
            //cout<<"entro en if :"<<a3[i]<<endl;
        }
        else{
            a3[i]=a2[i-lar1];
            //cout<<"entro en else :"<<a3[i]<<endl;
        }
    }
    for(i=0;i<largo;i++){
        for(int j=0;j<largo-1;j++){
            if(a3[j]>a3[j+1]){
                aux=a3[j];
                a3[j]=a3[j+1];
                a3[j+1]=aux;
            }
        }
    }
    cout<<"Arreglo ordenado : [ ";
    for(i=0;i<largo;i++){
        cout<<a3[i]<<" ";
    }
    cout<<"]"<<endl;
    cout<<"___________________________________"<<endl;

    return 0;
}

martes, 19 de abril de 2016

clase 19-04

1.- el profesor de edd desea comparar su apresiacion de cantidad de alumnos aprobados del curso, con la encuensta que le hara a los alumnos. El dice que aprobara el 55% siponga que la respuesta de los estudiantes se encuentra en una lista (L) , donde la respuesta es:
0: si esta deacuerdo con el profesor.
1: si no esta deacuerdo con el profesor
se pide :
a.- hacer la funcion acuerdo (L) , que reciba L y retorna el % de alumnos que esta de acuerdo con el profesor
b.- hacer la funcion booleanda porcent(L) , que recibe L, que recibe L y retorna true , si el % que esta de acuerdo con el profesor es mayor o igual a lo que indica , y false en caso contrario.
c.- hacer la funcion agregar(L),que recibe la lista, y agrega 2 nodos ,1 con la cantidad de alumnos  que esta deacuerdo y otro al inicion con al cantidad de alumnos que no estan deacuerdo.

ayudantoa 19-04

1.-hacer una funcion recursiva, que retorna la suma de todos los elementos de una lista de largo N

int f (lista p){
    if (d->link==null){
        return p->dato;
    }
    else{
         return p->dato+f(p->link);
   }

}

int main(){
      lista p,q;
      p->dato=p;
      p->link=null;
      q->dato=q;
      q->link=p;
      p->link=q;





2.-Hacer una funcion real que retorna la cantidad de nodos iguales y un valor x