Homework 7… 마지막 수업시간까지 (실습) 매개변수로 입력 받아 처리할 수 있도록 수정해 보세요

Slides:



Advertisements
Similar presentations
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.
Advertisements

기초C언어 제1주 실습 강의 소개, C언어 개요, Cygwin/Eclipse 사용 컴퓨터시뮬레이션학과 2016년 봄학기
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
제3장 C 프로그래밍 환경.
1장 리눅스의 기본 개념과 프로그램 작성 리눅스의 기본 개념 시스템에 접속하기 리눅스의 프로그래밍 환경
Database Laboratory, Hong Ik University
Power Java 제3장 이클립스 사용하기.
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
C 프로그래밍 소개 숙명여대 창병모 2011 가을.
Cross Compiler를이용한 커널 컴파일 및 포팅
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
Chapter 7. 조건문.
Linux System Programming
데이터 파일 C 데이터 파일과 스트림(Stream) 텍스트 파일 처리
제15장 파일 입출력 문자열을 출력하는 여러가지 방법 (15-2쪽) 문자열만 처리하는 입출력 함수
양방향 파이프의 활용 양방향 통신 파이프는 기본적으로 단방향이므로 양방향 통신을 위해서는 파이프를 2개 생성한다.
12장 파이프.
C / C++ Programming in multi platform
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Homework 6… 12월 2일(금) 11:59pm까지 자신의 이름과 학번을 출력해 주는 유닉스/리눅스 네트워크 소켓 서버 프로그램 과 클라이언트 프로그램 을 작성해 보세요 참고 (실습1) Hello 프로그램 helloserver.c helloclient.c 컴파일.
파일 기술자 파일 기술자 현재 열려있는 파일을 구분하는 정수값 저수준 파일 입출력에서 열린 파일을 참조하는데 사용
Cross Compiler 설치.
2007 1학기 11 프로젝트 기초 실습.
10장 C 표준 파일 입출력 子曰 學而時習(실습?)之 不亦悅乎.
Cross Compiler를이용한 커널 컴파일 및 포팅
13. 연산자 오버로딩.
JA A V W. 03.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
어서와 C언어는 처음이지 제14장.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
Homework #6 (1/3) 다음을 수행한 후, 화면(혹은 파일)을 출력하여 제출한다.
Device Driver 임베디드 시스템 I.
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express Slide 1 (of 22)
UNIX Unbounded A Beginning Approach
Homework #6 (1/3) 다음을 수행한 후, 화면(혹은 파일)을 출력하여 제출한다.
연산자 (Operator).
작은 분야의 일을 훌륭하게 해내는 자그마한 도구들을 개발자들에게 제공하고 개발자들은 이 도구들을 창의적으로 결합하여 사용하자.
컴퓨터 프로그래밍 기초 - 5th : 조건문(if, else if, else, switch-case) -
김선균 컴퓨터 프로그래밍 기초 - 7th : 함수 - 김선균
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
제9장 C 프로그래밍 환경 TOPCIT (Test of Practical Competency in IT)
5장 선택제어문 if 선택문 switch-case 선택문 다양한 프로그램 작성 조건 연산자.
Fflush 사용이유 및 방법 [이유] 키보드에서 입력된 내용은 입력버퍼에 저장되었다가 Enter 키가 들어오면 프로그램으로 전달됨 이 때 입력버퍼에 있는 Enter 키도 프로그램으로 전달됨 그러므로 아래와 같은 프로그램에서 문자 하나를 입력해도 Enter키도 입력된 것으로.
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
( Windows Service Application Debugging )
^^ Computer Programming 2 dmpr.cnu.ac.kr/~daygax.
함수(Function) ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
제 6 강 Getting started.
Lab 1. 시스템 호출을 이용하는 mycp.c mycphint1.c & mycphint2.c coding & compile & run 제출 방법 (집에서도 접속 가능합니다) 2 Electronic versions: multi.incheon.ac.kr ( )의.
시스템 인터페이스 Lab#5 쉡 실습.
Homework #12 (1/2) 프로그램을 작성하고, 프로그램과 실행 결과를 프린트하여 제출한다.
GDB - GNU Debugger 김진용.
Homework #5 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
Homework #8 (실습 #7) [1/2] 다음을 수행하는 PHP 프로그램을 작성하여 프로그램과 결과물을 프린트하여 제출한다. sin(45º), cos(45º), tan(45º)를 출력하는 프로그램을 작성하시오. 피보나치 수를 구하는 함수 fib($n)을 작성하고,
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
Homework #3 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
함수, 모듈.
컴퓨터 프로그래밍 기초 - 9th : 배열 / 포인터 -
실습과제 1번 생성된 파일 basic.txt를 프로젝트 폴더에서 메모장으로 열고 내용을 확인
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
과제 4: Thread (5월 9일까지) 4장 연습문제 풀이
argc, argv 의 사용방법 #include <stdio.h>
숙제 작성 및 제출 과정 김진하 2008/03/14.
Homework #7 (1/3) 1. 다음 순서에 따라 수행하고, 그 과정의 화면을 캡쳐한다.
Docker Study 6~7.
SPL-Duino 블록 편집기 이용하기 전류센서 블록 만들기 SPL-Duino 블록 편집기를 실행합니다.
1. 실습 시간에 수행한 avd 생성 및 실행, adb shell 접속 및 명령어 수행 결과를 제출한다.
Presentation transcript:

Homework 7… 마지막 수업시간까지 (실습) 매개변수로 입력 받아 처리할 수 있도록 수정해 보세요 (A반) 1 부터 9 까지의 숫자를 입력 받아 입력 받은 라인의수 만큼 피라미드를 출력하는 코드 pyramid.c 를 작성하세요 (단, 공백 1칸의 크기는 별1개의 크기와 같다) (예) $ ./pyramid 출력할 피라미드의 라인 수를 입력하세요 : 3[Enter] * *** ***** (B반) 1 부터 입력 받은 수까지 짝수의 합을 출력하는 코드 evensum.c를 작성하세요 (예) $ ./evensum 값을 입력하세요 : 10[Enter] 짝수의 합 = 30 (C반) 숫자,연산자,숫자의 순으로 입력하여 사칙연산( +, -, /, * )을 수행하는 계산기 코드 calc.c를 작성하세요 (예) $ ./calc 계산식을 입력하세요 : 3*4[Enter] 3 * 4 = 12 화면단위로 화일 내용을 출력하는 p.c 프로그램의 개선(upgrade) 버전1과 버전2를 제출하세요 $ p 화일이름 버전1: 페이지당 줄 수를 명령 줄로부터 입력 받아 변수 pagesize에 지정 $ p1 -n 화일이름 버전2: 이전의 입력 부분을 재 출력하는 기능을 추가 ( ‘b’ 입력으로 이전 출력) $ p2 -n 화일이름 명령 줄에서 정수형 인수 n을 취하여 n개의 child 프로세스를 생성하여 각 프로세스는 “I am the child process PID(1234)" 등으로 자신의 프로세스 번호를 출력하고 종료하는 C 언어 프로그램 ncproc.c를 작성하여 실행파일과 함께 숙제방에 제출하세요 Unix/Linux

과제 제출 방법 Electrical Version1 Electrical Version2 fedora.incheon.ac.kr (117.16.244.59): /home/ul2011hwa 또는 ul2011hwb 또는 ul2011hwc에 자신의 학번으로 숙제방(디렉토리) 만들고 그 안에 복사 자신의 디렉토리 보호 권장: chmod 1700 directoryname Electrical Version2 multi.incheon.ac.kr (117.16.244.53): /export/home/ul2011hwa 또는 ul2011hwb 또는 ul2011hwc에 자신의 학번으로 숙제방(디렉토리) 만들고 그 안에 복사 컴퓨터 사이의 파일 복사는 ftp 를 이용하세요! Unix/Linux

p.c C programming /* Solaris BUFSIZ /usr/include/iso/stdio_iso.h #include <stdio.h> #define PAGESIZE 22 char *progname ; /* 오류 메시지에 사용될 프로그램 이름 */ main(argc, argv) int argc ; char *argv[] ; { int i ; FILE *fp, *efopen(); progname = argv[0] ; if(argc == 1) print((char *)stdin, PAGESIZE); else for (i = 1 ; i < argc ; i++) { fp = efopen(argv[i], "r"); print(fp, PAGESIZE); fclose(fp); } exit(0); FILE *efopen(file, mode) /* fopen으로 화일을 open 할 수 없으면 종료함 */ char *file, *mode ; FILE *fp, *fopen(); extern char *progname ; if((fp = fopen(file, mode)) != NULL) return fp ; fprintf(stderr, "%s : can't open file %s mode %s \n", progname, file, mode); exit(1); print(fp, pagesize) /*페이지 크기 단위로 fp를 출력 */ FILE *fp ; int pagesize ; { static int lines = 0 ; /* 지금까지 줄 수 */ char buf[BUFSIZ] ; while (fgets(buf, sizeof buf, fp) != NULL) if(++lines < pagesize) fputs(buf, stdout); else { buf[strlen(buf)-1] = '\0' ; fflush(stdout); ttyin(); lines = 0 ; } ttyin() /* /dev/tty에서의 응답 처리 (1버전) */ FILE *efopen(); static FILE *tty = NULL ; if(tty == NULL) tty = efopen("/dev/tty", "r"); if(fgets(buf, BUFSIZ, tty) == NULL || buf[0] == 'q') exit(0); else /* 정상 입력 */ return buf[0] ; /* Solaris BUFSIZ /usr/include/iso/stdio_iso.h #define BUFSIZ 1024 */ /* Linux BUFSIZ /usr/include/stdio.h #define BUFSIZ _IO_BUFSIZ #include <libio.h> /usr/include/libio.h #define _IO_BUFSIZ _G_BUFSIZ #include <_G_config.h> /usr/include/_G_config.h #define _G_BUFSIZ 8192 */ C programming

유닉스 디버거 : gdb 프로그램을 기호적으로 디버깅 : dbx, adb, sdb, gdb, ddd(Motif) 등 gdb 단일단계이동(single stepping) 정지점(breakpoint) 디버거 내에서 편집 변수의 접근 및 수정 함수의 탐색 추적(tracing) gdb GNU debugger, 별도의 프롬프트 표시 관련정보는, 프롬프트에서 help를 입력 dbx executableFilename 디버그를 위한 프로그램 준비 cc 또는 gcc의 -g 옵션으로 프로그램을 번역 ⇒ 목적 모듈 내에 디버깅 정보 포함 C programming

유닉스 디버거 : gdb gdb 실행 $ gdb 실행파일이름 gdb 명령어 b (breakpoint) : 실행 중 디버그를 위해 멈추는 위치 지정 b 함수명 : 함수명에서 멈춤 b 라인번호 : 라인번호에서 멈춤 r (run) : 실행 시작 n (next) : 현재 라인 실행 (함수의 경우 실행하고 다음 라인으로 넘어 감) s (step) : 현재 라인 실행 (함수의 경우 호출된 함수 내로 들어가 실행 계속) c (continue) : 다음 breakpoint까지 실행 l (list) : 현재 수행되고 있는 라인부터 10개 라인씩 연속적으로 소스 코드를 프린트 p (print) 변수명 : 변수명으로 저장되어 있는 내용을 프린트 h (help) : 도움말 q (quit) : gdb 종료  C programming

(C언어 보충) Command-line Arguments $ echo hello world Output hello, world argc 와 argv[] argc=3 argv[0]: “echo” argv[1]: “hello” argv[2]: “world” Source code $ cat echo.c #include <stdio.h> main(int argc, char *argv[]) { int i; for (i = 1; i < argc; i++) printf(“%s%s”, argv[i], (i < argc-1) ? “ “ : “”); printf(“\n”); return 0; } argv: argv[0] echo\0 argv[0][0] ? argv[1] hello\0 argv[1][0] ? argv[2] world\0 argv[2][0] ? argv[3] C programming