# Lec15-CS110 Computational Engineering

50 %
50 %
Education

Published on March 3, 2014

Author: SriHarsha1508

Source: slideshare.net

## Description

A keynote on Problem Solving using Computers

Data I/O Lecture 15 February 11, 2008

Lab • Lab starts next week again • State in your feedback form if you need a shift from the current allocated day along with reason. Write your roll number in this case. • Shift is permitted only if you have to participate in other IIT M certified activity. • Current allocation – – – – – RFID 1 - 60 (Mon) RFID 61-120 (Tue) RFID 121-180 (Wed) RFID 181-240 (Thurs) RFID 241-300 (Fri)

Lab • NO MORE RE-ALLOCATION POSSIBLE AFTER TODAY.

printf() function • printf(control string, arg1, arg2,…,argn)

printf() %c - single character %d - decimal integer %e - Floating point %f - Floating point %i - decimal, hexadecimal or octal integer %o - octal integer

printf() %s - String %u - unsigned decimal %X - hexadecimal

Small issues #include <stdio.h> main() { char item[20]; int partno; float cost; printf(“%s %d %f”,item,partno,cost); // printf(“%s%d%f”,item,partno,cost); }

Small issues #include <stdio.h> main() { double x = 5000.0, y = 0.0025; printf(“%f %f %fn”,x,y,x*y); printf(“%e %e %en”,x,y,x*y); } 5000.000000 0.002500 12.500000 5.000000e+03 2.500000e-03 1.250000e+01

Small issues #include <stdio.h> main() { /*minimum field width specifications */ int i = 12345; float x = 345.678; printf(“%3d %8dn”,i,i); printf(“%3f %13fn”,x,x); printf(“%3e %16en”,x,x); } 12345 bbb12345 345.678000 bbb345.678000 3.456780e+02 bbbb3.456780e+02

Small issues #include <stdio.h> main() { /*minimum field width specifications */ float x = 345.678; printf(“%3g %13gn”,x,x); } 345.678 bbbbbb345.678 %g - shortest of the %f and %e representations.

Small issues #include <stdio.h> main() { /*Floating point precision */ float x = 123.456; printf(“%7f %7.3f %7.1fn”,x,x,x); } Rounding 123.4560000 123.456 bb123.5

Small issues #include <stdio.h> main() { /*Floating point precision */ float x = 123.456; printf(“%12e %12.5e %12.3en”,x,x,x); } Rounding 1.234560e+02 1.23456e+02 bbb1.235e+02

Small issues #include <stdio.h> main() { /*Floating point precision */ float x = 123.456; printf(“%e %.5e %.3en”,x,x,x); } Rounding and no leading blank spaces 1.234560e+02 1.23456e+02 1.235e+02

Small issues #include <stdio.h> main() { /*String precision */ char ln[12]; …… printf(“%10s %15s %15.5s %.5s”,ln,ln,ln,ln); } Let ln be hexadecimal; always right justified. hexadecimal bbbbhexadecimal bbbbbbbbbbhexad hexad

Interesting stuffs #include <stdio.h> main() { short a,b; long c,d; …… printf(“%5hd %6hx %8lo %lu”,a,b,c,d); } Minimum field width specification for int datatypes.

Interesting stuffs #include <stdio.h> main() { /* Uppercase conversion */ int a = 0x80ec; float b = 0.3e-12; printf(“%4x %10.2en”,a,b); printf(“%4X %10.2En”,a,b); } 80ec 3.00e-13 80EC 3.00E-13

Interesting Prefixes • - means left justified • + means + should appear before positive numbers • 0 means leading zeros instead of blanks • ‘ ‘ means blanks space before positive values • # in front of octal and hex mean print 0 and 0x in front respectively. • # in front of e-, f-, g- mean put a decimal point even if whole number

A sample program #include<stdio.h> main() { int j = 123; printf(“%6dn”,j); printf(“%-6dn”,j); printf(“%+6dn”,j); printf(“%-+6dn”,j); } bbb123 123bbb bb+123 +123 //The same for justifying strings

The gets() and puts() • Reads till end-of-line character #include<stdio.h> main() { char line[80]; gets(line); puts(line); }

The fprintf() • Similar to printf() but uses a file pointer • Similarly – fgets(fpt,..); fputs(fpt,..); – ch = getc(fpt); putc(ch,fpt); • fclose(fpt); versus fcloseall();

Binary files • fopen(“…”,”rt”); open for read as text and is default, the suffix “t” is not needed – Equivalent to fopen(…,”r”); • fopen(“…”, “rb”); open for read as binary – You may use the fwrite() command on this file

Binary files • Advantage is as follows – Four digit integers need 2 bytes – fprintf() etc. stores it in TEXT form - so 4 bytes – fwrite() stores in binary form - 2 bytes on a file opened in binary write mode – 50% space savings - assume it stores one million numbers.

A sample program #include<stdio.h> main() { FILE *fp; int I; if ((fp=fopen(“binval.dat”,”wb”)) == NULL) printf(“n ERRORn”); else { for (I = 10001; I <= 11000; I++) fwrite(&I, sizeof(int), 1, fp); } fclose(fp); }

Creative Question • Given a Black box that takes as input two lower triangular matrices and outputs the product of the same, use the black box to multiple two arbitrary square matrices.

 User name: Comment:

## Related presentations

#### Webliografia: Rechazo al Conectivismo

February 23, 2018

#### UPSC IAS Essay-Question-2017

February 23, 2018

#### SAP EWM Training Material | SAP EWM PPT

February 23, 2018

#### The Secret of Successful webdesign

February 23, 2018

#### The Best Way To webdesign

February 23, 2018

#### Everything You Need to Know About Root Canal

February 23, 2018