Uploaded by ThunderBolt

Programación en C resumen

advertisement
Programació en C
domingo, 1 de noviembre de 2020
20:07
//Variables
#include <stdio.h>
int main() {
int x; //Enter: nombre sense decimals (5, -5) 16 bits {2^16}
float y; //Flotant: nombre amb decimals (9.5) 32 bits {2^32}
double z; //Flotant: nombre amb decimals (-10.5) 64 bits {2^64}
char n; //Caràcter: caràcter alfanumèric, ASCII (A o 64 és el mateix)
x = 5;
y = 9.5;
z = -10.5;
n = 'a';
printf("Valor de x: %d.\n",x);
printf("Valor de y: %f.\n",y);
printf("Valor de z: %f.\n",z);
printf("Valor de n: %c.\n",n);
system ("pause");
return 0;
}
//Asignació de valors i operacions amb variables
#include <stdio.h>
#define PI 3.1416
// #define: defineix un nombre
int main() {
float x;
int y;
x = PI;
printf ("Introdueix un valor per y: "); //Printf: Introdueix textos
scanf("%i",&y);
//Scanf: Introdueix números
printf ("El valor de y es: %i\n\n",y); // \n: crea un espai entre linia i linia
Fonaments d'informàtica página 1
printf ("El valor de y es: %i\n\n",y); // \n: crea un espai entre linia i linia
x = x*y; //Si es fa una operació la variable varia
printf("El nou valor de x es: %f\n\n.",x);
system("pause"); //System("pause") és necessari per netejar el tabulador
return 0;
}
//Asignació i operacions bàsiques
#include<stdio.h>
#include<math.h> // <math.h>: Biblioteca d'operacions ampliades
int main () {
int x,y;
x=10;
y=2;
//Operacions bàsiques
x = x+y; // o també x += y;
printf("El valor de x+y es: %i\n",x,y);
x = x-y; // o també x -= y;
printf("El valor de x-y es: %i\n",x,y);
x=x*y; // o també x *= y;
printf("El valor de x * y es: %i\n",x,y);
x=x/y; // o també x /= y;
printf("El valor de x/y es: %i\n",x,y);
/* x=x%y; //o també x %= y;
printf("El valor de x%y es: %i\n",x,y); */
x = pow (y,x); // y^x pow: eleva un nombre dins d'un altre nombre
printf("El valor de y elevado a x es: %i \n",x);
x = sqrt (x); // x^(1/2) sqrt: fa l'arrel quadrada d'un nombre
printf("El valor de l'arrel quadrada de x es: %i\n",x);
//Operadors de increment
Fonaments d'informàtica página 2
x++; //x++: Suma +1 a una variable
printf ("El valor de x++ es: %i\n",x);
x--; //x--: Resta -1 a una variable
printf ("El valor de x-- es: %i\n",x);
system("pause");
return 0;
}
//Errors comuns
//ERRORS COMUNS
/*
1. Guardar en .c sempre
2. Ausència del signe al final de cada funció ' ; '
3. Declarar variables que no existeixen
*/
//Estructures selectives
#include <stdio.h>
int main () {
int x;
x = 5;
if (x == 4) {
/* if: si és veraç la condició s'executa
'=='(igual que) '<'(més petit que) '<=' '>' '>='(més gran o igual que) '!='(diferent que)
*/
printf("El valor de x es 5 \n");
}
else { // else: si la primera condició no es compleix s'executa aquest codi
printf("El valor de x no es 5 \n ");
Fonaments d'informàtica página 3
}
system("pause");
return 0;
}
//Exercici de condició if/else
//Variable entera e iniciamos valor entre 1 y 10, solicitamos número
y lo revisamos.
#include <stdio.h>
int main () {
int x,y;
x = 4;
printf("Encerta el numero x! \nIntrodueix un valor: \n");
scanf("%i",&y);
if(x==y) {
printf("Has encertat el numero \n");
}
else {
printf("Intenta-ho una altre vegada \n");
}
system("pause");
return 0;
}
/*Realitzar programa que llegueixi un número enter positiu i escrigui en la
sortida estandar si és par o impar */
#include<stdio.h>
int main () {
int numero;
printf("Escriu un numero:");
scanf("%d",&numero);
Fonaments d'informàtica página 4
scanf("%d",&numero);
if (numero%2==0) {
printf("%d es par \n",numero);
}
else {
printf("%d es impar \n",numero);
}
system("pause");
return 0;
}
//Exercici if/else anidades
/* Realitzar programa que llegueixi un número entre 1 i 4. Desprès
retorni el dia de la semana corresponent. */
#include<stdio.h>
int main () {
int x;
printf("Introdueix un numero entre 1 i 4:");
scanf("%d",&x);
if(x==1) {
printf("Dilluns\n");
}
else if (x==2) {
printf("Dimarts\n");
}
else if(x==3) {
printf("Dimecres\n");
}
else if(x==4) {
printf("Dijous\n");
}
else {
printf("El numero no esta entre 1 i 4\n");
}
Fonaments d'informàtica página 5
}
system("pause");
return 0;
}
//Exercici switch
/* Realitzar programa que llegueixi un número entre 1 i 4.
Desprès retorni el dia de la semana corresponent.
*/
#include<stdio.h>
int main () {
int x;
printf("Introdueix un numero entre 1 i 4:");
scanf("%d",&x);
switch (x) {
//switch: no funciona per float (només enters, int)
case 1: printf("Dilluns\n");break; //break: acaba el switch i passa al final
case 2: printf("Dimarts\n");break;
case 3: printf("Dimecres\n");break;
case 4: printf("Dijous\n");break;
default: printf ("El numero no esta en el rang establert\n"); //default: si cap dels cases funciona s'executa
}
system("pause");
return 0;
}
//Condicions múltiples
/*Fer un programa que digui si un número insertat es troba entre 1 i 10 o si no ho està*/
#include <stdio.h>
int main () {
int y;
printf("Introdueix un numero:");
scanf("%i",&y);
if (y >= 1 && y <= 10) {
//'&&' es igual a 'i', las dos condicions s'han de complir
printf("El numero %i es troba entre 1 i 10\n",y);
}
else {
Fonaments d'informàtica página 6
else {
printf("El numero %i no es troba entre 1 i 10\n",y);
}
system("pause");
return 0;
}
/*Fer un programa que digui si un número insertat es troba entre 1 i 10 o si no ho està*/
#include <stdio.h>
int main () {
int y;
printf("Introdueix un numero:");
scanf("%i",&y);
if (y >= 1 || y <= 10) { // '||' es igual a 'o', si una de les condicions es certa s'executa
printf("El numero %i es troba entre 1 i 10\n",y);
}
else {
printf("El numero %i no es troba entre 1 i 10\n",y);
}
system("pause");
return 0;
}
/*Escriure un programa que llegueixi tres numeros, hores, minuts, segons i torni l'hora
que sigui al cap d'un segon, vigilant que sigui l'hora correcte*/
#include <stdio.h>
int main () {
int h,min,seg;
printf("Escriu l'hora:");
scanf("%i",&h);
printf("Escriu els minuts:");
scanf("%i",&min);
printf("Escriu els segons:");
scanf("%i",&seg);
if(h<=23 && min<=59 && seg<=59) {
Fonaments d'informàtica página 7
seg += 1; // += s'utilitza per sumar a una variable algún número sense repetir-la
if (seg==60) {
min+=1;
seg= 0;
}
if(min==60) {
h+= 1;
min=0;
}
if(h==24) {
h=0;
}
printf("L'hora es %i:%i:%i\n",h,min,seg);
}
else {
printf("L'hora no es correcte\n");
}
system("pause");
return 0;
}
//Estructures while/for
/* Escriu un programa que llegueixi dos números i mostri per pantalla
tots els números que estan entre aquests números
*/
#include <stdio.h>
int main () {
int x,y,z;
printf("Escriu el primer numero:");
scanf("%i",&x);
printf("Escriu el segon numero:");
scanf("%i",&y);
Fonaments d'informàtica página 8
scanf("%i",&y);
//bucle for
for (z=x+1;z<y;z++) {
printf("%i",z);
}
printf("\n");
//bucle while
z = x+1;
while(z<y) {
printf("%i",z);
z++;
// ++ es necesaari per evitar que vagi al infinit el programa
}
printf("\n");
system("pause");
return 0;
}
//Exercici for
//Realitza un programa que imprimeixi la suma dels numeros pars entre 2 i 1000
#include<stdio.h>
int main () {
int x;
float suma;
suma=0;
/* for(x=2;x<=2000;x+=2) {
suma +=x;
}
printf("El resultat de la suma es:%f\n",suma); */
x=2;
while(x<=2000) {
x+=2;
suma+=x;
}
printf("El resultat de la suma es:%f\n",suma);
Fonaments d'informàtica página 9
printf("El resultat de la suma es:%f\n",suma);
system("pause");
return 0;
}
//Realitzar programa que calculi mitja de x numeros.
#include<stdio.h>
int main() {
int x,y,i;
float suma;
printf("Quants numeros vols de mitja aritmetica:");
scanf("%i",&x);
i=0;
suma=0;
while(i<x) {
printf("Escriu el %i numero: ",i+1);
scanf("%i",&y);
suma+=y;
i++;
}
suma = suma/x;
printf("La mitjana aritmetica es %f\n",suma);
system("pause");
return 0;
}
//Bucle while
/*Fer un bucle que ens pregunti si volem continuar i fins
que no escrivim la lletra 's' no s'aturi */
#include<stdio.h>
int main() {
char x;
do{
printf("Adivina la lletra correcte:");
fflush(stdin); //fflush neteja el buffer per evitar errors al compilar
scanf("%s",&x);
}while(x!='s');
Fonaments d'informàtica página 10
printf("Ho has adivinat! La lletra correcte es s\n");
system("pause");
return 0;
}
/* Escriu un programa que llegueixi dos números (el segon major que el primer)
i mostri per pantalla tots els números que estan entre aquests números.
*/
#include <stdio.h>
int main () {
int x,y,z;
printf("Escriu el primer numero:");
scanf("%i",&x);
do{
printf("Escriu un nombre major a l'anterior:");
scanf("%i",&y);
}while (y<x);
for (z=x+1;z<y;z++) {
printf("%i",z);
}
printf("\n");
system("pause");
return 0;
}
//Bucles aninats
//Fer les taules de multiplicar del 1 al 9
#include<stdio.h>
int main () {
int i,j;
for(i=1;i<=9;i++) {
for(j=1;j<=10;j++) { //bucle dintre de bucle, al arribar a 10, reinicia pero amb 2
printf("%i x %i = %i\n",i,j,i*j);
}
printf("\n");
system("pause"); //system pause: serveix per anar fent bucle per bucle
Fonaments d'informàtica página 11
system("pause"); //system pause: serveix per anar fent bucle per bucle
}
system("pause");
return 0;
}
//Fer un cronometre que començi quan es presiona l'espai
#include<stdio.h>
#include<windows.h> //llibreria
int main () {
int h,m,s,x;
x = 1000;
for(h=0;h<24;h++) {
for(m=0;m<60;m++) {
for(s=0;s<60;s++) {
printf("%02i:%02i:%02i\r",h,m,s); // \r sobreescriu la linia del compilador %02 fa
que apareixin dos numeros
Sleep(x); //para el procés durant un temps determinat (milisegons)
}
}
}
system("pause");
return 0;
}
//Trucs
#include <locale.h>
int main(int argc, char *argv[]) {
setlocale(LC_ALL,"");
// "Els accents es mostren correctament!
fflush(stdin); // buida el buffer del teclat
Podeu buidar la pantalla amb la funció _clrscr();, de la llibreria conio.h.
//Funcions
Fonaments d'informàtica página 12
#include<stdio.h>
int maxima (); //necessari per funcionar
int main() {
int x,y;
x=3;
y=5;
maxima (x,y); //esta escrita despres pero s'executa ara, s'ha de ficar (x,y) per pasar variables
printf("El valor de x es %i i el valor de y es %i a main\n",x,y);
system("pause");
return 0;
}
int maxima (a,b) { // a = x b = y INTERCANVI DE VARIABLES per només aquesta funció, a l'altre x/y no
varia
printf("El valor de x es %i i el de y es %i a la funcio maxima\n",a,b);
a=6;
b=8;
return 0;
}
//Calcular el numero major entre dos numeros
#include<stdio.h>
int maxima (); //necessari per funcionar
int main() {
int x,y,max;
x=3;
y=10;
max=maxima(x,y);
printf("El valor maxim es %i\n",max);
system("pause");
return 0;
}
int maxima (int a,int b) { // a = x b = y INTERCANVI DE VARIABLES per només aquesta funció, a l'altre
x/y no varia
Fonaments d'informàtica página 13
x/y no varia
int aux;
if(a<b) {
aux=b;
}
else {
aux=a;
}
return aux; //Nomes es pot retornar un valor,
}
//Calcular el factorial de 2 numeros amb una funció EL FACTORIAL ES 3!= 3+2+1=6
#include<stdio.h>
int funcio ();
int main () {
int x,y,fact1,fact2;
printf("Introdueix dos numeros:");
scanf("%i%i",&x,&y);
fact1=funcio(x);
fact2=funcio(y);
printf("El factorial del numero %i es %i\n",x,fact1);
printf("El factorial del numero %i es %i\n",y,fact2);
system("pause");
return 0;
}
int funcio(int a) { // x=a y=b
int i,aux;
aux=1;
for(i=1;i<=a;i++) {
aux*=i;
}
return aux;
}
Fonaments d'informàtica página 14
//Vectors
//Arrays/Vectors: Donarli valor a 10 enters i llegir-los
#include<stdio.h>
int main() {
/*
int v[] = {3,5,8,7,9}; //El numero 3 ocupa la posició 0, el 9 la posició 4.
int i;
for(i=0;i<5;i++) {
printf("%i,",v[i]); //El i dintre del vector va variant, v[0] 1 2 3 v[4]
}
*/
int v[10];
int i;
for(i=0;i<10;i++) {
printf("Donali valor al vector a la posicio %i:",i); //bucle que dona valors al vector
scanf("%i",&v[i]);
}
for(i=0;i<10;i++) {
printf("%i,",v[i]); //mostra els valors del bucle
}
printf("\n");
system("pause");
return 0;
}
//Vectors amb funcions: Introduir elemnts a un vector amb unaa funció
#include<stdio.h>
void fun (int a[]);
//s'han de colocar el voids de les funcions utilitzades a l'inici
void imprimir (int b[]);
int main() {
int v[2];
fun (v);
imprimir (v);
Fonaments d'informàtica página 15
imprimir (v);
system("pause");
return 0;
}
void fun(int a[]) {
int i;
for(i=0;i<2;i++) {
printf("Introdueix un valor al vector:");
scanf("%i",&a[i]);
}
}
void imprimir(int b[]) {
int i;
for(i=0;i<2;i++) {
printf("%i,",b[i]);
}
printf("\n");
}
//Ordenar un vector de 10 enters de menor a major mitjançant una funció.
#include<stdio.h>
void ordenar(int a[]);
void mostrar(int b[]);
int main() {
int v[10] = {6,9,2,0,8,1,7,2,1,4};
ordenar(v);
mostrar(v);
system("pause");
return 0;
}
void ordenar(int a[]) {
int i,j,aux;
for(i=0;i<10;i++) {
for(j=i;j<10;j++) {
if(a[i]>a[j]){
aux=a[i];
a[i]=a[j];
a[j]=aux;
Fonaments d'informàtica página 16
a[j]=aux;
}
}
}
}
void mostrar(int b[]) {
int i;
printf("El vector ordenat de menor a major es:");
for(i=0;i<10;i++) {
printf("%i",b[i]);
}
printf("\n");
}
//Vectors amb punters: Introdueix valors numerics en un erray mitjançant punters
#include<stdio.h>
void funcio (int *vec);
void lectura (int *vec);
int main() {
/*
int vec[] = {1,2,3};
int i;
for(i=0;i<3;i++) {
printf("%i",*(vec+i)); //vec[0] ==> *(vec+0) |ÉS EL MATEIX|
}
*/
int vec[3];
funcio (vec);
lectura (vec);
system("pause");
return 0;
}
void funcio(int *vec) {
int i;
for(i=0;i<3;i++) {
printf("Introdueix un valor per la posicio %i:",i+1);
Fonaments d'informàtica página 17
printf("Introdueix un valor per la posicio %i:",i+1);
scanf("%i",(vec+i));
}
}
void lectura(int *vec) {
int i;
for(i=0;i<3;i++) {
printf("%i,",*(vec+i));
}
printf("\n");
}
//STRINGS
//Strings: Introduir una frase com a cadena de caracters
#include<stdio.h>
#include<string.h> //llibreria necessaria per comparar strings
int main() {
/*
char vector[12]; //hola que tal\c
printf("Introdueix una frase:");
gets(vector); //gets emmagatzema el char, pero sobreescriu i pot crashear el programa
printf("%s\n",vector);
//
fgets(vector,13,stdin);
printf("%s\n",vector)
*/
//compara 2 cadenes de caracters
char c1[5];
char c2[5];
printf("Introdueix la primera frase:");
fgets(c1,5,stdin);
printf("Introdueix la segona frase:");
fflush(stdin);
fgets(c2,5,stdin);
Fonaments d'informàtica página 18
fgets(c2,5,stdin);
if(strcmp(c1,c2) == 0) {
printf("Els dos strings son iguals\n");
}
else{
printf("Els dos strings no son iguals\n");
}
system("pause");
return 0;
}
Fonaments d'informàtica página 19
Download