Pagina de start a forumului NPG.MyForum.ro


NPG.MyForum.ro
Get Atitude Make Parkour
Raspunde la subiect
matrici si cadene
xt4z
Administrator
Administrator
xt4z
Data inscrierii: 02/Sep/2009
Mesaje: 4
Localitate: Madrid
Raspunde cu citat (quote)
Pasar a mayuscula
/*
1. Escribe un programa que pida al usuario una cadena y
la ponga en mayúsculas, y la imprima después por pantalla.
*/

#include <stdio.h>
#include <string.h>
#define MAX 10
int main(){
char cadena[MAX];
int i;
puts("Introduzca una cadena de texto");
gets(cadena);
for(i=0; i<strlen(cadena); i++){
/*si es una letra minuscula*/
if(cadena[i]>='a' && cadena[i]<='z'){
/*la pasamos a mayuscula*/
cadena[i]=cadena[i]-32;
}
}
puts("La cadena en mayusculas es: ");
puts(cadena);
getchar();
return 0}
------------------------------------------------------------------------------------------------------------------------------------------------------------
contar vocals
#include <stdio.h>
#include <string.h>
#define MAX 10
/*
Hoja de ejercicios sobre cadenas( 1)
2-
Escribe un programa que pida al usuario una cadena y
muestre cuantas caracteres hay en la cadena, y cuantos son vocales y cuantos consonantes.
*/
int main(){
char cadena[MAX];
int i, vocales=0, consonantes=0;
puts("Introduzca una cadena de texto");
gets(cadena);
for(i=0; i<strlen(cadena); i++){
/*si es una letra */
if(cadena[i]>='a' && cadena[i]<='z' ||
cadena[i]>='A' && cadena[i]<='Z' ){
/* si es una vocal */
if(cadena[i]=='a'||cadena[i]=='e'||cadena[i]=='i'||cadena[i]=='o'
||cadena[i]=='u'||cadena[i]=='A'||cadena[i]=='E'||cadena[i]=='I'
||cadena[i]=='O'||cadena[i]=='U'){
vocales++;
}else{//si es una letra y no es una vocal, es una consonante
consonantes++;
}
} //cierra si es una letra
}
printf("La cadena tiene %d caracteres, %d vocales, %d consonantes\n", strlen(cadena), vocales, consonantes);
getchar();
return 0;
------------------------------------------------------------------------------------------------------------------------------------------------------------

sumar cadenzas
/*Escribe un programa que pida al usuario una cadena y...
3- ... diga si la cadena está formada sólo por números o no.
Si sólo hay números, debe decir cuanto suman.*/
#include <stdio.h>
#include <string.h>
#define MAX 10
int main(){
char cadena[MAX];
int suma=0, i;
int soloNumeros = 1;
puts("Introduzca una cadena");
gets(cadena);
for(i=0; i<strlen(cadena);i++){
if(cadena[i]>='0' && cadena[i]<='9'){
suma = suma + cadena[i] - 48;
}else{
soloNumeros=0;
}
}
if(!soloNumeros){
puts("La cadena no contiene solo números");
}else{
printf("Los numeros de la cadena suman %d", suma);
}
getchar();
return 0;
}

------------------------------------------------------------------------------------------------------------------------------------------------------------

INVERTIR CADENA
#include <stdio.h>
#include <string.h>
#define MAX 100
int main(){
char cadena[MAX];
int i;
char aux;
puts("Introduzca una cadena");
gets(cadena);

for(i=0; i<strlen(cadena)/2;i++){
aux=cadena[i];
cadena[i]=cadena[strlen(cadena)- i - 1];
cadena[strlen(cadena)- i - 1]= aux;
}
puts("La cadena invertida es");
puts(cadena);
getchar();
return 0;

}

------------------------------------------------------------------------------------------------------------------------------------------------------------
POLINDROMO
/*Escribe un programa que pida al usuario una cadena y...
5-.... decida si la cadena es un palíndromo.
Hay que ignorar los espacios.*/
#include <stdio.h>
#include <string.h>
#define MAX 100
int main(){
char aux[MAX];
char cadena[MAX];
int i, j, palindromo =1;
gets(aux);
/*copiamos aux sobre cad sin los espacios*/
for(i=0, j=0; i<strlen(aux); i++){
if(aux[i]!=' '){
cadena[j]=aux[i];
j++;
}
}
// j apunta a la siguiente casilla libre
cadena[j]='\0';
for(i=0; i<strlen(cadena)/2; i++){
if(cadena[i]!=cadena[strlen(cadena)-1-i]){
palindromo=0;
}
}
if(palindromo) puts("Es palindromo");
else puts("No es palindromo");
getchar();
return 0;
------------------------------------------------------------------------------------------------------------------------------------------------------------
CONCATENAR
/*6 - Concatenar. Escribe un programa que pida al
usuario dos cadenas y las concatene.
Luego debe mostrar el resultado por pantalla.
Hay que tener en cuenta que la variable en la que
se guarda la concatenación debe ser más larga que
las otras.*/
#include <stdio.h>
#include <string.h>
#define MAX 10
int main(){
char cad1[MAX],cad2[MAX],resul[2*MAX-1];
int i;
puts("Introduzca dos cadenas");
gets(cad1);
gets(cad2);
for(i=0; i<strlen(cad1); i++){
resul[i]=cad1[i];
}
for(i=0; i<strlen(cad2); i++){
resul[strlen(cad1)+ i]=cad2[i];
}
resul[strlen(cad1)+strlen(cad2)]='\0';
puts(resul);
getchar();
return 0;
------------------------------------------------------------------------------------------------------------------------------------------------------------
SUBCADENA
/*7 - Subcadenas. Escribe un programa que pida al
usuario dos cadenas. Debe decir si la segunda aparece
como subcadena en la primera.*/
#include <stdio.h>
#include <string.h>
#define MAX 10
int main(){
char cadena[MAX], sub[MAX];
int i, j, pos;
int subcadena;
gets(cadena);
gets(sub);
for(i=0; i< strlen(cadena)- strlen(sub) +1; i++){
subcadena=1;
for(j=0; j<strlen(sub); j++){
if(cadena[i+j]!= sub[j]){
subcadena=0;
}
}
if(subcadena==1){
pos=i;
break;
}
}
if(subcadena==1){
printf("Es subcadena a partir de la pos %d\n", pos);
}else{
printf("No es subcadena");
} getchar(); return 0;
------------------------------------------------------------------------------------------------------------------------------------------------------------

/*8 - Escribe una programa que pida al usuario dos cadenas, ambas formadas sólo por
números. El programa tiene que decir cual de las dos representa un número mayor.*/
/*Supondremos que las cadenas representan un número positivo y entero*/
#include <stdio.h>
#include <string.h>
#define MAX 10
int main(){
char cad1[MAX], cad2[MAX];
int num1=0, num2=0;
int i, factor=1;
puts("Introduzca 2 cadenas formadas solo por numeros");
gets(cad1);
gets(cad2);
/*primero pasamos las cadenas a números y luego comparamos*/
for(i=strlen(cad1)-1; i>=0; i--){
num1 = num1 + (cad1[i]-48) *factor;
factor = factor*10;
}
printf("la primera: %d\n", num1);
factor=1;
for(i=strlen(cad2)-1; i>=0; i--){
num2 = num2 + (cad2[i]-48) *factor;
factor = factor*10;
}
printf("la segunda: %d\n", num2);

if(num1==num2) puts("Representan el mismo numero");
if(num1>num2) puts("La primera representa un numero mayor");
if(num1<num2) puts("La segunda representa un numero mayor");
fflush(stdin);
getchar(); return 0;
------------------------------------------------------------------------------------------------------------------------------------------------------------

CONTAR PALABRAS
/*Escribe un programa que pida al usuario una cadena
y diga el número de palabras que contiene OTRA SOLUCION*/
#include<stdio.h>
#include<string.h>
#define MAX 20
int main(){
int i,j=0,con=0;
char cad[MAX];
puts ("introduzca una frase\n");
gets (cad);

for(i=0;i<strlen(cad);i++){

if(cad[i]>=97 && cad[i] <=122){ //|| cad[i]>=65 && cad[i]<=90){

if(cad[i-1]<=97 && cad[i-1] >=122){ //|| cad[i-1]<=65 && cad[i-1]>=90){
con++;
}
}
}
//if(cad[i]<=97 && cad[i] >=122 || cad[i]<=65 && cad[i]>=90){
// i++;
//if(cad[i]>=97 && cad[i] <=122 || cad[i]>=65 && cad[i]<=90)con++;

//}
printf("las palabras de la frase son %d",con);
fflush (stdin);
getchar();
return 0;
}
------------------------------------------------------------------------------------------------------------------------------------------------------------

CUANTAS PALABRAS
//Escribe un programa que pida al usuario una cadena
//y diga el número de palabras que contiene.
#include<stdio.h>
#include<string.h>
#define MAX 20
int main(){
int i,j=0,con=1;
char cad[MAX];
puts ("introduzca una frase\n");
gets (cad);

if(cad[0]==' '|| cad[0]==','||cad[0]==':'||cad[0]==';'||cad[0]=='"'||cad[0]=='('||cad[0]=='.'){
printf("no se puede empezar con %c\n",cad[0]);
getchar();
return 0;
}
for (i=0;i<strlen(cad);i++){
//para sumar a contador todo lo que pueda estar delante de una palabra
if (cad[i]==' '|| cad[i]==','||cad[i]==':'||cad[i]==';'||cad[i]=='"'||cad[i]=='('||cad[i]==')'){
con++;
}

if (cad[i]=='.' ) cad[i]='\0';
}
printf("las palabras de la frase son %d",con);

fflush (stdin);
getchar();
return 0;
}
------------------------------------------------------------------------------------------------------------------------------------------------------------

DAR CAMBIO
/*Hoja Mas ejercicios....
4. Escribe un programa que pida al usuario un número, que debe representar una cantidad de dinero. El programa debe decir con qué billetes y monedas se alcanza esa cantidad. Por ejemplo, si el usuario introduce 343,14 , la salida debería ser:
" 1 billete de 200"
" 1 billete de 100"
" 2 billetes de 20"
" 1 moneda de 2 euros"
" 1 moneda de 1 euro"
" 1 moneda de 10 céntimos"
" 2 monedas de 2 céntimos"*/
#include <stdio.h>
#include <math.h>
#define MAX 15
int main(){

double tabla[MAX]={500,200,100,50,20,10,5,2,1,.5,.2,.1,.05,.02,.01};
dublu cantidad;
int i;
scanf("%lf", &cantidad);

for(i=0; i<MAX; i++){
printf("%.0lf billete(s)/moneda(s) de %lf\n", floor(cantidad/tabla[i]),tabla[i]);
cantidad=cantidad-floor(cantidad/tabla[i])*tabla[i];
}
fflush(stdin);
getchar();
return 0;
}

------------------------------------------------------------------------------------------------------------------------------------------------------------

LETRAS REPETIDA
//Escribe un programa que pida al usuario dos cadenas y muestre
//por pantalla los caracteres que están en la primera pero no en la segunda.
#include<stdio.h>
#include<string.h>
#define MAX 10
int main(){
char cad[MAX],cad2[MAX],cad3[MAX];
int i,j,k=0,aux=0;
//pedimos los bucles mediante puts y gets
puts ("escriba una palabra\n");
gets (cad);
puts("escriba otra palabra\n");
gets (cad2);
//abrimos el bucle de la primera cadena
for (i=0;i<strlen(cad);i++){
//iguala,os aux a cero para que siempre que pase por aqui sea 0
aux=0;
//abrimos bucle de cad2 i asi comparamos cada posicion de cad con todo cad2
for(j=0;j<strlen(cad2);j++){
//si algun caracter es igual aux sumara y no se le asignara a cad3
if(cad[i]==cad2[j]){
aux++;
}
}
//cuando hemos terminado de comparar un caracter de cad con todo cad2
// y aux siga siendo =0 ese caracter entrara en cad3
if (aux== 0){

cad3[k] = cad[i];
//con k++ aumentamos la posicion de cad3 para ir metiendo los caracteres de cad
//el la siguiente posicion libre como si fuese un for
k++;

}
}
//en la posicion que corresponda (la ultima) se introducira \0 para cerrar la cadena y la imprima bien
// para aqui cogera el valor que tenga k
cad3[k]='\0';

puts("\nla cadena resultante es \n");
puts (cad3);
fflush(stdin);
getchar();
return 0;
}

------------------------------------------------------------------------------------------------------------------------------------------------------------
/*Escribe un programa que pida al usuario una cadena,
un caracter, y un número, N. El programa debe buscar
la ocurrencia N-ésima del caracter en la cadena y
decir en que posición se da*/
#include<stdio.h>
#include<string.h>
#define MAX 20
int main(){
int i,j=0,c,n=0,k=0;
char cad[MAX],car;
puts("introduzca una frase\n");
gets(cad);
printf("escriba un carcter\n");
scanf("%c",&car);
printf("escriba un numero\n");
scanf("%d",&n);
for(i=0;i<strlen(cad);i++){
if(cad[i]==car){
j++;
if (j==n){
k=i;
printf("la %d ocurrencia que ocupa %c es %d",n,car, k);
break;
}
}
}
if(j< n)printf("La %c no sale tantas veces\n",car);
fflush(stdin);
getchar();
return 0;
}
------------------------------------------------------------------------------------------------------------------------------------------------------------

MAYUSCULA AL INICIO DE FRASE
/*Escribe un programa que pida al usuario una cadena
y la modifique pasando a mayúscula la primera letra de cada palabra.*/
#include<stdio.h>
#include<string.h>
#define MAX 20
int main(){
int i;
char cad[MAX];
puts ("escribe una frase\n");
gets (cad);

if (cad[0]>=97 && cad[0] <= 122){
cad[0]= cad[0]-32;
}

for(i=0;i<strlen(cad);i++){
if(cad[i]==' '){
i++;

if(cad[i]>=97 && cad[i]<=122){
cad[i]=cad[i]-32;
}
}
}
puts(cad);
fflush(stdin);
getchar ();
return 0;

------------------------------------------------------------------------------------------------------------------------------------------------------------

MATRICES
SUMADIAGONAL
#include <stdio.h>
#include <string.h>
#define TAM 2

/*
1-Escribe un programa que pida al usuario
que rellene una matriz cuadrada y :
Calcule cuanto suman los elementos
de la diagonal.
*/
int main(){
int tabla[TAM][TAM],suma=0;
int i,j;

for(i=0; i<TAM; i++){
for(j=0; j<TAM; j++){
printf("posicion (%d,%d)\n",i,j);
scanf("%d", &tabla[i][j]);
}

}
for(i=0; i<TAM; i++){
suma=suma+ tabla[i][i];
}
printf("Los numeros de la diagonal suman %d\n",suma);
fflush(stdin);
getchar();
return 0;
------------------------------------------------------------------------------------------------------------------------------------------------------------

SUMA TODOS NUMEROS DE UN MATRICE
#include <stdio.h>
#include <string.h>
#define FIL 2
#define COL 2
/*
2-Escribe un programa que pida al usuario que rellene una matriz cuadrada y :
Diga cuanto suman todos los elementos de la matriz.*/

int main(){
int tabla[FIL][COL],suma=0;
int i,j;

for(i=0; i<FIL; i++){
for(j=0; j<COL; j++){
printf("posicion (%d,%d)\n",i,j);
scanf("%d", &tabla[i][j]);
}

}
for(i=0; i<FIL; i++){
for(j=0; j<COL; j++){
suma = suma+tabla[i][j];
}

}
printf("Los numeros de la matriz suman %d\n",suma);
fflush(stdin);
getchar();
return 0;
------------------------------------------------------------------------------------------------------------------------------------------------------------

SIMETRICA
#include <stdio.h>
#include <string.h>
#define TAM 2
/*3 -Escribe un programa que pida al usuario que rellene una matriz cuadrada y :
Diga si la matriz es simétrica.*/

int main(){
int tabla[TAM][TAM],simetrica=1;
int i,j;

for(i=0; i<TAM; i++){
for(j=0; j<TAM; j++){
printf("posicion (%d,%d)\n",i,j);
scanf("%d", &tabla[i][j]);
}

}
for(i=0; i<TAM; i++){
for(j=0; j<i; j++){
if(tabla[i][j]!=tabla[j][i]) simetrica=0;
}

}
if(simetrica) printf("Es simetrica\n");
else printf("No es simetrica");

fflush(stdin);
getchar();
return 0;
------------------------------------------------------------------------------------------------------------------------------------------------------------

TRANSPONER
#include <stdio.h>
#include <string.h>
#define TAM 3
/*4-Escribe un programa que pida al usuario
que rellene una matriz cuadrada y :
Transponga la matriz.
Transponer es intercambiar filas por
columnas*/

int main(){
int tabla[TAM][TAM],simetrica=1;
int i,j,aux;

for(i=0; i<TAM; i++){
for(j=0; j<TAM; j++){
printf("posicion (%d,%d)\n",i,j);
scanf("%d", &tabla[i][j]);
}

}
puts("La matriz autentic es:");
for(i=0; i<TAM; i++){
for(j=0; j<TAM; j++){
printf("%d ",tabla[i][j]);
}
printf("\n");
}
for(i=0; i<TAM; i++){
for(j=0; j<i; j++){
/*trasponer es intercambiar la casilla i,j
con la casilla j,i*/
aux=tabla[i][j];
tabla[i][j]=tabla[j][i];
tabla[j][i] =aux;

}

}
puts("La matriz traspuesta es:");
for(i=0; i<TAM; i++){
for(j=0; j<TAM; j++){
printf("%d ",tabla[i][j]);
}
printf("\n");
}
fflush(stdin);
getchar();
return 0;

}
REPETIDOS
/*7-Escribe un programa que pida al usuario
os matrices cuadradas y las multiplique
y guarde el resultado en una tercera matriz.*/
#include <stdio.h>
#include <string.h>
#define TAM 2
int main(){
int tabla[TAM][TAM];
int i,j,k,l,repetido=0;
puts("Introduzca la primera matriz");
for(i=0; i<TAM; i++){
for(j=0; j<TAM; j++){
printf("posicion (%d,%d)\n",i,j);
scanf("%d", &tabla[i][j]);
}
}
for(i=0; i<TAM; i++){
for(j=0; j<TAM; j++){
for(k=0; k<TAM; k++){
for(l=0; l<TAM; l++){
if((i!=k || j!=l) && tabla[i][j]==tabla[k][l]){
repetido=1;
}
}
}
}
}
if(repetido) puts("Hay numeros repetidos");
else puts("No hay numeros repetidos");
fflush(stdin); getchar(); return 0;
------------------------------------------------------------------------------------------------------------------------------------------------------------

SUMAR MATRICES
/*7-Escribe un programa que pida al usuario
os matrices cuadradas y las sum
y guarde el resultado en una tercera matriz.*/

#include <stdio.h>
#include <string.h>
#define TAM 2

int main(){
int tabla[TAM][TAM], tabla2[TAM][TAM], resul[TAM][TAM];
int i,j;

puts("Introduzca la primera matriz");
for(i=0; i<TAM; i++){
for(j=0; j<TAM; j++){
printf("posicion (%d,%d)\n",i,j);
scanf("%d", &tabla[i][j]);
}
}
puts("Introduzca la segunda matriz");
for(i=0; i<TAM; i++){
for(j=0; j<TAM; j++){
printf("posicion (%d,%d)\n",i,j);
scanf("%d", &tabla2[i][j]);
}
}
/*para sumar*/
for(i=0; i<TAM; i++){
for(j=0; j<TAM; j++){
resul[i][j]=tabla[i][j]+tabla2[i][j];
}
}
puts("El resultado es:");
for(i=0; i<TAM; i++){
for(j=0; j<TAM; j++){
printf("%d ", resul[i][j]);
}
printf("\n");
}
fflush(stdin);
getchar();
return 0;

}

------------------------------------------------------------------------------------------------------------------------------------------------------------ MULTIPLICAR MATRICES
/*7-Escribe un programa que pida al usuario
os matrices cuadradas y las multiplique
y guarde el resultado en una tercera matriz.*/

#include <stdio.h>
#include <string.h>
#define TAM 2

int main(){
int tabla[TAM][TAM], tabla2[TAM][TAM], resul[TAM][TAM];
int i,j,k,suma=0;

puts("Introduzca la primera matriz");
for(i=0; i<TAM; i++){
for(j=0; j<TAM; j++){
printf("posicion (%d,%d)\n",i,j);
scanf("%d", &tabla[i][j]);
}
}
puts("Introduzca la segunda matriz");
for(i=0; i<TAM; i++){
for(j=0; j<TAM; j++){
printf("posicion (%d,%d)\n",i,j);
scanf("%d", &tabla2[i][j]);
}
}
/*para multiplicar*/
for(i=0; i<TAM; i++){
for(j=0; j<TAM; j++){
suma=0;
for(k=0;k<TAM; k++){
suma= suma+tabla[i][k]*tabla2[k][j];
}
resul[i][j]=suma;
}
}
puts("El resultado es:");
for(i=0; i<TAM; i++){
for(j=0; j<TAM; j++){
printf("%d ", resul[i][j]);
}
printf("\n");
}
fflush(stdin);
getchar();
return 0;

}
Vezi profilul utilizatoruluiTrimite mesaj privat
animalplanet2


Data inscrierii: 08/Iul/2012
Mesaje: 6
Localitate: Poland
Raspunde cu citat (quote)
I like your post, very interesting indeed.
Vezi profilul utilizatoruluiTrimite mesaj privat
matrici si cadene
Nu puteti crea un subiect nou in acest forum
Nu puteti raspunde in subiectele acestui forum
Nu puteti modifica mesajele proprii din acest forum
Nu puteti sterge mesajele proprii din acest forum
Nu puteti vota in chestionarele din acest forum
Ora este GMT + 2 ore  
Pagina 1 din 1  

  
  
 Raspunde la subiect