Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2011, 21:48   #1
Gargona
Новичок
Джуниор
 
Регистрация: 09.11.2011
Сообщений: 5
Восклицание 2 примера по языку Си

Для универа срочно надо сдать задачи, программируем мы на си, а у мя что то 2 из 3 не сделанные.

Для первой есть данные что температура в градусах цельсиус с понедельника по воскресение была: int градусы С[] = { 19, 16, 25, 18, 20, 12, 15 };

Задача состоит в том чтобы написать прогу для определения и показа в градусах цельсиус и по фаренгейту 3 показателей температуры: самой низкой, самой высокой и средней зная что:
9
градусы Farenheit = (----- градусы Celcius) + 32

2) Вторая задача
Надо написать прогу на Си где функция main носит инициализацию и значения 3 следующих таблиц (извините если ошиблась в терминах, перевожу с французского)

должность : таблица с значениями ‘P’, ‘A’, ‘P’, ‘P’, ‘P’, ‘O’, ‘O’, ‘A’

(A ' для исследователя, ' P ' для программиста, ' O ' для оператора)

nbCafe : nbCafe : таблица с значениями 4, 2, 3, 1, 6, 2, 0, 5
возраст : таблица с значениями 23, 19, 28, 40, 19, 25, 20, 34

Добавьте в функцию main значения и функции в Си что позволяют:

1. посчитать и показать количество программистов;
2. посчитать и показать количество исследователей;
3. определить и показать максимальное потребление
кофе операторов;
4. определить и показать максимальный возраст программистов;
5. посчитать и показать потребление кофе операторов;
6. посчитать и показать средний возраст исследователей.

Заранее всем искренне благодарна!!!!
Gargona вне форума Ответить с цитированием
Старый 09.11.2011, 22:30   #2
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Код:
#include <stdio.h>
#include <conio.h>

int convert(int val)
{
   return (val*(1.8)+32);
}

void main()
{
   int values[] = { 19, 16, 25, 18, 20, 12, 15 };
   int i, min, max, avg;
   min=max=values[0];
   avg=0;
   for (i=0; i<7; ++i)
   {
      avg+=values[i];
      if (values[i]>max) max=values[i];
      if (values[i]<min) min=values[i];
   }
   avg/=7;
   printf("Minimum: %d (%d); maximum: %d (%d); average: %d (%d)\n", min, convert(min), max, convert(max), avg, convert(avg));
   getch();
}
А ты во франции учишься, что ли? )
Son Of Pain вне форума Ответить с цитированием
Старый 09.11.2011, 22:37   #3
Gargona
Новичок
Джуниор
 
Регистрация: 09.11.2011
Сообщений: 5
По умолчанию

Спасибо огромное, учусь в Канаде, и оч сложно с ихнем языком
Gargona вне форума Ответить с цитированием
Старый 09.11.2011, 23:56   #4
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Интересно, предложит ли канадский преподаватель страдалице добавить в списанное решение элементарной задачи несколько строчек:
Код:
#include <stdio.h>
#include <conio.h>

int convert(int val) {
   return (val*(1.8)+32);
}


void main() {

   int values[] = { 19, 16, 25, 18, 20, 12, 15 };
   int   vF[7] ;
   int i, min, max, avg;
   min=max=values[0];
   avg=0;

   for (i=0; i<7; ++i) {
      avg+=values[i];
      if (values[i]>max) max=values[i];
      if (values[i]<min) min=values[i];
   }
   avg /= 7 ;
   printf("Minimum: %d (%d); maximum: %d (%d); average: %d (%d)\n", min, convert(min), max, convert(max), avg, convert(avg));

   avg = 0 ;
   for (i=0; i<7; ++i) {
      vF[i] = convert( values[i] ) ;
      avg += vF[i] ;
   }
   avg /= 7 ;
   printf( "average: %d\n", avg ) ;

   getch();

}
и объяснить потом, почему первая средняя температура по Фаренгейту получается 62, а вторая - 63 ? Своим любительницам плакаться по форумам я бы предложил. Ну и, пока температуры не станут одинаковыми, задание не принял бы...

Впрочем, а какое мне, право, дело до будущего канадского программирования?..
Vago вне форума Ответить с цитированием
Старый 10.11.2011, 00:10   #5
Gargona
Новичок
Джуниор
 
Регистрация: 09.11.2011
Сообщений: 5
По умолчанию

Просто канадский метод обучения отличается от нашего, тут они не заворачиваются изучением баз, а сразу непосредственно преподают предмет, по этому оч трудо сразу понять основы, вот и мучаемся, а списываю я в первый раз, ошиблась со сроками, думала сдавать надо 11, оказалось 8, вот уже на день опоздала, а за день опоздания у нас штраф -25% из оценки, уж извините, и спасибо
Gargona вне форума Ответить с цитированием
Старый 10.11.2011, 00:21   #6
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Цитата:
а сразу непосредственно преподают предмет
Ужас какой
Son Of Pain вне форума Ответить с цитированием
Старый 10.11.2011, 00:45   #7
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Действительно, ужас Тут девочку могут стипендии лишить и в угол поставить, а мы садюжничаем...

Гаргона, Вы в п.5 второй задачи слово "среднее" не пропустили случайно?..
Vago вне форума Ответить с цитированием
Старый 10.11.2011, 01:10   #8
Gargona
Новичок
Джуниор
 
Регистрация: 09.11.2011
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Son Of Pain Посмотреть сообщение
Ужас какой
простите, но для меня это ужас, потому что учусь я не на программиста, а на графического дизайнера, и такой предмет как основы программирования просто заставили взять, так что для меня все это ново и непонятно
Gargona вне форума Ответить с цитированием
Старый 10.11.2011, 01:11   #9
Gargona
Новичок
Джуниор
 
Регистрация: 09.11.2011
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Vago Посмотреть сообщение
Действительно, ужас Тут девочку могут стипендии лишить и в угол поставить, а мы садюжничаем...

Гаргона, Вы в п.5 второй задачи слово "среднее" не пропустили случайно?..
в угол то не поставят, а вот заставить взять еще раз тот же предмет заставят, а это значит что за него еще раз платить прийдется, а это неприятно и вы правы, я пропустила "среднее"
Gargona вне форума Ответить с цитированием
Старый 10.11.2011, 01:35   #10
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Цитата:
Сообщение от Gargona Посмотреть сообщение
в угол то не поставят
А зря!
...
Хороший преподаватель не преминет покопать вопросом "Обработайте случай, когда в массиве cEmployee[], передаваемом в ф-ю AverageInArray(), нет ни одного эл-та cSpec, более элегантным образом" . Я бы покопал

Код:
#include <stdio.h>
#include <conio.h>

int NumberOfSpecialists( char cSpec, // Category of employee to deal with
                         char* cEmployee, // Array of the stuff' categories
                         int nEmployees   // Total number of employees
                       ) {

   int   i , 
         nSpecs = 0 ;   // Number of specialists of cSpec category

   for ( i = 0; i < nEmployees; i++ ) {
      if ( cEmployee[i] == cSpec )
         ++nSpecs ;
   }

   return nSpecs ;

}


int MaxInPositiveArray( char cSpec, char* cEmployee, int* v, int nEmployees ) {

   int   i ,
         vMax = -1 ;

   for ( i = 1; i < nEmployees; i++ ) {
      if ( cEmployee[i] == cSpec ) {
         if ( v[i] > vMax )
            vMax = v[i] ;
      }
   }

   return vMax ;

}



float AverageInArray( char cSpec, char* cEmployee, int* v, int nEmployees ) {

   float    aver = 0. ;
   int      i , 
            nSpecs = 0 ;   // Number of specialists of cSpec type

   for ( i = 1; i < nEmployees; i++ ) {
      if ( cEmployee[i] == cSpec ) {
         ++nSpecs ;
         aver = aver + (float)v[i] ;
      }
   }

   return nSpecs == 0 ? 0. : aver / (float)nSpecs ;

}


#define N_EMPLOYEES 8

int main() {

   char cEmployee[] = { 'P', 'A', 'P', 'P', 'P', 'O', 'O', 'A' } ;
   int  nbCafe[] = { 4, 2, 3, 1, 6, 2, 0, 5 } ;
   int  age[] = { 23, 19, 28, 40, 19, 25, 20, 34 } ;

   printf( "Number of programmers = %d\n", NumberOfSpecialists( 'P', cEmployee, N_EMPLOYEES ) ) ;
   printf( "Number of researchers = %d\n", NumberOfSpecialists( 'A', cEmployee, N_EMPLOYEES ) ) ;
   printf( "Max. consumption of coffee by operators = %d\n", MaxInPositiveArray( 'O', cEmployee, nbCafe, N_EMPLOYEES ) ) ;
   printf( "Max. age of programmers = %d\n", MaxInPositiveArray( 'P', cEmployee, age, N_EMPLOYEES ) ) ;
   printf( "Average. consumption of coffee by operators = %.1f\n", AverageInArray( 'O', cEmployee, nbCafe, N_EMPLOYEES ) ) ;
   printf( "Average. age of researchers = %.1f\n", AverageInArray( 'A', cEmployee, age, N_EMPLOYEES ) ) ;

   getch();

   return 0 ;

}
Vago вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение примера в Делфи7 Маша1993 Помощь студентам 6 08.10.2011 21:57
задания по языку с++ Эндрю Помощь студентам 4 30.04.2011 10:19
Обучение языку SlideSide Помощь студентам 2 07.01.2011 23:27
Информация по языку С Nempak Фриланс 2 07.01.2011 21:50
задача по языку си lider219 Помощь студентам 1 18.09.2010 02:19