Различия между версиями 6 и 7
Версия 6 от 2010-12-14 16:50:58
Размер: 4437
Редактор: PavelSutyrin
Комментарий:
Версия 7 от 2010-12-14 16:51:06
Размер: 4439
Редактор: PavelSutyrin
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 13: Строка 13:
10.0.1. Написать структуру для учеников, заполнить ее с клавиатуры, а затем из файла (чтобы не набивать каждый раз заново){{{#include <stdio.h> 10.0.1. Написать структуру для учеников, заполнить ее с клавиатуры, а затем из файла (чтобы не набивать каждый раз заново)
{{{#include <stdio.h>

ВАЖНЫЕ замечания

Решение каждой задачи предполагает написание полной программы на Си. Эта программа должна читать входные данные из стандартного входного файла, а затем выдавать ответ в стандартный выходной файл. При запуске с терминала это будет означать ввод с клавиатуры и вывод на экран.

Для успешного решения задачи пока достаточно, чтобы программа правильно работала на правильных входных данных.

Обязательно сохраняйте файлы под именами, соответствующими задачам, например:

  • 10.1.c

Задачи для разбора с демонстрацией

10.0.1. Написать структуру для учеников, заполнить ее с клавиатуры, а затем из файла (чтобы не набивать каждый раз заново) {{{#include <stdio.h>

struct pupil {

  • char name[20]; int age; /*years*/ float height; /*meters from floor*/

};

int main ( int argc, char **argv ) {

  • const int N = 6; int i; struct pupil class[N]; printf( "Now please enter data for %d pupils\n", N );

    for (i=0; i<N; i++) {

    • printf( "Enter %d pupil's name: ", i );

      scanf( "%s", class[i].name ); printf( "Enter %d pupil's age: ", i ); scanf( "%d", &class[i].age ); printf( "Enter %d pupil's height: ", i ); scanf( "%f", &class[i].height ); class[0] = class[i];

    } printf( "\n" );

    for( i=0; i<N; i++ ) {

    • printf( "Pupil %s, age: %d years, height: %1.0f cm\n",
      • class[i].name, class[i].age, class[i].height*100 );
    } return 0;

}}}

Задачи для решения в машинном зале

10.1. На основе задачи 10.0.1 написать программу, которая печатает имя самого взрослого ученика. Подготовить собственный файл с данными (5-7 элементов).

10.2. Отсортировать таблицу учеников по убыванию роста, напечатать ее. Примечание: структуры можно присваивать.

Домашнее задание

6.10. Разработать структуру данных, подготовить входной файл и написать программу, которая распечатывает анкетные данные учеников, участвовавших в 2010 году в олимпиаде по информатике и заработавших не менее 30 баллов.

6.10.1. Модифицировать программу, чтобы она спрашивала у пользователя параметры для выборки (год участия в олимпиаде и минимальное число баллов для отбора учеников).

6.11. Разработать структуру данных, подготовить входной файл и написать программу награждения учеников класса по результатам учебного года, используя следующие правила:

  1. если все оценки 5, ученик награждается почетной грамотой с тиснением и купоном на upgrade домашнего компьютера;
  2. если все оценки 4 и 5, ученик награждается похвальным листом и ударопрочной флешкой на 4Gb;
  3. если есть хотя бы одна оценка 3, награды не полагается.

В результате работы программы должен быть напечатан список класса с оценками и средней оценкой по всем предметам каждого ученика, и еще два списка фамилий награжденных учеников.

LecturesVMSH/C/2010-12-14 (последним исправлял пользователь PavelSutyrin 2011-05-18 15:35:43)