Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
LoMoHoCoB
Сообщений: n/a
#1

написанием функции 100системы оценивания - C++

20.03.2010, 15:29. Просмотров 574. Ответов 8
Метки нет (Все метки)

help! обьясните или покажите хоть как примерно будет выглядить код


Написать функцию, которая получает оценку студента по 100 бальной системе и возвращает оценку в 12 бальной системе. За основу взять следующие значения: [ 95-100 ] = 12, [90-94] = 11, [85-89] =10, [75-84 ]=9, [ 65-74 ]=8, [60-64]=7, [55-59]=6, [40-49] = 4, [30-39]=3, [20-29]=2, [10-19]=1, [0-9]=0.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2010, 15:29     написанием функции 100системы оценивания
Посмотрите здесь:

C++ Сложности с написанием программы сопровождения базы данных
Не могу разобраться с написанием ActiveX в ATL C++
C++ Помогите с написанием программы по обработке фотографий с использованием графических фильтров.
Помогите с написанием программы по курсовой работе C++
C++ Сложности с написанием кода программы
C++ Получить указатель из функции и использовать его в другой функции
C++ Промежуток между написанием строчек
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fantaz1
33 / 25 / 1
Регистрация: 08.11.2008
Сообщений: 107
20.03.2010, 15:59     написанием функции 100системы оценивания #2
можно так:
C++
1
2
3
4
5
6
7
8
int func(int bal)
{
int bal_12;
if(bal >= 95 && bal <= 100) bal_12 = 12; 
else if( bal >= 90 && bal <= 94) bal_12 = 11;
..и тд
return bal_12;
}
Genius Ignat
1234 / 772 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
20.03.2010, 16:03     написанием функции 100системы оценивания #3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#include <conio.h>
int transfotm(int input_v);
int main(){
int bal_in_100_s = 0;
 
printf("input bal_in_100_s ");scanf("%d",&bal_in_100_s);
printf("ball_in_12_s %d",transfotm(bal_in_100_s) );
 
printf("\n");
return 0;
}
 
int transfotm(int input_v){
if(input_v>=95&&input_v<=100)return 12;
if(input_v>=90&&input_v<=94)return 11;
if(input_v>=85&&input_v<=89)return 10;
if(input_v>=75&&input_v<=84)return 9;
if(input_v>=65&&input_v<=74)return 8;
if(input_v>=60&&input_v<=64)return 7;
if(input_v>=55&&input_v<=59)return 6;
 
if(input_v>=41&&input_v<=54)return 5; //у тебя пять пропущено.
if(input_v>=40&&input_v<=49)return 4;
if(input_v>=30&&input_v<=39)return 3;
if(input_v>=20&&input_v<=29)return 2;
if(input_v>=10&&input_v<=19)return 1;
if(input_v>=0&&input_v<=9)return 0;
 
return -1;
}
Добавлено через 2 минуты
Уже не помню как интервал обозначается, короче если это интервал поставь заместо
<= < а заместо >= >
LoMoHoCoB
Сообщений: n/a
23.03.2010, 09:43     написанием функции 100системы оценивания #4
Спасибо подскажи только что именно делает в этом коде
("%d",&bal_in_100_s)
что выполняет ? мне просто не понятно откуда взялось "%d"
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
23.03.2010, 15:57     написанием функции 100системы оценивания #5
Заводим массив.
int conv[101];
Заполняем
conv[95]= conv[96]= conv[97]= conv[98]= conv[99]= conv[100]= 12;
И так далее.

После чего задача решается в 1 шаг.
Genius Ignat
1234 / 772 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
23.03.2010, 16:49     написанием функции 100системы оценивания #6
Хитро.

Добавлено через 11 минут
Размышления:
Может какой-нибудь коэффициент придумать что бы отнял или разделил на него и получил трансформированную версию бала.
В некоторых задачах я так и поступал:
Вот к примеру для данного случая интересное предложение:
100/8 == 12.5
90/8 == 11.25
85/8 == 10.6
Четкие границы конечно точным условиям не поддаются,
но всё же процессор меньше напрягов делает.
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
24.03.2010, 10:30     написанием функции 100системы оценивания #7
Вот к примеру для данного случая интересное предложение:
Это как чисто учебное применение - составить формулу для преобразования.

Но в реальном программировании вместо кучи if или switch, case,
можно использовать матричный способ - тот который я описал.
Есть такой способ программирования.
В данном случае преобразование простое.
Но можно матричным способом описывать конечные автоматы.
Программирование с помощью конечных автоматов хорошо тем,
что можно отследить все варианты и правильно все реализовать.
Использование матриц для задания переходов в автомате удобно тем,
что код легко поддается модификации и код достаточно быстр.
Genius Ignat
1234 / 772 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
24.03.2010, 11:33     написанием функции 100системы оценивания #8
conv[95]= conv[96]= conv[97]= conv[98]= conv[99]= conv[100]= 12;
Но ручками долго прописывать, надо хотя бы цикл заполнения с условиями.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2010, 11:58     написанием функции 100системы оценивания
Еще ссылки по теме:

C++ Помогите с написанием блок-схемы к программе
Проблемы с написанием N дерева C++
C++ Вылезает ошибка с написанием меню (WinAPI)
Помощь с написанием класса List C++
Передача объектов функции. Два обращения к функции деструктора C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Day
1152 / 957 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
24.03.2010, 11:58     написанием функции 100системы оценивания #9
C
1
2
3
  int Gran[14] = { 0,10,20,30,40,50,55,60,65,75,85,90, 95,101 };
  for(i=; i<13; i++) if(bal>=Gran[i] && bal<Gran[i+1]) break;
  bal12 = i;
Yandex
Объявления
24.03.2010, 11:58     написанием функции 100системы оценивания
Ответ Создать тему
Опции темы

Текущее время: 22:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru